AdSpirit RTB API

Werbung
AdSpirit RTB API (Stand 02.08.2011)
1.
Dieses Dokument
Dieses Dokument beschreibt die Nutzung der AdSpirit RTB API aus Sicht des AdSpirit Nutzers. Sofern Sie nicht selbst
AdSpirit-Kunde sind lesen Sie dieses Dokument bitte aus Sicht des Publishers bzw. des Werbekunden.
2.
RTB-Usermatching (Bidder)
Beim Usermatching für Bieter werden alle Nutzerinformationen die AdSpirit über den Nutzer besitzt an den Partner
übermittelt. Sobald dieser Partner dann ein Gebot von AdSpirit einfordert muss der Partner mit der Gebotsanforderung
die Nutzerdaten mit übermitteln, sodass AdSpirit auch ohne direkten Kontakt zum Nutzer dennoch alle Informationen
besitzt.
2.1.
Wie funktioniert das Usermatching für Bieter?
Für alle Anfragen die der Publisher an AdSpirit sendet sollte zuvor beim Publisher ein Nutzerprofil angelegt werden. Nutzer die über noch kein Nutzerprofil verfügen sollte der Publisher bei AdSpirit um ein Nutzerprofil anfragen. Hierzu wird
das Usermatching verwendet um die Nutzerdaten von AdSpirit an den Publisher zu übergeben. Der Publisher bindet dazu bei allen neuen Nutzern einen Pixel-Code mit einer AdSpirit-URL ein. Mittels des Pixel-Codes wird an AdSpirit die Anfrage geschickt Nutzerdaten zu erhalten. Als Resultat zu dieser Anfrage wird AdSpirit an den Publisher die Nutzerdaten
zu diesem Nutzer senden.
2.2.
Request Ablauf
Generieren Sie im Menüpunkt "RTB-Usermatching" einen Usermatching-Code. Dieser besteht aus folgenden Parametern:
umid=
ID des Usermatching-Codes
dataid=
ID die AdSpirit beim Publisher besitzt
userid=
ID des Nutzers beim Publisher
redirecturl=
Callback-URL
call_type=
Callback-Typ
Generieren Sie diese URL und schicken Sie diese an den Publisher bei dem Sie den Traffic einkaufen.
Der Publisher bindet diese URL in einen 1x1 Pixel ein und zeigt ihn jedem neuen Nutzer.
Bei jeder Einblendung der URL/des Pixels ersetzt der Publisher die Platzhalter durch die jeweiligen Informationen.
2.3.
Response
Wird die Anfrage vom Nutzer an den AdSpirit AdServer geschickt antwortet dieser mit einer Weiterleitung an die als
Callback-URL übergebene Zielseite. Hierbei hängt AdSpirit folgende URL-Parameter an die Callback-URL an:
dataid=
ID die AdSpirit beim Publisher besitzt
user_id=
ID des Nutzers beim Publisher
external_user_id=
ID des Nutzers bei AdSpirit
Fehler! Verweisquelle konnte nicht gefunden werden.
Seite 1 / 5
Darüber hinaus übermittelt AdSpirit eine Reihe von Nutzerrelevanten Daten. Diese werden mit weiteren Parametern
übergeben und beginnen jeweils mit "custom_".
Die Daten die AdSpirit so an den Publisher übermittelt (external_user_id sowie custom_*-Parameter) muss
muss der Publisher
nun bei jeder Gebotsanfrage an AdSpirit mit übermitteln: external_user_id als HTTP-Parameter X-RTB-UserID und custom_*-Parameter als HTTP-Cookies. Die Namen der Cookies werden dabei ohne "custom_" ausgeführt (d.h. aus Parameter "custom_abc=123" wird Cookie "abc=123").
3.
RTB-Usermatching (Seller)
Das Usermatching für Seller ermöglicht es dem Werbekunden der bei Ihnen via RTB Einblendungen einkaufen möchte
seine Nutzerdaten an Sie (AdSpirit) zu übermitteln. Hierdurch ist AdSpirit in der Lage bei einer Gebotsanfrage an den
Werbekunden diesem die Nutzerdaten zurück zu geben, sodass der Werbekunde auf Basis dieser Daten genauere Gebote abgeben kann.
3.1.
Ablauf
Der Ablauf entspricht dem Usermatching für Bieter: Zunächst wird vom Werbekunden eine URL an Sie übermittelt. In
diese URL werden durch entsprechende Platzhalter Daten eingefügt. Trifft ein neuer Nutzer auf AdSpirit wird AdSpirit
diesem Nutzer einen 1x1 Pixel zeigen in dem die URL des Werbekudnen enthalten ist. Damit wird an diesen die Anfrage
gesendet den Nutzer zu identifizieren. Der Werbekunde wiederum antwortet damit dass er die Daten in Form eines
HTTP-Redirects an AdSpirit zurück sendet.
3.2.
Request Ablauf
Als erstes benötigen Sie vom Werbekunden eine Usermatching-URL, diese Hinterlegen Sie beim RTB-Werbemittel.
Außerdem weisen Sie dem Werbemittel einer Usermatching-Datenbank zu.
Innerhalb der Usermatching-URL können Sie folgende Platzhalter verwenden um die jeweiligen Daten an den Werbekunden zu senden:
%dataid%
(notwendig) ID der Usermatching-Datenbank
%redirect%
(notwendig) Callback-URL an die der Werbekunde die Daten senden soll
%userid%
(notwendig) ID des Nutzers bei AdSpirit
%calltype%
(optional) Typ wie der Werbekunde die Daten senden soll (js, iframe, redirect)
AdSpirit wird nun alle nicht abgeglichenen Nutzer an diese Usermatching-URL senden und damit um Datenabgleich bitten.
3.3.
Response Ablauf
Erhält der AdServer des Werbekundens die Anfrage zum Datenabgleich von AdSpirit antwortet dieser damit, die folgenden Parameter an die als %redirect% übergebene Callback-URL anzuhängen:
dataid=
(notwendig) ID der Usermatching-Datenbank (%dataid%)
user_id=
(notwendig) ID des Nutzers bei AdSpirit (%userid%)
external_user_id=
(notwendig) ID des Nutzers beim Werbekunden
custom_*=
(optional) weitere Nutzerinformationen. AdSpirit wird die Nutzerdaten mit jeder Gebotsanfrage als
HTTP-Cookies mitsenden. Der Name des Cookies wird dabei ohne "custom_" geschrieben (d.h. aus Parameter "&custom_abc=123" wird Cookie "abc=123").
Der AdServer des Werbekunden muss diese Callback-URL je nach Wert des Parameters %calltype% wie folgt ausgeben:
js
document.write('<div style="position:absolute; left:0px; top:0px;"><img border="0" width="1" height="1"
alt="" src="[CALLBACK-URL]" /></div>');
Fehler! Verweisquelle konnte nicht gefunden werden.
Seite 2 / 5
iframe
<html><body><div style="position:absolute; left:0px; top:0px;"><img border="0" width="1" height="1"
alt="" src="[CALLBACK-URL]" /></div></body></html>
redirect
PHP-Code: header('Location: [CALLBACK-URL]');
4.
AdSpirit Bidder Request API
AdSpirit erwartet bzw. sendet einen Request in Form eines HTTP-GET Befehls. Als Parameter können alle üblichen Parameter gesetzt werden die auch von normalen Scrip-/IFrame-Codes für Werbeflächen unterstützt werden (z.B. rdclick,
exttrack, ...). Außerdem kann der Parameter &rtbprovider=... gesetzt werden - er beschreibt den Ausgabetyp des AdSpirit Bidder Response. Mögliche Werte für diesen Parameter finden Sie unten.
Hinweis: Der Parameter notdm wird von der Bidder-API automatisch gesetzt. Dies bedeutet, dass über RTBWerbemittel verknüpfte Werbemittel ausgeliefert werden können.
Um dem AdSpirit Server die nötigen Informationen über den Nutzer der die Werbeeinblendung erhalten soll mitzuteilen,
müssen vom verkaufenden/Gebots-einholenden RTB-Server alle nötigen Informationen via HTTP-Header übertragen werden (sofern &rtbprovider=adspirit). Folgende Header-Informationen werden u.a. benötigt bzw. von AdSpirit bei der Gebotsanfrage versandt:
X-Forwarded-For
IP-Adresse des Nutzers
User-Agent
Browser-String des Nutzers
Accept-Language
Sprache des Nutzers
Referer
URL/Referer auf dem die Werbung erscheinen soll
UA-Pixels
Größe des Nutzerschirms (Schreibweise: 123x456)
UA-OS
Betriebssystem des Nutzers
Geo-Position
Geo-Koordinaten des Nutzers in Lat/Lon (Schreibweise: 123.23, -62.14)
Geo-Country
Ländercode in dem der Nutzer sich aufhält (ISO 3166-1)
X-RTB-Floorprice
Mindestpreis den der Publisher für diese Einblendung erhalten möchte. Ist der Parameter gesetzt und
größer als 0 werden nur Gebote abgegeben wenn der Gebotspreis über diesem Preis liegt.
X-RTB-Pid
Eindeutige ID für die Werbefläche des Publishers. Anhand dieser ID werden verschiedene Werbeflächen
unterschieden. Die ID wird in AdSpirit als SubID übernommen. Sofern die ID nicht gesetzt ist wird stattdessen der Referer gespeichert und aus diesem eine automatische SubID errechnet (sofern bei der Werbefläche "Referrer prüfen" aktiviert ist). Es ist daher wichtig dass ein (fremder) Publisher entweder immer Referer
oder immer X-RTB-Pid übermittelt (oder beides) aber nie dazwischen hin und her wechselt.
X-RTB-RequestID
Eindeutige ID des Requests.
X-RTB-UserID
Eindeutige ID des Nutzers aus Publishersicht (vgl. Parameter &external_user_id=... aus Usermatching-API
(Bidder) )
X-RTB-PriceEnc
sofern gesetzt muss der Bieter zur Preisübermittlung eine separate URL verwenden
Darüber hinaus erwartet AdSpirit alle als custom_* übermittelten Nutzerdaten zu diesem Nutzer in Form von HTTPCookieinformationen.
Fehler! Verweisquelle konnte nicht gefunden werden.
Seite 3 / 5
5.
AdSpirit Bidder Response API
Sofern der Parameter rtbprovider=adspirit gesetzt ist oder der Parameter weggelassen wird, antwortet AdSpirit bzw der
bietende AdServer mit einem Response im AdSpirit Bidder Response Format. Hierbei wird ein Text übermittelt der je eine
Information pro Zeile enthält. Eine Zeile muss jeweils durch \r\n (Zeichencodes #13#10) beendet werden. Jede Zeile besteht aus einem Name=Wert Paar. Folgende Name=Wert-Paare werden u.a. übermittelt:
cpm
Float. Gebotswert in der im AdServer eingestellten Währung aber ohne Währungsangabe z.B. 0.67
requestid
Zahl. ID des Requests
wmid
Zahl. ID des gelieferten Werbemittels
url
String. Ziel-URL auf die das Werbemittel verweist.
default
String urlcodiert. Zusätzlicher Trackingcode der vom Publisher angezeigt werden soll wenn AdSpirit nicht den
Zuschlag für diese Einblendung erhalten hat.
priceurl
String urlcodiert. Sofern beim Request der HTTP Header X-RTB-PriceEnc gesetzt war muss hier eine URL zur
Preisübermittlung übergeben werden. Der AdServer verwendet diese URL in einem 1x1 Pixel. Als Platzhalter für
die Stelle an der der Preis eingetragen werden soll sollte %RTB_PriceEnc_A% verwendet werden. (siehe unten)
code
String urlcodiert. Werbemittel-Code der angezeigt werden soll, wenn AdSpirit vom Publisher den Zuschlag erhält.
Je nach Typ der Anfrage, gebuchten Werbemittel usw. können weitere Name=Wert-Paare hinzukommen um weiterführende Informationen zu ermöglichen.
6.
Klicktracking / Klickmacros
Ebenso wie bei normalen IFrames / Script-Codes kann auch beim RealTime Bidding Klicktracking erfolgen. Hierzu wird an
die RTB-Request-URL der entsprechende Parameter &rdclick= / &rdclick_0= / &rdclick_1= / ... (vgl. externes Klicktracking bei IFrames/Scripts) angehangen.
Da es sich beim RTB um die Weiterleitung des Werbemittels handelt und nicht um eine direkte Auslieferung an den Nutzer kann hier anstelle der Klick-URL auch der Klick-Macro des jeweiligen AdServers angehangen werden (z.B.
&rdclick_0=%%CLICK_URL_ESC%% bei DoubleClick).
7.
Preisbenachrichtigung
AdSpirit unterstützt die Möglichkeit den Gewinner der RTB-Auktion den Gewinnpreis mitzuteilen. Ebenso ist es möglich
dass AdSpirit Preisbenachrichtigungen für gewonnene Auktionen entgegen nimmt bei denen mitgeboten wurde.
7.1.
Preisübermittlung
Der Gewinnpreis wird innerhalb von AdSpirit mit dem Parameter &prenca= und &prencm= innerhalb der ViewtrackingURL übermittelt. Darüber hinaus kann in einigen Fällen der Platzhalter %RTB_PriceEnc_A% verwendet werden um an einer anderen Stelle als der Viewtracking-URL den Preis zu übermitteln. Um hierbei vor Manipulation zu schützen wird der
Preis verschlüsselt und besitzt eine eingeschränkte Gültigkeitsdauer (in der Regel +/- 10 Minuten).
7.2.
Preisübermittlung aktivieren
Um die Preisübermittlung zu aktivieren muss dazu innerhalb der Werbefläche bzw. des Werbemittels, für das die Preisübermittlung aktiviert werden soll, die Einstellung RTB-Preisübermittlung aktiviert werden sowie ein Encryption-Key und
ein Integrity-Key hinterlegt werden. Der Encryption-Key und der Integrity-Key müssen dem Publisher/Advertiser mitgeteilt
und bei diesem ebenfalls hinterlegt werden.
Bitte beachten Sie: Sobald die Preisübermittlung aktiviert ist, wird dadurch die normale Abrechnung/Vergütung des
Werbemittels bzw. der Werbefläche überschrieben. Die in der Kampagne eingetragenen Werte gelten dann lediglich als
Maximalgebot für die RTB-Gebotsabgabe.
Fehler! Verweisquelle konnte nicht gefunden werden.
Seite 4 / 5
7.3.
Preisverschlüsselung
Die Verschlüsselung der Preise erfolgt anhand des vom Google AdExchange verwendeten Algorithmus. Hierbei wird der
Preis, ein aktueller Zeitstempel sowie die zwei hinterlegten Schlüssel via SHA1 Verfahren verschlüsselt bzw. wieder entschlüsselt. Der Pseudocode zur Verschlüsselung der Werte sieht wie folgt aus:
iv = InitializatioVector (16 Byte)
e_key = encryption Key (32 Byte)
i_key = integrity Key (32 Byte)
price = Preis in Millionstel (8 Byte)
pad = sha1(e_key, iv) // first 8 bytes
enc_price = pad <xor> price
signature = sha1(i_key, price || iv) // first 4 bytes
final_message = WebSafeBase64Encode( iv || enc_price || signature )
Der Pseudocode zur Entschlüsselung sieht wie folgt aus:
enc_price = WebSafeBase64Decode(final_message)
(iv, p, sig) = dec_price -- split up according to fixed lengths
price_pad = sha1(e_key, iv)
price = p <xor> price_pad
conf_sig = sha1(i_key, price || iv)
success = (conf_sig == sig)
Die Datumsinformationen sind dabei innerhalb der ersten 8 Byte der verschlüsselten Nachricht enthalten.
Fehler! Verweisquelle konnte nicht gefunden werden.
Seite 5 / 5
Herunterladen