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ń
Ponieważ pole operations w żądaniu modyfikacji jest powtarzane, pojedyncze żądanie może zawierać wiele operacji (do 10 tys. operacji na żądanie) dotyczących tego typu zasobu. Domyślnie wszystkie operacje w żądaniu są wykonywane niepodzielnie, chyba że ustawisz parametr partial_failure 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 zasobów i odwołań do innych zasobów: operacje w wywołaniu mutacji dotyczącym konkretnego zasobu są przetwarzane niezależnie. Nie możesz przypisywać tymczasowych identyfikatorów ujemnych (np.
customers/CUSTOMER_ID/campaigns/-1) ani odwoływać się do nowo utworzonych elementów z innych operacji w ramach tego samego żądania.
Jeśli w jednym żądaniu musisz zmieniać wiele typów zasobów lub odwoływać się do tymczasowych nazw zasobów w operacjach zależnych, użyj GoogleAdsService.Mutate.
Różnice w poszczególnych wersjach
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: w wersji 25 i nowszych wszystkie cele związane z cyklem życia, w tym pozyskiwanie nowych klientów (
new_customer_acquisition_goal_settings), utrzymanie klientów (retention_goal_settings) i utrzymanie lojalności (loyalty_retention_goal_settings), są modyfikowane za pomocą funkcjiGoalService.MutateGoalsiCampaignGoalConfigService.MutateCampaignGoalConfigsz użyciem standardowego powtarzanego polaoperations. Zastępuje to parametryCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsiCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(które są używane do pozyskiwania nowych klientów w wersji 24 i starszych oraz akceptują pojedyncze poleoperation). - Pola daty i godziny kampanii: podczas tworzenia lub aktualizowania
Campaignw wersji 23 i nowszych używane są polastart_date_timeiend_date_time(yyyy-MM-dd HH:mm:ss), które zastępują polastart_dateiend_datezawierające tylko datę, używane w wersji 22. - Zmienność atestu treści syntetycznych: chociaż pola
Asset.synthetic_content_infoiAd.synthetic_content_infowystępują w schemacie wersji 22 i nowszych, polasynthetic_content_info.advertiser_attestation.statusisynthetic_content_info.advertiser_attestation.sourcemożna zmieniać tylko w wersji 23 i nowszych (polesystem_attestationzawsze ma wartośćOUTPUT_ONLY). Próba zmiany pól podrzędnychadvertiser_attestationw wersji 22 zwraca błąd pola niezmiennego ("The field attempted to be mutated is immutable"lub"Field cannot be set").