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 zupdate_maskokreślającym zmienione pola. - Usuń (
remove): ciąg znakówresource_namedocelowego zasobu do usunięcia.
Aby na przykład utworzyć nowy Campaign, wykonaj te czynności:
- Utwórz obiekt
Campaignz wybranymi atrybutami. - Przypisz go do pola
createwCampaignOperation. - Wyślij operację w
MutateCampaignsRequestdoCampaignService.MutateCampaigns.
Ten sam wzorzec dotyczy wszystkich usług związanych z zasobami w interfejsie Google Ads API:
AdGroup: przekażAdGroupOperationdoAdGroupService.MutateAdGroups.CampaignCriterion: przekażCampaignCriterionOperationdoCampaignCriterionService.MutateCampaignCriteria.
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 jakAdGroupCriteriongrupy reklam iAssetGroupListingGroupFilterwę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) iCampaignGoalConfigService.MutateCampaignGoalConfigs(campaign_retention_settings) przy użyciu standardowego powtarzanego polaoperations. 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ą funkcjiGoalService.MutateGoalsiCampaignGoalConfigService.MutateCampaignGoalConfigs. Zastępuje ona parametryCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsiCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, które są używane w przypadku pozyskiwania nowych klientów w wersjach 23 i 24 i akceptują pojedyncze poleoperation.