Temporäre IDs verwenden

Eine leistungsstarke Funktion von BatchJobService ist, dass temporäre IDs unterstützt werden.

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

Beachten Sie bei der Verwendung temporärer Ressourcennamen Folgendes:

  • 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 angezeigt werden.
  • Namen temporärer Ressourcen werden nicht in verschiedenen Jobs oder mutate-Anfragen gespeichert. Um auf eine Ressource zu verweisen, die in einem vorherigen Job oder einer vorherigen mutate-Anfrage erstellt wurde, verwenden Sie ihren tatsächlichen Ressourcennamen.
  • Für einen einzelnen Job oder eine einzelne mutate-Anfrage muss für jeden temporären Ressourcennamen eine eindeutige negative Zahl verwendet werden, auch wenn er zu unterschiedlichen Ressourcentypen gehört. Wird eine temporäre ID in einem einzelnen Job oder einer einzelnen mutate-Anfrage wiederverwendet, wird ein Fehler zurückgegeben.

Beispiel

Ein konkreteres Beispiel für die oben genannte Situation wäre, wenn Sie einer einzelnen API-Anfrage eine Kampagne, eine Anzeigengruppe und eine Anzeige hinzufügen möchten. In diesem Fall würden Sie eine Struktur für Ihre Anfrage erstellen, die so aussieht:

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 das für die Kampagne verwendete -1 nicht wiederverwenden können und wir beim Erstellen einer Anzeigengruppenanzeige auf diese Anzeigengruppe verweisen. Die Anzeigengruppe selbst verweist auf den Ressourcennamen, den wir in einem früheren Vorgang für die Kampagne für die Kampagne festgelegt haben. resource_name in ad_group_ad_operation ist hingegen nicht erforderlich, da kein weiterer Vorgang darauf verweist.