Backfill-Codes dienen dazu die Auslieferung einer Kampagne zu erlauben von der vorher nicht feststeht ob der Kunde die gelieferten Einblendungen abnehmen wird oder ob er diese "zurück gibt". Dazu werden erst einmal alle Einblendungen an den Kundenadserver geschickt, der darauf hin entscheiden kann ob er diese haben möchte. Möchte er diese nicht mit Werbung belegen gibt er sie an AdSpirit zurück und AdSpirit kann einen anderen Kunden zur Auslieferung bringen.
Verwendung
Um Backfill-Codes zu verwenden aktivieren Sie bitte in der Kampagne unter Planung den entsprechenden Eintrag. Senden Sie außerdem den dazu befindlichen Backfill-Code an den Kunden und teilen Sie ihm mit, dass der Code an zwei Stellen anzupassen ist. Beispielcode:
<script type="text/javascript" language="JavaScript">
(function ()
{
var asm_pb_x = 728; // <-- CHANGE THIS VALUE ACCORDING TO CREATIVE WIDTH
var asm_pb_y = 90; // <-- CHANGE THIS VALUE ACCORDING TO CREATIVE HEIGHT
//DO NOT CHANGE ANYTHING BELOW HERE
... ... ...
})
()
</script>
Die zwei im obigen Beispielcode fett markierten Zahlen sind vom Kunden durch die Höhe und Breite des ausgelieferten Werbemittels anzupassen. Diese Werte müssen mit der Höhe/Breite übereinstimmen die im AdServer im Kundenwerbemittel eingestellt sind (z.B. das Kunden-Werbemittel ist als HTML-Werbemittel in 300x250 angelegt, dann muss in den Code 300 und 250 eingetragen werden). Script-Werbemittel erhalten den Werte 0 (Null) für Höhe und Breite.
Der so erzeugte Code muss der Kunde immer dann ausliefern, wenn er eine Einblendung nicht selbst verwenden will. Stellen Sie dabei sicher, dass der Code korrekt eingebaut ist und verwendet wird. Alle Einblendungen in denen vom Kunden kein Backfill-Code hinterlegt wurde werden für den Kunden gewertet (also auch dann wenn der Kunde vergessen hat den Backfill-Code einzubauen).
Anpassungen
In bestimmten Situationen sind Anpassungen am Code notwendig. Folgende Anpassungen erlaubt AdSpirit hierzu:
Asynchrones Laden
Sofern der Kunde asynchrone Codes verwendet, muss dies dem Backfill-Script signalisiert werden. Hierzu wird in AdSpirit der vom Kunden hinterlegte Werbemittelcode angepasst. Vor den Code des Kunden wird dazu folgende Zeile eingefügt:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.setAsync("%backfill_instance_id%");
</script>
Der Aufruf dieses Scripts bewirkt, dass der Backfill-Code automatisch bis zu 1500 Millisekunden auf die asynchron vom Kunden ausgeführten Scripts wartet und dem Kunden damit Zeit gibt sich für oder gegen die Einblendung zu entscheiden.
Bitte beachten Sie: Wird dieses Verfahren verwendet, wird im Falle dass der Kunde eine Einblendung nicht abnimmt, für den nächsten Kunden zwangsläufig ein IFrame geschrieben.
Offline-Modus
In bestimmten Situationen, insbesondere wenn der Kunde mehrere IFrames oder Scripts läd bevor er eine Entscheidung trifft, kann es notwendig sein, dass der Kunde nicht nur Feedback gibt wenn er eine Einblendung zurückgeben will sondern dass er auch dann ein Feedback gibt, wenn er die Einblendung abnehmen will. Hierzu wird in AdSpirit der vom Kunden hinterlegte Werbemittelcode angepasst. Vor den Code des Kunden wird dazu folgende Zeile eingefügt:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.setOffline("%backfill_instance_id%");
</script>
Der Aufruf des Scripts bewirkt, dass der Backfill-Code nicht selbständig handelt sondern ausschließlich auf das Feedback des Kunden wartet. Damit der Kunde sein Feedback mitteilen kann, verwendet dieser zum Zurücksenden des Traffics, den in der Kampagne unter Planung > Backfill hinterlegten Code. Will der Kunde die Einblendung abnehmen, verwendet er dazu den gleichen Code und nimmt folgende Anpassungen vor. Vorher:
...
if(typeof(asm_bkfl_obj) != "object"){ asm_sndMsg("asm_bkfl:"+asm_amsname+";"+asm_kidid+";"+asm_pb_x+";"+asm_pb_y); }
else{ asm_bkfl_obj.pushBack(asm_amsname,asm_kidid,asm_pb_x,asm_pb_y); }
...
Nachher:
...
if(typeof(asm_bkfl_obj) != "object"){ asm_sndMsg("asm_bkfl:fire;"+asm_amsname+";"+asm_kidid+";"+asm_pb_x+";"+asm_pb_y); }
else{ asm_bkfl_obj.fire(asm_amsname,asm_kidid,asm_pb_x,asm_pb_y); }
...
Sofern der Backfill-Code direkt in das Werbemittel eingesetzt werden kann, kann alternativ folgender Code verwendet werden:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.pushBackID("%backfill_instance_id%");
</script>
... zum Zurückgeben der Einblendung, und:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.fireID("%backfill_instance_id%",false);
</script>
... zum Abnehmen der Einblendung.
Ferner lassen sich CallBack-Funktionen definieren, die ein JavaScript aufrufen sobald ein Status (View abgenommen, View zurückgegeben) eingetreten ist:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.setCallBack("%backfill_instance_id%", "funktionA", "funktionB");
function funktionA(id){/* view wurde abgenommen */}
function funktionB(id){/* view wurde zurückgegeben */}
</script>
Setzen des Timeout
Sollte ein Advertiser nicht in der Lage sein den Passback Code in der gefoderten Zeit aufzurufen kommt es zu Abweichungen. Soll die Zeitspanne angehoben werden, muss dazu der folgende Code dem Werbemittel vorangestellt werden:
<script type="text/javascript" language="JavaScript">
asm_bkfl_obj.setMaxTimeOut("%backfill_instance_id%", 3000, 6000);
</script>
Im obigen Beispiel wird die Zeitspanne auf 3000 bis 6000 Millisekunden angehoben.
Mögliche Probleme
Mögliche Gründe für Zählabweichungen liegen in der Regel in der technischen Natur des Backfill-Codes: Wird dieser vom Werbekunden nicht oder nicht richtig angezeigt oder "denkt" AdSpirit aus anderen Gründen dass dieser nicht angezeigt wurde, dann wird automatisch für den Advertiser gezählt und es gibt Abweichungen (AdSpirit Zahlen > Advertiser Zahlen).
Andersherum gibt es immer dann Abweichungen zu Gunsten des Advertisers (AdSpirit Zahlen < Advertiser Zahlen) wenn etwa der Browser bestimmte Reihenfolgen nicht einhält. Dies ist insbesondere beim Internet Explorer zu beobachten, insbesondere dann, wenn das vom Advertiser gezeigte Werbemittel sehr viele andere Scripts nach läd (mehr als 3 Stufen).