Kontingentoptimierung

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

Auf dieser Seite werden allgemeine Best Practices und ergänzende Funktionen der Display & Video 360 API beschrieben, mit denen Sie Ihre Kontingentnutzung reduzieren können.

Gleichzeitige Anfragen an verschiedene Werbetreibende senden

Bei den meisten Methoden in der Display & Video 360 API wird ein Werbetreibender in der URL angegeben. Wenn bei Aufrufen derselbe Werbetreibende angegeben wird, gelten für diese Methoden zusätzlich zum projektweiten Kontingent strengere Ratenbegrenzungen pro Werbetreibendem und Projekt.

Zur Optimierung dieses Kontingents sollten Sie gleichzeitige Anfragen auf Nutzer beschränken, die andere Werbetreibende angeben.

Die Parameter filter und orderBy verwenden

Verwenden Sie beim Abrufen mehrerer Ressourcen list-Methoden anstelle von get-Methoden. list-Aufrufe können aufgrund von Limits für die Seitengröße jedoch dennoch viel Kontingent verbrauchen. Wenn Sie nur einen Teil der vollständigen Listenantwort abrufen müssen, können Sie die Kontingentnutzung optimieren, indem Sie die optionalen Parameter filter und orderBy nutzen.

Mit dem Parameter filter können Sie die vom list-Aufruf abgerufenen Ressourcen auf diejenigen beschränken, deren Attribute die angegebenen Ausdrücke einhalten. Dieser Parameter ist nützlich, wenn Sie versuchen, Folgendes abzurufen:

  • Eine bestimmte Ressource mit unbekannter ID, aber bekannten Attributen. Wenn Sie nach einer bestimmten Ressource suchen, können Sie die zurückgegebene Liste nach bekannten Attributen der gewünschten Ressource filtern. Beispiele hierfür sind das Filtern von Werbebuchungen nach einem bekannten displayName, Creatives nach dem erwarteten creativeType und Inventarquellen nach den relevanten exchange.
  • Verknüpfte Ressourcen: Ressourcen in Display & Video 360 sind häufig miteinander verknüpft. Sie können Filter verwenden, um die zurückgegebenen Ressourcen auf diejenigen zu beschränken, die eine bestimmte Beziehung zu einer anderen haben. Beispiele hierfür sind das Abrufen aller Anzeigenaufträge unter einer bestimmten campaignId und alle Creatives, die einer Werbebuchung zugewiesen sind.
  • Nur Ressourcen mit umsetzbaren Attributen. Mit den API-Funktionen können Sie den Status von Ressourcen ganz einfach prüfen und programmatisch reagieren. Mithilfe von Filtern können Sie list-Aufrufe dazu verwenden, nur Ressourcen abzurufen, wenn eine Aktion erforderlich ist. Beispiele hierfür sind das Abrufen aller Werbebuchungen mit einer bestimmten umsetzbaren lineItemWarningMessage, alle Anzeigenaufträge, die seit einem bestimmten Datum aktualisiert wurden, oder alle Creatives, bei denen ein fehlgeschlagener approvalStatus-Fehler vorliegt.

Mit dem Parameter orderBy können Sie die abgerufenen Ressourcen nach bestimmten Attributen aufsteigend oder absteigend sortieren. orderBy kann insbesondere zusammen mit filter verwendet werden, um die Anzahl der Seiten zu begrenzen, die durchlaufen werden müssen, bevor eine bestimmte Ressource gefunden wird. Außerdem können Sie damit auf einfache Weise die Ober- und Untergrenzen einer Ressourcenliste abrufen. Wenn Sie beispielsweise nach updateTime sortieren, finden Sie schnell die zuletzt aktualisierten Werbebuchungen oder Anzeigenaufträge eines Werbetreibenden.

Bulk- und ressourcenweite Funktionen verwenden

Die Display & Video 360 API bietet eine Reihe von Bulk- und ressourcenweiten Funktionen, mit denen mehrere Aktionen mit einer einzigen Anfrage ausgeführt werden. Zu diesen Funktionen gehören beispielsweise:

  • Bulk-Bearbeitung von Websites, die zu einem einzelnen Kanal gehören Channels können Tausende von Websites zugewiesen werden. 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 die gesamten Inhalte eines Kanals ersetzen.
  • Verwaltung der gesamten Targeting-Suite eines Werbetreibenden: Die Targeting-Suite einer Ressource wird mehreren Targeting-Typen zugewiesen. Mit Targeting-Funktionen auf Ressourcenebene wie listAssignedTargetingOptions und editAssignedTargetingOptions im advertisers-Dienst können Sie Targeting für mehrere Targeting-Typen in einer einzigen Anfrage abrufen, erstellen und entfernen. Dadurch sinken die Kontingentkosten, wenn die Targeting-Suite eines Werbetreibenden auf eine einzelne Anfrage festgelegt wird.
  • Dieselbe Targeting-Einschränkung für mehrere Werbebuchungen festlegen. Falls Sie die Targeting-Änderungen für mehrere Werbebuchungen gleichzeitig vornehmen möchten, können Sie dazu eine einzige advertisers.lineItems.bulkEditAssignedTargetingOptions-Anfrage verwenden.
  • Aktivieren oder Pausieren mehrerer Werbebuchungen Werbebuchungen müssen nach der Erstellung aktiviert werden, bevor sie ausgeliefert werden können. Wenn Sie mehrere Werbebuchungen schnell hintereinander erstellen, können Sie alle mit einer einzigen advertisers.lineItems.bulkUpdate-Anfrage aktivieren. Dieselbe Methode kann verwendet werden, um mehrere Werbebuchungen zu pausieren, um ihre Auslieferung zu stoppen.

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

Bei vielen Vorgängen in der Display & Video 360 API müssen Ressourcen-IDs verwendet werden, die über die API selbst abgerufen werden, darunter Targeting-Option-IDs und Google-Zielgruppen-IDs. Damit die IDs nicht bei jeder Verwendung aus der API abgerufen werden, sollten Sie diese IDs lokal speichern.

Einige Ressourcen können jedoch verworfen, gelöscht oder anderweitig nicht mehr zur Verfügung gestellt werden. Wenn Sie versuchen, die IDs für diese Ressourcen zu verwenden, wird möglicherweise ein Fehler zurückgegeben. Daher empfehlen wir, alle im Cache gespeicherten IDs wöchentlich mit der entsprechenden get- oder gefilterten list-Methode zu prüfen, um sicherzustellen, dass die IDs noch abgerufen werden können und den erwarteten Status haben.

Exponentiellen Backoff für lang andauernde Vorgänge implementieren

Verwenden Sie beim Abfragen eine exponentielle Backoff-Strategie, um die Häufigkeit und die Gesamtzahl der gesendeten Anfragen zu reduzieren, um festzustellen, ob ein Vorgang mit langer Ausführungszeit, z. B. eine SDF-Downloadaufgabe, abgeschlossen ist.

Der exponentielle Backoff ist eine standardmäßige Fehlerbehandlungsstrategie für Netzwerkanwendungen, bei der der Client Anfragen regelmäßig über einen immer längeren Zeitraum wiederholt. Bei richtiger Anwendung erhöht der exponentielle Backoff die Effizienz der Bandbreitennutzung, verringert die Anzahl der Anfragen, die für eine erfolgreiche Antwort erforderlich sind, und maximiert den Durchsatz von Anfragen in gleichzeitigen Umgebungen.

Die mit Clientbibliotheken implementierte exponentielle Backoff-Strategie finden Sie in den Codebeispielen zum Herunterladen von SDFs. Der Ablauf zur Implementierung eines einfachen exponentiellen Backoffs sieht so aus:

  • Stellen Sie eine sdfdownloadtasks.operations.get-Anfrage an die API.
  • Rufen Sie das Vorgangsobjekt ab.
    • Wenn das Feld done nicht wahr ist, bedeutet das, dass Sie die Anfrage wiederholen sollten.
    • Warten Sie 5 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufen Sie das Vorgangsobjekt ab.
    • Wenn das Feld done nicht wahr ist, bedeutet das, dass Sie die Anfrage wiederholen sollten.
    • Warten Sie 10 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufen Sie das Vorgangsobjekt ab.
    • Wenn das Feld done nicht wahr ist, bedeutet das, dass Sie die Anfrage wiederholen sollten.
    • Warten Sie 20 Sekunden + eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufen Sie das Vorgangsobjekt ab.
    • Wenn das Feld done nicht wahr ist, bedeutet das, dass Sie die Anfrage wiederholen sollten.
    • Warten Sie 40 Sekunden und eine zufällige Anzahl von Millisekunden und wiederholen Sie die Anfrage.
  • Rufen Sie das Vorgangsobjekt ab.
    • Wenn das Feld done nicht wahr ist, bedeutet das, dass Sie die Anfrage wiederholen sollten.
    • Warten Sie 80 Sekunden und 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 verstrichene Zeit erreicht ist.