Temporäre IDs verwenden

Eine leistungsstarke Funktion von BatchJobService ist, dass die Verwendung temporärer IDs unterstützt wird.

Geben Sie dazu den resource_name der neuen Ressource an, um eine negative ID zu verwenden. Wenn Sie beispielsweise eine Kampagne erstellen und ihren Ressourcennamen als customers/<YOUR_CUSTOMER_ID>/campaigns/-1 angeben, können Sie beim Erstellen der Anzeigengruppe in einem späteren Vorgang mit diesem Ressourcennamen darauf verweisen. Die von Ihnen angegebene -1 wird dann automatisch durch die tatsächliche ID der erstellten Kampagne ersetzt.

Bei der Verwendung temporärer Ressourcennamen ist Folgendes zu beachten:

  • Ein temporärer Ressourcenname kann erst verwendet werden, nachdem er in einer Ressource definiert wurde. Im folgenden Beispiel müsste der Anzeigengruppenvorgang nach dem Kampagnenvorgang in der Liste der Vorgänge aufgeführt werden.
  • Temporäre Ressourcennamen werden nicht für andere Jobs oder mutate-Anfragen gespeichert. Um auf eine Ressource zu verweisen, die in einem vorherigen Job oder einer früheren mutate-Anfrage erstellt wurde, verwenden Sie den tatsächlichen Ressourcennamen.
  • Bei einem einzelnen Auftrags oder einer mutate-Anfrage muss jeder temporäre Ressourcenname eine eindeutige negative Zahl verwenden, auch wenn sie von unterschiedlichen Ressourcentypen stammen. Wenn eine temporäre ID in einem einzelnen Auftrag oder in einer mutate-Anfrage wiederverwendet wird, wird ein Fehler zurückgegeben.

Beispiel

Um ein konkreteres Beispiel für die oben genannte Situation zu geben, gehen wir davon aus, dass Sie einer einzelnen API-Anfrage eine Kampagne, eine Anzeigengruppe und eine Anzeige hinzufügen möchten. Die Erstellung einer Struktur für Ihre Anfrage sieht dann so aus:

mutate_operations: [
  {
    campaign_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
        ...
      }
    }
  },
  {
    ad_group_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
        campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
        ...
      }
    }
  },
  {
    ad_group_ad_operation: {
      create: {
        ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
        ...
      }
    }
  },
]

Für die Anzeigengruppe wird eine neue temporäre ID verwendet, da wir die -1, die wir für die Kampagne verwendet haben, nicht wiederverwenden können. Außerdem wird beim Erstellen einer Anzeige in der Anzeigengruppe auf diese Anzeigengruppe verwiesen. Die Anzeigengruppe selbst verweist auf den Ressourcennamen, den wir in einem früheren Vorgang in der Anfrage für die Kampagne festgelegt haben. resource_name in ad_group_ad_operation ist dagegen nicht erforderlich, da kein weiterer Vorgang auf sie verweist.