Usługa zasobów zmienia się

Korzystanie z usługi dedykowanej zasobowi to najbardziej bezpośredni sposób tworzenia, aktualizowania lub usuwania elementów jednego typu zasobu w interfejsie Google Ads API.

Punkty końcowe mutacji

Każdy zasób podlegający zmianom ma odpowiednią usługę i typ operacji. Aby zmienić zasób za pomocą dedykowanej usługi, wypełnij jedno z tych pól w operacji i wyślij je do punktu końcowego zmiany usługi:

  • Utwórz (create): nowy obiekt zasobu do utworzenia.
  • Aktualizacja (update): zmodyfikowany obiekt zasobu wraz z update_mask określającym zmienione pola.
  • Usuń (remove): ciąg znaków resource_name docelowego zasobu do usunięcia.

Aby na przykład utworzyć nowy Campaign, wykonaj te czynności:

  1. Utwórz obiekt Campaign z wybranymi atrybutami.
  2. Przypisz go do pola create w CampaignOperation.
  3. Wyślij operację w MutateCampaignsRequest do CampaignService.MutateCampaigns.

Ten sam wzorzec dotyczy wszystkich usług związanych z zasobami w interfejsie Google Ads API:

Ten ładunek JSON REST ilustruje żądanie wysłane do CampaignService.MutateCampaigns:

{
  "customerId": "CUSTOMER_ID",
  "operations": [
    {
      "create": {
        "name": "Interplanetary Cruise #1",
        "advertisingChannelType": "SEARCH",
        "status": "PAUSED",
        "manualCpc": {},
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
        "containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
      }
    }
  ],
  "partialFailure": false,
  "validateOnly": false
}

Wiele operacji i ograniczeń

Większość żądań zmiany dotyczących konkretnych zasobów akceptuje powtarzające się pole operations, więc jedno żądanie może zawierać wiele operacji dotyczących danego typu zasobu (do 10 tys. operacji na żądanie lub 20 tys. w przypadku AdGroupCriterionService.MutateAdGroupCriteria; CustomerService.MutateCustomer akceptuje pojedyncze pole operation). Domyślnie wszystkie operacje w żądaniu są wykonywane niepodzielnie, chyba że usługa obsługuje partial_failure i ustawisz tę opcję na true.

Usługi dotyczące poszczególnych zasobów mają jednak 2 ważne ograniczenia:

  • Pojedynczy typ zasobu: żądanie do usługi zasobów może zmieniać tylko zasoby zarządzane przez tę konkretną usługę.
  • Brak tymczasowych identyfikatorów obejmujących wiele zasobów: ponieważ wywołanie mutacji dotyczące konkretnego zasobu akceptuje tylko 1 typ zasobu, nie możesz przypisać tymczasowego ujemnego identyfikatora do zasobu nadrzędnego (np. customers/CUSTOMER_ID/campaigns/-1) i odwołać się do niego z zasobu podrzędnego innego typu (np. AdGroup) w tym samym żądaniu. (Odwołania do tymczasowych identyfikatorów w ramach tego samego typu zasobu są obsługiwane w przypadku drzew hierarchicznych, takich jak AdGroupCriterion grupy reklam i AssetGroupListingGroupFilter węzły).

Jeśli musisz zmieniać wiele typów zasobów w jednym żądaniu lub odwoływać się do tymczasowych nazw zasobów w różnych typach zasobów, użyj GoogleAdsService.Mutate.

Różnice w poszczególnych wersjach

Podczas modyfikowania zasobów pamiętaj o tej różnicy między obsługiwanymi wersjami interfejsu Google Ads API:

  • Usługi związane z celami dotyczącymi cyklu życia klienta: cele dotyczące utrzymania klientów są modyfikowane we wszystkich obsługiwanych wersjach za pomocą funkcji GoalService.MutateGoals (retention_goal_settings) i CampaignGoalConfigService.MutateCampaignGoalConfigs (campaign_retention_settings) przy użyciu standardowego powtarzanego pola operations. W wersji 25 i nowszych cele „Pozyskiwanie nowych klientów” (new_customer_acquisition_goal_settings / campaign_new_customer_acquisition_settings) i „Utrzymanie lojalności” (loyalty_retention_goal_settings / campaign_loyalty_retention_settings) są też modyfikowane za pomocą funkcji GoalService.MutateGoals i CampaignGoalConfigService.MutateCampaignGoalConfigs. Zastępuje ona parametry CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals i CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, które są używane w przypadku pozyskiwania nowych klientów w wersjach 23 i 24 i akceptują pojedyncze pole operation.