Auswahl eines Banner – wie geht der AdServer eigentlich vor?

Intern errechnet OpenX im Wartungslauf für jede Banner/Zone Kombination einen Prioritätsfaktor (PF) im Bereich 0 .. 1, dieser Wert errechnet sich aus den gebuchten Impressionen im Verhältnis zu den zur Verfügung stehenden Zonen-Impressionen (und vielen weiteren Faktoren).

Nachdem jetzt jeder Banner einer Zone so einen Wert erhalten hat, können wir einen „Request“ eines Banner durchführen:

OpenX selektiert zunächst alle exklusiven Banner einer Zone, prüft deren Auslieferungsbedingungen und wählt dann per Zufallszahl einen der verbleibenden Banner aus. Gibt es keine exklusiven Banner (oder die Auslieferungsbedingungen verhindern eine Anzeige), beginnt OpenX in einer Schleife die Banner von bezahlten Kampagnen zu prüfen. Also:

  • selektieren aller Banner mit Priorität 10
  • prüfen der Auslieferungsbedingungen
  • Auswahl eines Banner per Zufallszahl
  • falls kein Banner gewählt wurde:
  • selektieren aller Banner mit Priorität 9
  • selektieren aller Banner mit Priorität 1
  • prüfen der Auslieferungsbedingungen
  • Auswahl eines Banner per Zufallszahl
  • falls kein Banner gewählt wurde:
  • selektieren aller Banner ohne Priorität (unbezahlte)

Im Unterschied zu den exklusiven Bannern werden bei den bezahlten Bannern die „Wahrscheinlichkeitslücken“ nicht aufgefüllt, nur so kommen auch Banner mit niedriger Priorität mal zu Zuge.

Hierzu ein etwas vereinfachtes Beispiel:

  • Zone mit 200.000 Impressionen/Tag
  • exklusive Kampagne A und B
  • bezahlte Kampagne C (10.000 Impressionen/Tag) und D (20.000 Impressionen/Tag)
  • Hauskampagne E (keine Priorität)
  • (jeweils nur 1 Banner/Kampagne)

Intern würde OpenX jetzt für die Kampagne A und B einen PF von jeweils 0.5 errechnen, C, D und E kommen nur zum Zuge wenn die Auslieferungsbedingungen (Frequency Capping, etc.) eine Anzeige verhindern. Nehmen wir also an, C erhält einen PF von 0.05 (10.000 / 200.000), D einen PF von 0.1 (20.000 / 200.000) und E einen PF von 1.0

Bei der Auswahl eines Banners startet OpenX mit den exklusiven und wählt A und B. Nach Prüfen der Auslieferungsbedingungen addiert OpenX die PF der verbleibenden Banner und wählt eine Zufallszahl zwischen 0 und dem aufaddierten Wert. Für das obige Beispiel gibt es 4 Möglichkeiten – je nachdem welche Banner die Auslieferungsbedingungen überstehen:

Fall 1: beide Banner stehen zur Auswahl

Banner A und B verbleiben
Banner A und B verbleiben

Fall 2: nur ein Banner bleibt übrig:

jeweils nur Banner A oder Banner B verbleiben
jeweils nur Banner A oder Banner B verbleiben

Es wird also in jedem Fall einer dieser Banner ausgewählt. Erst wenn nach der Prüfung kein Banner übrig bleibt, folgt als Fall 4 die Auswahl bezahlter Kampagnen:

Bei den bezahlten Kampagnen wird allerdings immer eine Zufallszahl zwischen 0 .. 1 erzeugt, und diese dient zur Auswahl des Banner: im Bereich von 0 … 0.05 fällt die Wahl auf Banner C, von 0.05 … 0.15 auf Banner D und der Rest verbleibt für Banner mit niedriger Kampagnen-Priorität (Schleife von 10 .. 1) oder die unbezahlten Kampagnen.

Auswahl von bezahlten Bannern:

bezahlte Banner, C und D verbleiben
Auswahl von bezahlten Bannern, C und D verbleiben

Wird in diesem Fall die „Lücke“ ausgewählt, erfolgt die Anzeige von Banner E.

OpenX 2.8 erschienen

Lang‘ ist es her da ich hier mal etwas geschrieben habe … Anfang der Woche ist jetzt die nächste Version von OpenX veröffentlicht worden: OpenX 2.8

Enthalten sind (endlich)
– verbesserte PlugIn Architektur
– Verwaltung der PlugIns über die Oberfläche
– Anbindung an den Marketplace
– Neues Layout der Oberfläche
– Abschied von PHP 4 (läuft nur noch auf PHP5)
– …

Man darf gespannt sein, wie die Version von der Community aufgenommen wird.

Auslieferungs­beschränkungen auf eigene Variablen

Seit OpenX 2.6 ist es sehr leicht in den Auslieferungsbeschränkungen eines Werbemittels (Banner) auf eigene Werte zu prüfen. Hierzu ein kurzes Beispiel:

Bei der Erstellung der Webseite, auf der das Werbemittel später erscheint, liegen Ihnen bestimmte Informationen über den „Betrachter“ vor, z.B. in einem Forum wenn der Leser bereits eingeloggt ist. Einige dieser Informationen können für eine feiner Auswahl des Webemittels nützlich sein (z.B. das Alter, Geschlecht, PLZ, …).

Um diese Information jetzt mit in den Aufruf (Bannercode) des Werbemittels zu reichen, können einfach zusätzliche Parameter hinzugefügt werden. Betrachten wir z.B. den javascript-Bannercode:

   ...
   document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
   document.write ("?zoneid=67");
   document.write ('&amp;cb=' + m3_r);
   ...

so könnten wir den Aufruf wie folgt abändern:

   ...
   document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
   document.write ("?zoneid=67");
   document.write ("&amp;geschlecht=M&amp;alter=37");
   document.write ('&amp;cb=' + m3_r);
   ...

Natürlich muß diese Zeile dynamisch aus den Nutzerdaten erzeugt werden.

Diese an den OpenX-AdServer gereichte Zusatzinformationen kann jetzt in den Auslieferungsbeschränkungen eines Banners überprüft werden. Hierzu wechselt man auf den 2. Tab der Banner-Details und fügt dort eine neue Auslieferungsbeschränkung ein:

Auslieferungsbeschränkung Webseite:Variable
Auslieferungsbeschränkung Webseite:Variable

Nach dem Klick auf „Hinzufügen“ könnte man z.B. die Regeln festlegen: nur weibliche Besucher im Alter von 20-28 Jahren. Bei der Verwendung der obigen Parameter „geschlecht“ und „alter“ sieht das dann wie folgt aus:

Regeln für Alter und Geschlecht
Regeln für Alter und Geschlecht

In der Praxis sollte man allerdings für die Parameternamen allerdings kürzer wählen um die Länge der entstehenden Url nicht zu groß werden zu lassen. Zusätzlich könnte man die Werte der Variablen ebenfalls „verschleiern“, um die Nutzerprofile nicht im Klartext durchs Netz zu reichen …

php GetImageSize() Fehler verhindert SWF-Upload

Unter dem Ticket 3867 und 3165 wird eigentlich ein PHP-Fehler geführt, der verhindert, das intern per ZIP gepackte Flash-Banner korrekt in OpenX hochgeladen werden, wenn die PHP Extension zlib nicht statisch in PHP enthalten ist (siehe auch http://bugs.php.net/bug.php?id=29611). Der folgende Patch gegen die Datei lib/OA/Creative/File.php eines OpenX 2.6.3 verwendet die swfheader Klasse von Carlos Falo Herves für den Fall das GetImageSize() fehlschlägt.

File.php.diff.txt

Der OpenX-Marketplace

Zeitgleich mit dem öffentlichen Beta-Test der neuen OpenX Hosted-Version kommen deren Nutzer mit dem Marketplace in Kontakt.

Was ist der Marketplace?

Der Marketplace ist sozusagen eine neue Handelsplattform auf der Webseitenbetreiber und Werbenetzwerke (oder auch einfache Werbetreibende) zueinander finden können. Zunächst nur in OpenX-Hosted als Pilot-Projekt gestartet, können über den Marketplace registrierte Werbetreibende oder Werbe-Netzwerke ihre Werbemittel zur fairen Konditionen an registrierte Webseitenbetreiber ausliefern, bzw. Webseitenbetreiber Ihre eigenen Kampagnen durch den Marketplace „überbieten“ lassen, wenn dies möglich ist. „Der OpenX-Marketplace“ weiterlesen