Die Ad Manager SOAP API ist eine alte API zum Lesen und Schreiben Ihrer 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 während ihres typischen 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 Standardmethoden 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 ein Beispiel für die Zuordnung für Order-Methoden:
| SOAP-Methode | REST-Methoden |
|---|---|
getOrdersByStatement
|
networks.orders.get networks.orders.list |
Authentifizieren
Zur Authentifizierung bei der Ad Manager API (Beta) können Sie Ihre vorhandenen Ad Manager SOAP API-Anmeldedaten verwenden oder neue erstellen. 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 die 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 ihren 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 Client-Secret.REFRESH_TOKEN: Ihr neues oder vorhandenes Aktualisierungstoken.
Linux oder macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATHWindows
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Unterschiede bei Filtern
Die Abfragesprache der Ad Manager API (Beta) unterstützt alle Funktionen der Publisher Query Language (PQL), es gibt jedoch erhebliche Unterschiede in der Syntax.
Dieses Beispiel für das Auflisten von Order-Objekten veranschaulicht die wichtigsten Änderungen, z. B. das Entfernen von Bindungsvariablen, die Berücksichtigung der Groß-/Kleinschreibung bei 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. Es gibt jedoch die folgenden Syntaxunterschiede zur Ad Manager SOAP API:
Bei den Operatoren
ANDundORwird in der Ad Manager API (Beta) zwischen Groß- und Kleinschreibung unterschieden. Klein geschriebeneandundorwerden als einfache Literal-Suchstrings behandelt. Das ist eine Funktion in der Ad Manager API (Beta), mit der in Feldern gesucht werden kann.Operatoren in Großbuchstaben verwenden
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = falseKleinbuchstaben 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 = falseDas Zeichen
*ist ein Platzhalter für den Stringvergleich. Die Ad Manager API (Beta) unterstützt den Operatorlikenicht.PQL für die Ad Manager SOAP API
// 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 auf der linken Seite eines Vergleichsoperators stehen:
Gültiger Filter
updateTime > "2024-01-01T00:00:00Z"Ungültiger Filter
"2024-01-01T00:00:00Z" < updateTimeDie Ad Manager API (Beta) unterstützt keine Bindungsvariablen. Alle Werte müssen inline sein.
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 einzuschließen.
„ORDER BY“-Klauseln entfernen
Die Angabe einer Sortierreihenfolge ist in der Ad Manager API (Beta) optional. Wenn Sie eine Sortierreihenfolge für Ihre 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 Offsets zu Paginierungs-Tokens migrieren
Bei der Ad Manager API (Beta) werden zum Durchsuchen großer Ergebnissätze Paginierungstokens anstelle von LIMIT- und OFFSET-Klauseln verwendet.
In der Ad Manager API (Beta) wird die Seitengröße mit dem Parameter pageSize gesteuert.
Anders als bei der LIMIT-Klausel in der Ad Manager SOAP API wird beim Weglassen einer Seitengröße nicht die gesamte Ergebnismenge zurückgegeben. Stattdessen wird bei der Listenmethode eine Standardseitengröße von 50 verwendet. 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 kann die Ad Manager API (Beta) weniger Ergebnisse als die angeforderte Seitengröße zurückgeben, auch wenn es zusätzliche Seiten gibt. Verwenden Sie das Feld nextPageToken, um festzustellen, ob weitere Ergebnisse vorhanden sind.
Ein Offset ist für die Paginierung nicht erforderlich, Sie können das Feld skip jedoch für Multithreading verwenden. Verwenden Sie beim Multithreading das Paginierungstoken von 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
Berichte migrieren
Über die SOAP API können nur Berichte im eingestellten Berichte-Tool gelesen und ausgeführt werden. Umgekehrt kann die REST API nur interaktive Berichte lesen, schreiben und ausführen.
Für die Berichterstellungstools und APIs wird ein anderer ID-Bereich verwendet. Die ID eines SavedQuery in der SOAP API kann nicht in der REST API verwendet werden.
Wenn Sie SavedQuery verwenden, können Sie den Bericht in der Benutzeroberfläche zu einem interaktiven Bericht migrieren und eine Zuordnung zwischen den beiden ID-Bereichen erstellen. Weitere Informationen zum Migrieren von Berichten finden Sie unter Berichte zu „Interaktive Berichte“ migrieren.
API-Unterschiede verstehen
Es gibt einige Unterschiede zwischen der SOAP API und der REST API in Bezug auf die Verarbeitung von Berichtsdefinitionen und ‑ergebnissen:
Über die SOAP API wurde den Ergebnissen automatisch eine entsprechende
ID-Dimension hinzugefügt, wenn in einem Bericht nur dieNAMEangefordert wurde. In der REST API müssen Sie die DimensionIDexplizit demReportDefinitionhinzufügen, damit sie in die Ergebnisse aufgenommen wird.In der SOAP API gab es keine expliziten Typen für Messwerte. Die REST API definiert einen Datentyp, der im Enum-Wert
Dimensiondokumentiert ist.ENUM-Dimensionen sind offene Enums. Sie müssen neue und unbekannte Enum-Werte beim Parsen von Ergebnissen verarbeiten.In der SOAP API wurden
DimensionsundDimensionAttributesgetrennt. Die REST API hat ein einheitlichesDimension-Enum, das beide enthält.In der SOAP API gab es kein Limit für die Anzahl der Dimensionen. Für interaktive Berichte gilt sowohl in der Benutzeroberfläche als auch in der API ein Limit von 10 Dimensionen. Dimensionen, die nach demselben ID-Bereich aufgeschlüsselt werden, werden als eine Dimension gezählt. Wenn Sie beispielsweise nur
ORDER_NAME,ORDER_IDundORDER_START_DATEeinbeziehen, wird dies bei der Berechnung des Limits als eine Dimension gezählt.