Video: Sehen Sie sich den Vortrag zu Diensten und Ressourcen vom Workshop 2019 an.
In diesem Leitfaden werden die Hauptkomponenten der Google Ads API vorgestellt. Die Google Ads API besteht aus Ressourcen und Diensten. Eine Ressource stellt eine Google Ads-Entität dar, während Dienste Google Ads-Entitäten abrufen und bearbeiten.
Objekthierarchie
Ein Google Ads-Konto kann als Hierarchie von Objekten betrachtet werden.
Die oberste Ressource eines Kontos ist der Kunde.
Jedes Konto enthält mindestens eine aktive Kampagne.
Jede
Campaign
enthält eine oder mehrere Anzeigengruppen, mit denen Sie Ihre Anzeigen in logischen Sammlungen gruppieren können.Jeder
AdGroup
enthält eine oder mehrere Anzeigengruppenanzeigen. EinAdGroupAd
steht für eine von Ihnen geschaltete Anzeige.
Sie können eine oder mehrere AdGroupCriterion
oder CampaignCriterion
an eine Anzeigengruppe oder Kampagne anhängen. Diese stellen Kriterien dar, die festlegen, wie Anzeigen ausgelöst werden.
Es gibt viele Kriteriumstypen wie Keywords, Altersgruppen und Standorte. Kriterien, die auf Kampagnenebene definiert sind, wirken sich auf alle anderen Ressourcen in der Kampagne aus. Sie können auch kampagnenweite Budgets und Zeiträume festlegen.
Schließlich können Sie Erweiterungen auf Konto-, Kampagnen- oder Anzeigengruppenebene anhängen. Mit Erweiterungen können Sie Ihren Anzeigen zusätzliche Informationen wie Telefonnummer, Adresse oder Angebote hinzufügen.
Ressourcen
Die Ressourcen sind die Entitäten in Ihrem Google Ads-Konto.
Campaign
und AdGroup
sind zwei Beispiele für Ressourcen.
Objekt-IDs
Jedes Objekt in Google Ads wird anhand seiner eigenen ID identifiziert. Einige dieser IDs sind für alle Google Ads-Konten global eindeutig, andere nur innerhalb eines begrenzten Gültigkeitsbereichs.
Objekt-ID | Eindeutigkeit | Global eindeutig? |
---|---|---|
Budget-ID | Global | Ja |
Kampagnen-ID | Global | Ja |
Anzeigengruppen-ID | Global | Ja |
Anzeigen-ID | Anzeigengruppe | Nein, aber (AdGroupId , AdId )-Paar ist global eindeutig |
ID des Anzeigengruppenkriteriums | Anzeigengruppe | Nein, aber (AdGroupId , CriterionId )-Paar ist global eindeutig |
ID des Kampagnenkriteriums | Kampagne | Nein, aber (CampaignId , CriterionId )-Paar ist global eindeutig |
Anzeigenerweiterungen | Kampagne | Nein, aber (CampaignId , AdExtensionId )-Paar ist global eindeutig |
Feed-ID | Global | Ja |
ID des Feedelements | Global | Ja |
Feed-Attribut-ID | Feed | Nein |
Feed-Mapping-ID | Global | Ja |
Label-ID | Global | Ja |
UID-ID | Global | Ja |
Diese ID-Regeln können hilfreich sein, wenn Sie lokalen Speicher für Ihre Google Ads-Objekte entwerfen.
Einige Objekte können für mehrere Entitätstypen verwendet werden. In solchen Fällen enthält das Objekt das Feld type
, das seinen Inhalt beschreibt. AdGroupAd
kann beispielsweise auf eine Textanzeige, eine Hotelanzeige, eine lokale Anzeige usw. verweisen. Auf diesen Wert kann über das Feld AdGroupAd.ad.type
zugegriffen werden. Es wird ein Wert in der Aufzählung AdType
zurückgegeben.
Ressourcennamen
Jede Ressource wird eindeutig durch einen resource_name
-String identifiziert, der die Ressource und ihre übergeordneten Elemente zu einem Pfad verkettet. Die Ressourcennamen der Kampagne haben beispielsweise das folgende Format:
customers/customer_id/campaigns/campaign_id
Für eine Kampagne mit der ID 987654
im Google Ads-Konto mit der Kundennummer 1234567
würde resource_name
so lauten:
customers/1234567/campaigns/987654
Dienste
Mit Diensten können Sie Ihre Google Ads-Entitäten abrufen und ändern. Es gibt drei Arten von Diensten: Änderung, Objekt- und Statistikabruf sowie Dienste zum Metadatenabruf.
Objekte ändern (mutieren)
Diese Dienste ändern Instanzen eines verknüpften Ressourcentyps mit einer mutate
-Anfrage. Außerdem stellen sie eine get
-Anfrage bereit, mit der eine einzelne Ressourceninstanz abgerufen wird, um die Struktur einer Ressource zu untersuchen.
Beispiele für Dienste:
CustomerService
zum Ändern von Kunden.CampaignService
zum Ändern von KampagnenAdGroupService
zum Ändern von Anzeigengruppen
Jede mutate
-Anfrage muss die entsprechenden operation
-Objekte enthalten. Für die Methode CampaignService.MutateCampaigns
wird beispielsweise eine oder mehrere Instanzen von CampaignOperation
erwartet. Ausführliche Informationen zu Vorgängen finden Sie unter Objekte ändern und prüfen.
Gleichzeitige Änderungen
Ein Google Ads-Objekt kann nicht gleichzeitig von mehr als einer Quelle geändert werden. Dies kann zu Fehlern führen, wenn mehrere Nutzer dasselbe Objekt mit Ihrer App aktualisieren oder wenn Sie Google Ads-Objekte mithilfe von mehreren Threads parallel mutieren. Dazu gehört die Aktualisierung des Objekts über mehrere Threads derselben Anwendung oder unterschiedlicher Anwendungen (z. B. Ihre Anwendung und eine gleichzeitige Google Ads-UI-Sitzung).
Die API bietet keine Möglichkeit, ein Objekt vor der Aktualisierung zu sperren. Wenn zwei Quellen versuchen, ein Objekt gleichzeitig zu ändern, gibt die API den Fehler DatabaseError.CONCURRENT_MODIFICATION_ERROR
aus.
Asynchrone vs. synchrone Mutate
Die Google Ads API-Mutate-Methoden sind synchron. API-Aufrufe geben erst nach dem Ändern von Objekten eine Antwort zurück. Sie müssen daher für jede Anfrage auf die Antwort warten. Dieser Ansatz lässt sich zwar relativ einfach programmieren, er könnte sich aber negativ auf das Load-Balancing und die Verschwendung von Ressourcen auswirken, wenn Prozesse auf den Abschluss von Aufrufen warten müssen.
Ein alternativer Ansatz besteht darin, Objekte asynchron mithilfe von MutateService zu ändern, der Batches von Vorgängen an mehreren Diensten ausführt, ohne auf den Abschluss des Vorgangs zu warten. Sobald ein Batchjob gesendet wurde, führen die Google Ads API-Server asynchrone Vorgänge aus. Dadurch werden Prozesse für andere Vorgänge frei. Sie können den Jobstatus regelmäßig überprüfen, um den Abschluss abzuschließen.
Im Leitfaden zur Batch-Verarbeitung finden Sie weitere Informationen zur asynchronen Verarbeitung.
mutate-Validierung
Die meisten Mutate-Anfragen können validiert werden, ohne den Aufruf tatsächlich mit echten Daten auszuführen. Sie können die Anfrage auf fehlende Parameter und falsche Feldwerte testen, ohne den Vorgang tatsächlich auszuführen.
Wenn Sie dieses Feature verwenden möchten, legen Sie das optionale boolesche Feld validate_only
der Anfrage auf true
fest. Die Anfrage wird dann vollständig validiert, als ob sie ausgeführt würde. Die endgültige Ausführung wird jedoch übersprungen. Wenn keine Fehler gefunden werden, wird eine leere Antwort zurückgegeben. Wenn die Validierung fehlschlägt, geben Fehlermeldungen in der Antwort die Fehlerpunkte an.
validate_only
ist besonders hilfreich, um Anzeigen auf häufige Richtlinienverstöße zu testen. Anzeigen werden automatisch abgelehnt, wenn sie gegen Richtlinien wie bestimmte Wörter, Satzzeichen, Großschreibung oder Länge verstoßen. Eine einzelne fehlerhafte Anzeige kann dazu führen, dass ein gesamter Batch fehlschlägt. Wenn Sie eine neue Anzeige innerhalb einer validate_only
-Anfrage testen, können Sie entsprechende Verstöße erkennen. Im Codebeispiel zur Behandlung von Fehlern bei Richtlinienverstößen wird dies veranschaulicht.
Objekte und Leistungsstatistiken abrufen
GoogleAdsService
ist der einzelne, einheitliche Dienst zum Abrufen von Objekten und Leistungsstatistiken.
Alle Search
- und SearchStream
-Anfragen für GoogleAdsService
erfordern eine Abfrage, die die abzufragende Ressource, die abzurufenden Ressourcenattribute und Leistungsmesswerte, die für das Filtern der Anfrage zu verwendenden Prädikate sowie die Segmente zum weiteren Aufschlüsseln der Leistungsstatistiken angibt. Weitere Informationen zum Abfrageformat finden Sie im Google Ads-Leitfaden zur Abfragesprache.
Metadaten abrufen
GoogleAdsFieldService
ruft Metadaten zu Ressourcen in der Google Ads API ab, z. B. die verfügbaren Attribute für eine Ressource und ihren Datentyp.
Dieser Dienst bietet Informationen, die Sie beim Erstellen einer Abfrage an GoogleAdsService
benötigen. Der Einfachheit halber sind die von GoogleAdsFieldService
zurückgegebenen Informationen auch in der Referenzdokumentation zu Feldern verfügbar.