Nun, wo Sie mit den grundlegenden Elementen von Auswahlstrings und Anweisungen vertraut sind, können Sie beginnen selbst Auswahlstrings zu erstellen. Der einfachste Auswahlstring den Sie bilden können besteht nur aus einer Anweisung und nichts weiter, beispielsweise width:468 oder bannerid:33. Dieser sehr einfache Auswahlstring ist leicht zu handhaben aber mit einigen anderen Komponenten geht noch viel mehr.
Es gibt zwei Arten von Auswahlstrings, jede mit eigenen Vorteilen, Beschränkungen und Syntax. Der erste Typ verwendet Pfade um die Banner für die Auslieferung zu bestimmen. Die zweite Methode ist komplexer und erlaubt die Verwendung von Mehrfachausdrücken (multiple expressions) und logischen Operatoren.
Auswahlstrings dieser Art werden üblicherweise nur in Kombination mit Schlüsselwortanweisungen verwendet. Es ist nicht unmöglich sie mit anderen Arten von Anweisungen zu benutzen aber das ist nur selten nötig. In allen folgenden Beispielen wird die Schlüsselwortanweisung verwendet.
Ein Pfad besteht aus einer Anzahl durch Schrägstrich (/) getrennten Schlüsselwortanweisungen, beispielsweise sport/formel1/teams/ferrari. Das bedeutet das phpAdsNew zuerst versucht einen Banner zu zeigen der genau die oben genannten Schlüsselwörter besitzt. Falls kein Banner mit genau den Schlüsselwörtern existiert wird das letzte weggelassen und versucht ein Banner mit den Schlüsselwörtern sport, formel1 und teams zu zeigen. Sollte auch kein Banner existieren der diesen Bedingungen entspricht wird wieder das letzte Schlüsselwort in der Anweisung gestrichen, und so weiter. Mit anderen Worten, phpAdsNew versucht den zutreffendsten Banner zuerst zu zeigen und falls dies fehlschlägt versucht es den Banner anzuzeigen der den Schlüsselwörtern am besten entspricht.
Der Auswahlstring für Pfade ist sehr nützlich, falls Ihre Website als Baumstruktur angelegt ist. Nehmen Sie beispielsweise das Goolge Verzeichnis (http://directory.google.de). Auf der Startseite finden Sie verschiedene Kategorien, beispielsweise Computer, Kultur, Sport und Freizeit. Wenn Sie auf eine dieser Kategorien klicken, beispielsweise Computer, kommen Sie zu einer Seite mit weiteren Kategorien wie Internet, Programmieren und Software. Wenn Sie tiefer in die Struktur des Verzeichnisses einsteigen werden die Informationen immer detaillierter.
Wenn Ihre Website auf die gleiche Weise struktriert ist wie das Google Verzeichnis sind Pfade ideal um ihre Banner zu verwalten. Nehmen Sie zum Beispiel Computer > Programmieren > Internet > PHP > Skripte > Foren. Wenn wir ein Banner in dieser Kategorie anzeigen möchten können wir einfach all diese Kategorienamen als Schlüsselwörter dem Banner zuordnen und den folgenden Pfad als Auswahlstring für diese Seite nutzen: computer/programmieren/internet/php/skripte/foren. Dies bedeutet natürlich auch das für jede Seite ein eigener Auswahlstring erstellt werden muss.
Es gibt ein Problem bei der Verwendung von Pfaden wie diesem. Wenn Sie mit zwei verschieden großen Bannern auf einer Seite arbeiten, ist es nicht möglich phpAdsNew mitzuteilen welche Bannergröße Sie zeigen möchten. Banner beider Größen werden bei der Auslieferung mit diesem Auswahlstring berücksichtigt, ausser … es ist möglich eine andere Anweisung als Bedingung für den ganzen Pfad anzugeben. Das geht sehr leicht. An den Pfad hängen Sie einfach ein @ und die Anweisung die Sie als Bedingung für den ganzen Pfad möchten, beispielsweise: computer/programmieren/internet/php/skripte/foren@468x60 oder computer/programmieren/internet/php/skripte/foren@width:160. Das erste Beispiel zeigt nur Banner mit einer Größe von 468 zu 60 Pixeln. Das zweite zeigt nur Banner mit einer Breite von 160 Pixeln.
Die Größe der Banner ist nicht die einzige Bedingung die zusätzlich zum Pfad angegeben werden kann. Es ist möglich jede Art von Anweisung zu verwenden, sogar Schlüsselwörter. Wenn Sie zwei oder mehr verschiedene Bereiche auf Ihrer Seite haben wo Banner angezeigt werden sollen, beispielsweise oben und unten, und Sie bestimmen möchten an welcher Position ein Banner gezeigt werden soll, können Sie ein Schlüsselwort verwenden. Zum Beispiel: sport/f1/teams@oben wird versuchen einen Banner mit den folgenden Schlüsselwörtern anzuzeigen: sport, f1, teams und oben. Falls kein Banner mit exakt diesen Schlüsselwörtern zur Verfügung steht wird das Schlüsselwort teams weggelassen und versucht ein Banner nur mit sport, f1 und oben zu zeigen. Weil oben eine Bedingung für den ganzen Pfad ist wird es nie weggelassen.
Wie bereits weiter oben erläutert, die etwas schwierigeren Typen von Auswahlstrings erlauben die Verwendung von Mehrfachausdrücken (multiple expressions) und logischen Operatoren. Im folgenden werden zuerst diese beiden Features und deren Anwendung erklärt. Später in diesem Kapitel werden einige Beispiele aus der Praxis vorgestellt.
Logische OperatorenMit logischen Operatoren ist es möglich zwei oder mehr Anweisungen auf logische Weise zu verknüpfen. Wenn Sie beispielsweise einen 468x60 Banner mit dem Schlüsselwort ‚oben‘ anzeigen lassen wollen, sind die Abmessungen der Banner die erste Anweisung und das Schlüsselwort ‚oben‘ die zweite, kombiniert durch den logischen Operator AND. Im Falle des obigen Beispiels müssen beide Schlüsselwörter dem Banner zugewiesen sein wenn er bei der Auslieferung berücksichtigt werden soll. Wenn Sie den Operator im obigen Beispiel in OR ändern würden, ist nur eins der beiden Schlüsselwörter nötig um einen Banner bei der Auslieferung zu berücksichtigen. phpAdsNew unterstützt die Operatoren: AND, OR und NOT.
Die logischen Operatoren in phpAdsNew sehen ein bisschen anders aus als jene in MySQL und PHP, aber funktionieren auf diesselbe Weise. Anweisungen müssen durch Komma (,) getrennt werden und können mit einem Schalter für das Verhalten beginnen. Verwenden Sie keine Leerzeichen zwischen dem Operator und den Anweisungen. Falls Sie die Anweisungen ohne einen Schalter trennen (nur mir Komma), wirkt das Trennzeichen als OR Operator.
nachrichten,sport
Berücksichtigt alle Banner mit dem Schlüsselwort Nachrichten oder Sport
Wenn Sie den + oder _ Schalter verwenden wird der Trenner zum AND Operator. Beachten Sie: Der + Schalter kann bei remote invocation nicht verwendet werden, verwenden Sie stattdessen den Schalter _, was auf das Gleiche hinaus läft.
wissenschaft,+wirtschaft
Berücksichtigt alle Banner mit den Schlüsselwörtern
Wissenschaft und Wirtschaft
Wenn Sie den - Schalter verwenden wird der Trenner zum NOT Operator. Sie können den - Schalter auch auf die erste Anweisung anwenden.
software,-nachrichten
Berücksichtigt alle Banner mit dem Schlüsselwort Software, aber nicht
die Banner mit dem Schlüsselwort Nachrichten
Wenn Sie mehr als zwei Anweisungen unter Verwendung unterschiedlicher logischer Operatoren kombinieren ist es wichtig folgendes im Hinterkopf zu behalten: OR hat Vorrang vor AND und NOT. AND und NOT sind gleichrangig. Zurzeit ist es nicht möglich mithilfe von Klammern Vorrang zu erzwingen!
anweisung1,+anweisung2,anweisung3
(anweisung1 AND anweisung2) OR anweisung3
anweisung1,+anweisung2,anweisung1,+anweisung3
(anweisung1 AND anweisung2) OR (anweisung1 AND anweisung3)
anweisung1 AND (anweisung2 OR anweisung3)
Nun für diejenigen die nicht auf Anhieb verstehen was das bedeutet, eine genauere Betrachtung folgender Anweisung: nachrichten,+wissenschaft,sport. Ohne Regeln für die Rangfolge kann diese Anweisung zwei verschiedene Dinge bedeuten: nachrichten,+wissenschaft oder sport oder es kann nachrichten und wissenschaft,sport heissen. Obwohl diese zwei Anweisungen sehr ähnlich aussehen bewirken sie dennoch verschiedene Dinge. Der erste berücksichtigt Banner mit beiden Schlüsselwörtern, nachrichten und wissenschaft, oder nur sport. Das zweite erfasst Banner mit dem Schlüsselwort nachrichten in Kombination mit wissenschaft oder Banner mit nachrichten in Kombination mit sport. Glücklicherweise existieren Regeln um derartige Situationen zu bewältigen, also das ein Auswahlstring eine eindeutige Bedeutung hat. In diesem Fall ist OR vorrangig vor AND, also bedeutet es nachrichten,+wissenschaft oder sport.
Wie erreichen wir das Verhalten des zweiten Beispiels? Wir können die Anweisung nachrichten,+wissenschaft,sport nicht verwenden weil die Regeln der Rangfolge etwas anderes bewirken. Dennoch ist dieses Problem leicht zu lösen. Wir müssen den Anweisung einfach etwas länger formulieren so das sie eindeutig wird: nachrichten,+wissenschaft,nachrichten,+sport. Gemäß den Regeln der Rangfolge lässt sich diese Anweisung in folgende Teile zerlegen: nachrichten,+wissenschaft oder nachrichten,+sport, was genau das ist was wir brauchen.
Alle Anweisungen zusammen mit den Operatoren werden Ausdrücke genannt. Jeder Banner wird mit dem gesamten Ausdruck verglichen und nur Banner die dem gesamten Ausdruck entsprechen werden für die Auslieferung berücksichtigt. Das bedeutet nicht das alle Anweisungen wahr (true) ergeben müssen, beispielsweise der Ausdruck unten,oben wird wahr ergeben wenn nur eine der beiden Anweisungen wahr ergibt. Banner nur mit dem Schlüsselwort unten oder oben und Banner mit beiden Schlüsselwörtern werden bei der Auslieferung berücksichtigt. Es ist natürlich möglich mehr als nur zwei Anweisungen in einem Ausdruck zu verwenden, aber jede Anweisung muss durch einen logischen Operatoren getrennt sein. Verwenden Sie also 8 Anweisungen in einem Ausdruck, haben Sie auch genau 7 logische Operatoren.
Mehrfachausdrücke (Multiple expressions)Ein Ausdruck ist die Kombination einer oder mehrerer Anweisungen und logischer Operatoren. Der Auswahlstring kann aus einem oder mehreren Ausdrücken bestehen. Jeder Ausdruck wird abgearbeitet wenn der verherige fehlschlägt. Mehrfachausdrücke müssen durch | getrennt werden und dürfen keine Leerzeichen enthalten.
Wenn der erste Ausdruck keinen Banner erfasst wird der zweite Ausdruck ausgeführt. Wenn der zweite Ausdruck keinen Banner erfasst wird der drite Ausdruck ausgeführt. Das bedeutet auch das wenn der erste Ausdruck eine Banner erfasst werden der zweite und dritte Ausdruck nicht mehr ausgeführt. Sie können soviele Ausdrücke festlegen wie Sie möchten, aber jeder zusätzliche Ausdruck verbraucht auch ein wenig Systemressourcen wie die Rechenzeit.
Das bedeutet, Sie können einen Reihe Ersatzausdrücke angeben welche ausgewertet werden, sollte der erste Ausdruck keine Banner erfassen. Ein einfaches Beispiel hierfür ist der folgende Auswahlstring fussball|sport|haupt. Letztendlich versucht phpAdsNew zuerst einen Banner mit dem Schlüsselwort fussball zu zeigen und falls dies fehlschlägt benutzt es die Ersatzschlüsselwortanweisung sport und so weiter.
fussball|sport|haupt
fussball,+nachrichten|sport,+nachrichten|haupt,+nachrichten
In phpAdsNew können sie globale Banner definieren. Wenn Sie einen Banner zu einem globalen Banner machen möchten müssen sie das Schlüsselwort global dem Banner zuweisen. Globale Banner werden bei jeder Auslieferung berücksichtigt. Dieses Verhalten passiert nur wenn Sie genau einen Ausdruck mit nur einem Schlüsselwort verwenden. Andernfalls müssen Sie das Schlüsselwort global per Hand dem Auswahlstring hinzufügen.
key1
Erfasst Banner mit dem Schlüselwort key1 oder global. Weil nur ein
Ausdruck mit einem Schlüsselwort verwendet wird, werden die globalen
Banner bei jeder Auslieferung berücksichtigt.
key1|global
Erfasst Banner mit dem Schlüsselwort key1. Wenn keine zutreffenden
Banner existieren werden die globalen Banner erfasst. Dieses Beispiel ist ein
wenig anders als das erste, anstatt Banner mit den Schlüsselwörtern
key1 und global zu zeigen, erfasst diese Auswahl nur die globalen Banner
wenn kein Banner mit key1 existiert
Hier nun ein paar Beispiele wie ein Auswahlstring konfiguriert sein könnte. Die Beispiele beinhalten verschiedene Anweisungen, logische Operatoren und Mehrfachausdrücke.
key1|haupt
Erfasst Banner mit dem Schlüsselwort key1. Wenn keine zutreffenden
Banner vorhanden sind wird versucht ein Banner mit den Schlüsselwort
haupt zu zeigen.
key1,key2|campaignid:3
Erfasst Banner mit dem Schlüsselwort key1 oder key2. Wenn keine
zutreffenden Banner vorhanden sind wird versucht ein Banner mit der
Kampagnenid 3 zu zeigen.
key1,-campaignid:2
Erfasst einen Banner mit dem Schlüsselwort key1, aber nicht Kampagnenid 2.
4|campaignid:2,clientid:4|key1|global
Erfasst einen Banner mit der ID 4. Wenn keine zutreffenden Banner vorhanden
sind wird versucht ein Banner mit der Kampagnenid 2 oder der Klientid 4 zu
zeigen. Wenn keine zutreffenden Banner vorhanden sind wird versucht ein
Banner mit dem Schlüsselwort key1 zu zeigen. Schlägt auch das fehl
wird versucht ein Banner mit dem Schlüsselwort global zu zeigen.
html,+key1,+key2,-campaignid:2
Erfasst Banner mit den Schlüsselwörtern html, key1 und key2, aber
keine Banner von der Kampagne mit der Id 2.
3,+468x60,4,+468x60,5,+468x60
Erfasst Banner mit einer Breitze von 468 und einer Höhe von 60. Die Id
des Banners muss 3,4 oder 5 sein.
key1/key2/key3
Erfasst ein Banner mit den Schlüselwörtern key1, key2 und key3.
Wenn kein zutreffenden Banner vorhanden sind wird versucht ein Banner mit
den Schlüsselwörtern key1 und key2 zu zeigen. Wenn keine zutreffenden
Banner vorhanden sind wird versucht ein Banner mit dem Schlüsselwort
key1 zu zeigen.
key1/key2/key3@468x60
Erfasst ein Banner mit den Schlüsselwörtern key1, key2 und key3.
Wenn kein zutreffender Banner vorhanden ist, wird versucht ein Banner mit
den Schlüsselwörtern key1 und key2 zu zeigen. Wenn kein
zutreffender Banner vorhanden ist, wird versucht ein Banner mit dem
Schlüsselwort key1 zu zeigen. Der Banner muss eine Breite von 468 und
eine Höhe von 60 Pixeln haben.