Die Ad Manager SOAP API ist eine alte API zum Lesen und Schreiben von Ad Manager-Daten und zum Ausführen von Berichten. Wenn Sie migrieren können, empfehlen wir die Verwendung der Ad Manager API (Beta). Ad Manager SOAP API-Versionen werden jedoch für ihren üblichen Lebenszyklus unterstützt. Weitere Informationen finden Sie im Zeitplan für die Einstellung der Ad Manager SOAP API.
In der folgenden Anleitung werden die Unterschiede zwischen der Ad Manager SOAP API und der Ad Manager API (Beta) beschrieben.
Lernen
Die Standarddienstmethoden der Ad Manager SOAP API haben entsprechende Konzepte in der Ad Manager API. Die Ad Manager API bietet auch Methoden zum Lesen einzelner Entitäten. Die folgende Tabelle zeigt eine Beispielzuordnung für Order
-Methoden:
SOAP-Methode | REST-Methoden |
---|---|
getOrdersByStatement
|
networks.orders.get networks.orders.list |
Authentifizieren
Sie können sich mit Ihren vorhandenen Anmeldedaten für die Ad Manager SOAP API oder mit neuen Anmeldedaten bei der Ad Manager API (Beta) authentifizieren. Bei beiden Optionen müssen Sie zuerst die Ad Manager API in Ihrem Google Cloud-Projekt aktivieren. Weitere Informationen finden Sie unter Authentifizierung.
Wenn Sie eine Clientbibliothek verwenden, richten Sie Standardanmeldedaten für Anwendungen ein, indem Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad Ihrer Dienstkonto-Schlüsseldatei festlegen. Weitere Informationen finden Sie unter Funktionsweise von Standardanmeldedaten für Anwendungen.
Wenn Sie Anmeldedaten für installierte Anwendungen verwenden, erstellen Sie eine JSON-Datei im folgenden Format und legen Sie die Umgebungsvariable stattdessen auf den Pfad fest:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "REFRESH_TOKEN",
"type": "authorized_user"
}
Ersetzen Sie die folgenden Werte:
CLIENT_ID
: Ihre neue oder vorhandene Client-ID.CLIENT_SECRET
: Ihr neues oder vorhandenes Clientsecret.REFRESH_TOKEN
: Ihr neues oder vorhandenes Aktualisierungstoken.
Linux oder macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Windows
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Unterschiede bei den Filtern
Die Abfragesprache der Ad Manager API (Beta) unterstützt alle Funktionen der Publisher Query Language (PQL). Es gibt jedoch erhebliche Unterschiede bei der Syntax.
In diesem Beispiel für die Auflistung von Order
-Objekten werden die wichtigsten Änderungen veranschaulicht, z. B. das Entfernen von Bindvariablen, die Entfernung von buchstabensensitiven Operatoren und das Ersetzen von ORDER BY
- und LIMIT
-Klauseln durch separate Felder:
Ad Manager SOAP API
<filterStatement>
<query>WHERE name like "PG_%" and lastModifiedDateTime >= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
<values>
<key>lastModifiedDateTime</key>
<value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
<value>
<date>
<year>2024</year>
<month>1</month>
<day>1</day>
</date>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<timeZoneId>America/New_York</timeZoneId>
</value>
</value>
</values>
</filterStatement>
Ad Manager API (Beta)
JSON-Format
{
"filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
"pageSize": 500,
"orderBy": "name"
}
URL-codiert
GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"
Die Ad Manager API (Beta) unterstützt alle PQL-Funktionen. Die Syntax unterscheidet sich jedoch von der der Ad Manager SOAP API:
Bei den Operatoren
AND
undOR
wird in der Ad Manager API (Beta) zwischen Groß- und Kleinschreibung unterschieden. Kleingeschriebeneand
undor
werden als reine Suchstrings behandelt. Das ist eine Funktion in der Ad Manager API (Beta), mit der Sie in mehreren Feldern suchen können.Operatoren in Großbuchstaben verwenden
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = false
Kleinbuchstaben werden als Literal behandelt
// Matches unarchived Orders where order.notes has the value 'lorem ipsum' // and any field in the order has the literal value 'and'. notes = "lorem ipsum" and archived = false
Das Zeichen
*
ist ein Platzhalter für die Stringübereinstimmung. Der Operatorlike
wird von der Ad Manager API (Beta) nicht unterstützt.Ad Manager SOAP API PQL
// Matches orders where displayName starts with the string 'PG_' displayName like "PG_%"
Ad Manager API (Beta)
// Matches orders where displayName starts with the string 'PG_' displayName = "PG_*"
Feldnamen müssen links neben einem Vergleichsoperator stehen:
Gültiger Filter
updateTime > "2024-01-01T00:00:00Z"
Ungültiger Filter
"2024-01-01T00:00:00Z" < updateTime
Die Ad Manager API (Beta) unterstützt keine Bindevariablen. Alle Werte müssen eingefügt werden.
Stringliterale, die Leerzeichen enthalten, müssen in doppelte Anführungszeichen gesetzt werden, z. B.
"Foo bar"
. Sie können keine einfachen Anführungszeichen verwenden, um Stringliterale einzufügen.
Sortierungsklauseln entfernen
In der Ad Manager API (Beta) ist die Angabe einer Sortierreihenfolge optional. Wenn Sie eine Sortierreihenfolge für die Ergebnismenge angeben möchten, entfernen Sie die PQL-Klausel ORDER BY
und legen Sie stattdessen das Feld orderBy
fest:
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
Von Offset- zu Paginierungs-Token migrieren
Die Ad Manager API (Beta) verwendet Paginierungstokens anstelle von LIMIT
- und OFFSET
-Klauseln, um große Ergebnismengen zu durchsuchen.
In der Ad Manager API (Beta) wird die Seitengröße über den Parameter pageSize
gesteuert.
Im Gegensatz zur LIMIT
-Klausel in der Ad Manager SOAP API wird bei Auslassung einer Seitengröße nicht die gesamte Ergebnismenge zurückgegeben. Stattdessen verwendet die Liste die Standardseitengröße 50
. Im folgenden Beispiel werden pageSize
und pageToken
als URL-Parameter festgelegt:
# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50
# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
Im Gegensatz zur Ad Manager SOAP API gibt die Ad Manager API (Beta) möglicherweise weniger Ergebnisse als die angeforderte Seitengröße zurück, auch wenn es weitere Seiten gibt. Verwenden Sie das Feld nextPageToken
, um festzustellen, ob weitere Ergebnisse vorhanden sind.
Für die Paginierung ist zwar kein Offset erforderlich, Sie können das Feld skip
aber für Multithreading verwenden. Verwenden Sie beim Multithreading das Paginierungstoken der ersten Seite, um sicherzustellen, dass Sie aus demselben Ergebnissatz lesen:
# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50