Temporäre IDs verwenden

Ein leistungsstarkes Feature von BatchJobService ist die Unterstützung temporärer IDs.

Dazu geben Sie für die neue Ressource resource_name eine negative ID an. Angenommen, Sie erstellen eine Kampagne und geben ihren Ressourcennamen als customers/<YOUR_CUSTOMER_ID>/campaigns/-1 an. Wenn Sie die Anzeigengruppe in einem späteren Vorgang erstellen, können Sie 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 muss der Anzeigengruppenvorgang nach dem Kampagnenvorgang in der Liste der Vorgänge stehen.
  • Temporäre Ressourcennamen werden nicht job- oder anfrageübergreifend gespeichert. Wenn Sie auf eine Ressource verweisen möchten, die in einem vorherigen Job oder einer vorherigen Mutate-Anfrage erstellt wurde, verwenden Sie den tatsächlichen Ressourcennamen.
  • Bei einem einzelnen Job oder einer einzelnen Mutate-Anfrage muss für jeden temporären Ressourcennamen eine eindeutige negative Zahl verwendet werden, auch wenn die Namen von verschiedenen Ressourcentypen stammen. Wenn eine temporäre ID in einem einzelnen Job oder einer einzelnen Mutate-Anfrage wiederverwendet wird, wird ein Fehler zurückgegeben.

Beispiel

Angenommen, Sie möchten eine Kampagne, eine Anzeigengruppe und eine Anzeige in einer einzigen API-Anfrage hinzufügen. Sie würden eine Struktur für Ihre Anfrage erstellen, die der folgenden ähnelt:

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 die -1 der Kampagne nicht wiederverwendet werden kann. Wir verweisen auch auf diese Anzeigengruppe, wenn wir eine Anzeigengruppenanzeige erstellen. Die Anzeigengruppe selbst verweist auf den Ressourcennamen, den wir für die Kampagne in einem früheren Vorgang in der Anfrage festgelegt haben. resource_name in ad_group_ad_operation ist nicht erforderlich, da kein weiterer Vorgang darauf verweist.