Usługa zasobów zmienia się

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

Punkty końcowe Mutate

Każdy zasób zmienny ma odpowiadający mu typ usługi i 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:

  • Create (create): nowy obiekt zasobu do utworzenia.
  • Update (update): zmodyfikowany obiekt zasobu wraz z update_mask określającym zmienione pola.
  • Remove (remove): ciąg znaków resource_name zasobu docelowego 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 obiektu CampaignOperation.
  3. Wyślij operację w obiekcie MutateCampaignsRequest do CampaignService.MutateCampaigns.

Ten sam wzorzec obowiązuje we wszystkich usługach związanych z zasobami w interfejsie Google Ads API:

Ten ładunek JSON REST ilustruje żądanie 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 ograniczenia

Większość żądań modyfikacji dotyczących konkretnych zasobów akceptuje powtarzane pole operations, więc pojedyncze żądanie może zawierać wiele operacji dla danego typu zasobu (do 10 000 operacji na żądanie lub 20 000 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 wartość true.

Usługi zasobów indywidualnych mają jednak 2 ważne ograniczenia:

  • Pojedynczy typ zasobu: żądanie wysłane do usługi zasobów może zmieniać tylko zasoby zarządzane przez tę konkretną usługę.
  • Brak tymczasowych identyfikatorów między zasobami: ponieważ wywołanie mutate 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ływać się do niego z zasobu podrzędnego innego typu (np. AdGroup) w tym samym żądaniu. (Tymczasowe identyfikatory odwołujące się do siebie w ramach tego samego typu zasobu są obsługiwane w przypadku drzew hierarchicznych, takich jak grupy informacji o produktach AdGroupCriterion i węzły AssetGroupListingGroupFilter).

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

Różnice między wersjami

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

  • Usługi związane z celami dotyczącymi cyklu życia: cele dotyczące utrzymania klientów są zmieniane we wszystkich obsługiwanych wersjach za pomocą 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ą GoalService.MutateGoals i CampaignGoalConfigService.MutateCampaignGoalConfigs. Zastępuje on pola CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals i CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, które są używane do pozyskiwania nowych klientów w wersjach 23 i 24 oraz akceptują pojedyncze pole operation.