|
|
 |
Technik - Engine
Die Ausliefer-Engine wird auf unterschiedliche Weise aufgerufen, aber ihre Aufgabe ist meistens die
gleiche. Meistens ist die Ausgabe zum Browser abhängig von der Art und Weise wie PhpAdsNew
aufgrufen wird. Nach dem Aufruf baut die Engine als erstes eine Verbindung zur Datenbank auf.
Weil alle Daten in der Datenbank gespeichert sind ist das ein sehr wichtiger Schritt.
Nachdem die Verbindung hergestellt ist, versucht die Engine herauszufinden welcher Banner gezeigt werden
soll. Weil Banner mit Zonen verknüpft sind und die ID der Zone während des Aufrufs zur Ausliefer-Engine
übertragen wird, holt PhpAdsNew erst alle Informationen die über die aktuelle Zone zur Verfügung stehen.
Diese Liste beinhaltet eine Liste aller Banner die zu dieser Zone gehören.
Der nächste Schritt ist ein bißchen kompliziert, weil das Ergebnis aus Optimierungsgründen zwischengespeichert
wird. Abhängig von der Liste der Banner beinhalten die Zoneninformationen eine Liste mit Informationen
über die verknüpften Banner. Ist diese Liste nicht vorhanden, oder abgelaufen, holt die Ausliefer-Engine
alle passenden Banner speichert sie in einem Cache für den Fall das die Zone erneut aufgerufen wird. Der Grund
warum diese Abfrage zwischengespeichert wird, ist einfach. Weil die Zoneninformatonen jedesmal gebraucht werden,
ist es speichersparender eine Zwischenspeicher für die Banner einzubauen. Wenn der Cache nicht benutzt wird,
muss die Engine eine umfangreiche Abfrage an die Datenbank machen. Weil die Abfrage jedesmal die gleiche ist,
ist es viel besser sie nur einmal auszuführen und das Ergebnis zwischenzuspeichern.
Jetzt haben wir die verlinkten Banner, inklusive der Priorität jedes Banners.
Als erstes wird jetzt festgelegt welcher Banner gezeigt wird. Dazu werden die Prioritäten der Banner zusammengezählt
und eine Zufallszahl, mit der Summe als Maximum, gebildet. Das Banner mit dieser ID wird dann auf Auslieferbeschränkungen
hin überprüft. Wenn der Banner zur Anzeige zugelassen ist wird er zum nächsten Schritt weitergereicht, andernfalls
wird er von der Liste gelöscht, die Priorität wird von der Summe abgezogen und eine neue Zufallszahl
gebildet.
Das passiert solange bis ein passender Banner gefunden wurde. Falls kein Banner passt stehen in den Zoneninformationen
die Anweisungen wie weiter verfahren wird. Basierend auf diesen Infomationen wird die Ausliefer-Engine
die Auslieferung stoppen oder eine andere Zone nehmen und zum zweiten Schritt zurückgehen.
Weil die Auslieferbeschänkungen von externen Faktoren abhängen die sich bei jedem Aufruf der Ausliefer-Egine
ändern können, kann das Datenbankabfrage-Ergebnis nicht zwischengespeichert werden und muss jedesmal
ausgeführt werden wenn ein Banner angefordert wird. PhpAdsNew speichert teilweise die Kalkulationsschritte
ob ein Banner erlaubt ist oder nicht.
Dank dieses Caches braucht die Ausliefer-Engine nicht jedesmal eine umfangreiche Abfrage an die
Datenbank zu stellen um Informationen aus der Tabelle mit den Auslieferbeschränkungen zu holen.
Jedesmal wenn die Auslieferbeschränkungen im Administrator-Interface geändert werden, wird der Zwischenspeicher
auch aktualisiert.
Wenn ein Banner gefunden wurde muss der HTML-Code für die Auslieferung vorbereitet
werden. Bei Grafikbannern ist der HTML für die Anzeige Teil der bereits abgefragten Informationen,
weil dann der Code bei Auslieferung jedesmal der gleiche ist. Der Code wird schon bei der
Erstellung oder Änderung des Banners erzeugt. Das entlastet die Ausliefer-Engine von der Generierung
des Codes, jedesmal wenn ein Banner aufgerufen wird. Nur Informationen die bei Erzeugung des Banners
noch nicht zur Verfügung standen, werden hier eingefügt. Beispielsweise: der aufrufende Domainname,
die Zonen-ID welche zur Auslieferung benutzt wurde, usw.
Falls Beacon's nicht für die Protokollierung verwendet werden, weist die Ausliefer-Engine die Datenbank an
einen AdView pro Banner zu protokollieren. Das ist nicht sehr zverlässig, weil es vorkommen kann
das der Banner noch nicht vollständig geladen ist und es diverse Gründe gibt warum dieser Banner
dann nicht angezeigt werden kann. Einen AdView zu protokollieren ist dann verfrüht.
Besser ist es für die Protokollierung Beacon's einzuschalten, dann passieren solchen falschen
Protokllierungen nicht. Weil hierbei ein Link auf ein kleines Bild an den HTML-Code angehängt wird,
wird der AdView nur gezählt wenn dieses kleine Bild vom Server abgefragt wird. Da das Bild garantiert
nach dem Banner angefordert wird, können sie sicher sein das auch der Banner angezeigt wurde.
Im letzten Schritt sendet die Ausliefer-Engine den HTML-Code zum Browser. Dieser Schritt unterscheidet
sich von Auslieferart zu Auslieferart. Beispiel: Bei lokalem Modus wird das HTML "pur" zum Browser gesendet.
Bei Javascript wird der Code in eine Variable gespeichert und dann an den Browser gesendet. Der Browser
ist dann in der Lage die Javascriptvariable zu verwenden und selbst auf dem Bildschirm darzustellen.
weiter
mit Erste Hilfe - Installation |
|
|