Die Ad Manager API unterstützt das Filtern nach List-Methoden. Die Syntax von Filterstrings ist in der EBNF-Grammatik formal definiert.
Im Folgenden finden Sie einige Beispiele für gängige Anwendungsfälle.
| Beispiel | Bedeutung | 
|---|---|
| orders.updateTime > "2024-01-01T00:00:00-5:00" | Listet Bestellungen mit einer updateTimenach dem 1. Januar 2024 in der Eastern Standard Time-Zeitzone auf | 
| lineItems.targeting.geoTargeting.targetedGeoIds:2840 | Listet Werbebuchungen mit geografischem Targeting auf, die die USA (ID für geografische Ziele 2480) enthalten. | 
| lineItems.displayName = "*_interstitial" | Werbebuchungen mit einem Anzeigenamen, der auf den String _interstitialendet | 
| orders.displayName = "*video*" | Hier werden Bestellungen mit einem Anzeigenamen aufgelistet, der den String videoenthält. | 
| displayName:"video" | Listet Bestellungen auf, deren Anzeigename den String videoenthält (alternative Syntax) | 
Literale
Ein einfacher Literalwert (z. B. 42, Hugo) ist ein Wert, mit dem verglichen werden soll.
Allein stehende Literale werden mit allen unterstützten Feldern einer Ressource abgeglichen. In den Ressourcen wird dokumentiert, welche Felder bei der list-Methode für den Abgleich berücksichtigt werden. Diese Funktion ist mit der universellen Suche in der Ad Manager-Benutzeroberfläche vergleichbar, aber auf einen einzelnen Ressourcentyp beschränkt.
Stringliterale mit Leerzeichen müssen in doppelte Anführungszeichen gesetzt werden (Beispiel: "Foo bar"). Sie können nicht in einfache Anführungszeichen gesetzt werden.
Logische Operatoren
Die Ad Manager API unterstützt die binären Operatoren AND und OR.
| Operator | Beispiel | Bedeutung | 
|---|---|---|
| AND | a AND b | „Wahr“, wenn aundb„wahr“ sind. | 
| OR | a OR b OR c | „Wahr“, wenn mindestens einer der Werte a,bodercwahr ist. | 
Negationsoperatoren
Die Ad Manager API bietet die unaryn Operatoren NOT und -. Sie können austauschbar verwendet werden.
| Operator | Beispiel | Bedeutung | 
|---|---|---|
| NOT | NOT a | „Wahr“, wenn anicht wahr ist. | 
| - | -a | „Wahr“, wenn anicht wahr ist. | 
Vergleichsoperatoren
Die Ad Manager API unterstützt die binären Vergleichsoperatoren =, !=, <, >, <= und >= für String-, Zahlen-, Zeitstempel- und Zeitdauerfelder.
| Operator | Beispiel | Bedeutung | 
|---|---|---|
| = | a = true | Wahr, wenn awahr ist. | 
| != | a != 42 | „Wahr“, es sei denn, aist 42. | 
| < | a < 42 | TRUE, wenn aein numerischer Wert kleiner als 42 ist. | 
| > | a > "foo" | „Wahr“, wenn alexikalisch nach „foo“ sortiert ist. | 
| <= | a <= "foo" | Wahr, wenn a„foo“ ist oder lexikalisch vor „foo“ steht. | 
| >= | a >= 42 | „Wahr“, wenn aein numerischer Wert von 42 oder höher ist. | 
Da Filter als Suchstrings akzeptiert werden, erfolgt eine Typkonvertierung, um den String in den entsprechenden stark typisierten Wert umzuwandeln:
- Strings müssen in doppelte Anführungszeichen gesetzt werden. Beispiel: "Foo bar".
- Für Enums wird die Stringdarstellung des Enums erwartet (Groß-/Kleinschreibung wird beachtet).
- Für boolesche Werte werden die Literalwerte trueundfalseerwartet.
- Für Zahlen werden die Standarddarstellungen für Ganzzahlen oder Gleitkommazahlen erwartet. Bei Gleitkommazahlen werden Exponenten unterstützt. Beispiel: 2.997e9.
- Für die Dauer ist eine numerische Darstellung mit dem Suffix s(für Sekunden) erforderlich. Beispiele:"20s","1.2s".
- Für Zeitstempel ist ein String im Format RFC-3339 erforderlich. Beispiel:"2012-04-21T11:30:00-04:00". Zeitzonenunterschiede zur UTC-Zeit werden unterstützt.
Platzhalter
Beim Vergleichen von Strings auf Gleichheit unterstützt die Ad Manager API Platzhalter mit dem Zeichen *.
| Beispiel | Bedeutung | 
|---|---|
| a = "*.foo" | „Wahr“, wenn amit „.foo“ endet. | 
Durchlaufoperator
Die Ad Manager API unterstützt den Operator ., der die Durchlaufung einer Nachricht, Map oder Struktur angibt.
| Beispiel | Bedeutung | 
|---|---|
| a.b = true | „Wahr“, wenn aein booleschesb-Feld mit dem Wert „wahr“ hat. | 
| a.b > 42 | „Wahr“, wenn aein numerischesb-Feld hat, das größer als 42 ist. | 
| a.b.c = "foo" | „Wahr“, wenn a.bein Stringfeldcmit dem Wert „foo“ hat. | 
Die Durchlaufanweisung wird mit den Feldnamen aus der Ressource geschrieben. Einzelne Dienste können eine Teilmenge der Felder angeben, die für die Durchsuchung unterstützt werden.
Mit Betreiber
Die Ad Manager API unterstützt den Operator :, der für „hat“ steht. Sie kann mit Sammlungen (wiederkehrende Felder oder Karten), Nachrichten und Strings verwendet werden und verhält sich in jedem Fall etwas anders.
Stringfelder werden abgefragt, um zu prüfen, ob der String einen übereinstimmenden Teilstring enthält:
| Beispiel | Bedeutung | 
|---|---|
| r.displayName:"_250x250" | „Wahr“, wenn das Stringfeld r.displayNameden Teilstring_250x250enthält. | 
Mit wiederkehrenden Feldern wird geprüft, ob die wiederkehrende Struktur ein übereinstimmendes Element enthält:
| Beispiel | Bedeutung | 
|---|---|
| r:42 | „Wahr“, wenn rdie Zahl 42 enthält. | 
| r.foo:42 | Wahr, wenn rein Elementeenthält, für dase.foo = 42gilt. | 
Bei Zuordnungen, Strukturen und Nachrichten kann entweder nach dem Vorhandensein eines Felds in der Zuordnung oder nach einem bestimmten Wert gesucht werden:
| Beispiel | Bedeutung | 
|---|---|
| m:foo | „True“, wenn mden Schlüssel „foo“ enthält. | 
| m.foo:* | „True“, wenn mden Schlüssel „foo“ enthält. | 
| m.foo:42 | Wahr, wenn m.foo= 42 ist. | 
Bei der Durchsuchung von Nachrichten wird ein Feld nur dann als vorhanden betrachtet, wenn es einen anderen Wert als den Standardwert hat.
Beschränkungen
Für einzelne Dienste können zusätzlich zu den hier definierten Strukturen oder Einschränkungen für Filterabfragen weitere festgelegt werden.
Auftrag
Die meisten Ressourcen unterstützen die Sortierung nach List-Methoden. Weitere Informationen zum genauen Verhalten der Ressource und zu den für die Sortierung unterstützten Feldern findest du in der Dokumentation der List-Methode.
Die Syntax für orderBy-Felder ist eine durch Kommas getrennte Liste von Feldnamen. Beispiel: "foo,bar"
Die Standardsortierreihenfolge ist aufsteigend. Wenn Sie ein Feld absteigend sortieren möchten, hängen Sie das Suffix " desc" an. Beispiel: "foo desc, bar"
Überflüssige Leerzeichen in der Syntax werden ignoriert. Die Werte "foo, bar
desc", " foo , bar desc " und "foo,bar desc" sind äquivalent.
Unterfelder werden mit dem Durchlaufoperator angegeben. Beispiel: foo.bar oder address.street.