Kontingentoptimierung

Die Kontingentoptimierung ist für alle Anwendungen, die die Display & Video 360 API verwenden, unerlässlich. Durch die Optimierung der Kontingentnutzung wird die Leistung verbessert, da API-Anfragen optimiert werden und Fehler vermieden werden, die beim Überschreiten der festgelegten Ratenbegrenzungen zurückgegeben werden.

Auf dieser Seite finden Sie allgemeine Best Practices und zusätzliche Funktionen in der Display & Video 360 API, mit denen Sie die Inanspruchnahme Ihres Kontingents reduzieren können.

Gleichzeitige Anfragen an verschiedene Werbetreibende stellen

Bei den meisten Methoden in der Display & Video 360 API wird in der URL ein Werbetreibender angegeben. Zusätzlich zum projektweiten Kontingent werden für diese Methoden bei Aufrufen, bei denen derselbe Werbetreibende angegeben wird, strengere Preislimits „pro Werbetreibender und pro Projekt“ erzwungen.

Um die Leistung für dieses Kontingent zu optimieren, beschränken Sie gleichzeitige Anfragen auf solche, bei denen unterschiedliche Werbetreibende angegeben sind.

Parameter pageSize, filter und orderBy verwenden

Verwenden Sie list-Methoden anstelle von get-Methoden, wenn Sie mehrere Ressourcen abrufen. Aufgrund von Einschränkungen bei der Seitengröße können list-Aufrufe aber trotzdem viel Kontingent verbrauchen.

Optimieren Sie alle list-Anfragen, indem Sie den Parameter pageSize auf den maximal zulässigen Wert festlegen. Die Standardseitengröße einer Methode, die verwendet wird, wenn der Parameter nicht festgelegt ist, kann unter dem maximal zulässigen Wert liegen. In diesem Fall sind mehr Anfragen erforderlich, um eine vollständige Liste der Ressourcen abzurufen.

Wenn Sie nur einen Teil der vollständigen Listenantwort abrufen möchten, können Sie die Nutzung des Kontingents mithilfe der optionalen Parameter filter und orderBy optimieren.

Mit dem Parameter filter kannst du die mit dem list-Aufruf abgerufenen Ressourcen auf diejenigen beschränken, deren Eigenschaften bestimmten Ausdrücken entsprechen. Dieser Parameter ist nützlich, wenn Sie Folgendes abrufen möchten:

  • Eine bestimmte Ressource mit einer unbekannten ID, aber bekannten Eigenschaften. Wenn Sie nach einer bestimmten Ressource suchen, können Sie die zurückgegebene Liste nach bekannten Eigenschaften der gewünschten Ressource filtern. Beispiele: Sie können Werbebuchungen nach einem bekannten displayName, Creatives nach dem erwarteten creativeType und Inventarquellen nach dem entsprechenden exchange filtern.
  • Zugeordnete Ressourcen Ressourcen in Display & Video 360 sind oft miteinander verknüpft. Mithilfe von Filtern können Sie die zurückgegebenen Ressourcen auf solche beschränken, die eine bestimmte Beziehung zu einer anderen haben. Beispiele hierfür sind das Abrufen aller Anzeigenaufträge unter einer bestimmten campaignId und aller Creatives, die einer Werbebuchung zugewiesen sind.
  • Nur Ressourcen mit umsetzbaren Properties. Mit der API-Funktion können Sie den Status von Ressourcen ganz einfach prüfen und programmatisch reagieren. Mithilfe von Filtern kannst du mit list-Aufrufen nur Ressourcen abrufen, für die eine Aktion erforderlich ist. Beispiele: Abrufen aller Werbebuchungen, die eine bestimmte ausführbare lineItemWarningMessage enthalten, aller Anzeigenaufträge, die seit einem bestimmten Datum und einer bestimmten Uhrzeit aktualisiert wurden, oder aller Creatives, für die ein fehlgeschlagener approvalStatus vorliegt.

Mit dem Parameter orderBy können Sie die abgerufenen Ressourcen nach bestimmten Properties in aufsteigender oder absteigender Reihenfolge sortieren. Mit orderBy, insbesondere in Kombination mit filter, lässt sich die Anzahl der Seiten begrenzen, die durchsucht werden müssen, bevor eine bestimmte Ressource gefunden wird. Außerdem können Sie damit ganz einfach die Ober- und Untergrenze einer Ressourcenliste abrufen. Wenn Sie beispielsweise nach updateTime sortieren, können Sie schnell die zuletzt aktualisierten Werbebuchungen oder Anzeigenaufträge eines Werbetreibenden finden.

Bulk- und ressourcenweite Funktionen verwenden

Die Display & Video 360 API bietet eine Reihe von Bulk- und ressourcenweiten Funktionen, mit denen zahlreiche Aktionen mit einer einzigen Anfrage ausgeführt werden. Beispiele für diese Art von Funktionen:

  • Bulk-Bearbeitung von Websites, die zu einem einzelnen Kanal gehören Kanälen können Tausende von Websites zugewiesen sein. Anstatt die Websiteliste eines Kanals mit einzelnen create- oder delete-Anfragen zu verwalten, kannst du mit einer einzigen bulkEdit- oder replace-Anfrage mehrere Websites hinzufügen und entfernen oder den gesamten Inhalt eines Kanals ersetzen.
  • Die gesamte Targeting-Suite eines Werbetreibenden verwalten Die Targeting-Suite einer Ressource wird mehreren Targeting-Typen zugewiesen. Mit Targeting-Funktionen auf Ressourcenebene wie listAssignedTargetingOptions und editAssignedTargetingOptions im Dienst advertisers können Sie Targeting-Kriterien für mehrere Targeting-Typen in einer einzigen Anfrage abrufen, erstellen und entfernen. So werden die Kontingentkosten für die Einrichtung der Targeting-Suite eines Werbetreibenden auf eine einzige Anfrage reduziert.
  • Die gleiche Targeting-Einschränkung für mehrere Werbebuchungen festlegen Wenn Sie dieselben Targeting-Änderungen für mehrere Werbebuchungen gleichzeitig vornehmen möchten, können Sie dies mit einer einzigen advertisers.lineItems.bulkEditAssignedTargetingOptions-Anfrage tun.
  • Mehrere Werbebuchungen aktivieren oder pausieren Werbebuchungen müssen nach der Erstellung aktiviert werden, bevor die Anzeigen ausgeliefert werden. Wenn Sie mehrere Werbebuchungen in schneller Folge erstellen, können Sie sie alle mit einer einzigen advertisers.lineItems.bulkUpdate-Anfrage aktivieren. Mit derselben Methode können Sie auch mehrere Werbebuchungen pausieren, um die Auslieferung zu beenden.

Regelmäßig verwendete IDs im Cache speichern und prüfen

Für viele Vorgänge in der Display & Video 360 API sind Ressourcen-IDs erforderlich, die über die API selbst abgerufen werden. Dazu gehören unter anderem IDs für Targeting-Optionen und Google-Zielgruppen-IDs. Damit die IDs nicht bei jeder Verwendung aus der API abgerufen werden müssen, empfehlen wir, sie lokal zu speichern.

Einige Ressourcen können jedoch eingestellt, gelöscht oder anderweitig für die Nutzung deaktiviert werden. Wenn Sie versuchen, die IDs für diese Ressourcen zu verwenden, wird möglicherweise eine Fehlermeldung ausgegeben. Wir empfehlen daher, alle im Cache gespeicherten IDs wöchentlich mit der entsprechenden get- oder gefilterten list-Methode zu prüfen, um sicherzustellen, dass sie noch abgerufen werden können und den erwarteten Status haben.

Exponentiellen Backoff für lang laufende Vorgänge implementieren

Wenn Sie prüfen möchten, ob ein langwieriger Vorgang wie ein SDF-Download abgeschlossen ist, sollten Sie eine exponentielle Backoff-Strategie verwenden, um die Häufigkeit und Gesamtzahl der gesendeten Anfragen zu reduzieren.

Exponentielle Backoffs bilden eine Standard-Fehlerbehandlungsstrategie für Netzwerkanwendungen, bei denen der Client Anfragen über einen immer länger werdenden Zeitraum periodisch wiederholt. Bei richtiger Anwendung erhöht der exponentielle Backoff die Effizienz der Bandbreitennutzung, verringert die Anzahl der Anfragen, die für den Erhalt einer erfolgreichen Antwort erforderlich sind, und maximiert den Durchsatz von Anfragen in Umgebungen mit Gleichzeitigkeit.

Die mit Clientbibliotheken implementierte Strategie für exponentielles Backoff finden Sie in unseren Beispielen für den SDF-Downloadcode. So implementieren Sie einen einfachen exponentiellen Backoff:

  • Stellen Sie eine sdfdownloadtasks.operations.get-Anfrage an die API.
  • Rufe das Vorgangsobjekt ab.
    • Wenn das Feld done nicht „wahr“ ist, sollten Sie die Anfrage noch einmal versuchen.
    • Warten Sie 5 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufe das Vorgangsobjekt ab.
    • Wenn das Feld done nicht „wahr“ ist, sollten Sie die Anfrage noch einmal versuchen.
    • Warten Sie 10 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufe das Vorgangsobjekt ab.
    • Wenn das Feld done nicht „wahr“ ist, sollten Sie die Anfrage noch einmal versuchen.
    • Warten Sie 20 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufe das Vorgangsobjekt ab.
    • Wenn das Feld done nicht „wahr“ ist, sollten Sie die Anfrage noch einmal versuchen.
    • Warten Sie 40 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufe das Vorgangsobjekt ab.
    • Wenn das Feld done nicht „wahr“ ist, sollten Sie die Anfrage noch einmal versuchen.
    • Warten Sie 80 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Fahren Sie mit diesem Muster fort, bis das Abfrageobjekt aktualisiert wurde oder eine maximale Zeitspanne erreicht wurde.