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 zupdate_maskokreślającym zmienione pola. - Remove (
remove): ciąg znakówresource_namezasobu docelowego do usunięcia.
Aby na przykład utworzyć nowy Campaign, wykonaj te czynności:
- Utwórz obiekt
Campaignz wybranymi atrybutami. - Przypisz go do pola
createobiektuCampaignOperation. - Wyślij operację w obiekcie
MutateCampaignsRequestdoCampaignService.MutateCampaigns.
Ten sam wzorzec obowiązuje we wszystkich usługach związanych z zasobami w interfejsie Google Ads API:
AdGroup: przekazujeAdGroupOperationdoAdGroupService.MutateAdGroups.CampaignCriterion: przekazujeCampaignCriterionOperationdoCampaignCriterionService.MutateCampaignCriteria.
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 produktachAdGroupCriterioni węzłyAssetGroupListingGroupFilter).
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) 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ąGoalService.MutateGoalsiCampaignGoalConfigService.MutateCampaignGoalConfigs. Zastępuje on polaCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsiCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, które są używane do pozyskiwania nowych klientów w wersjach 23 i 24 oraz akceptują pojedyncze poleoperation.