4.4 Zarządzanie kampanią

Wstęp


Ważne jest, aby umożliwić sprzedawcom wprowadzanie zmian w kampanii po jej utworzeniu. Oto najważniejsze aspekty, które należy zmienić:

  • Budżet
  • Stan (wstrzymywanie, włączanie, usuwanie)
  • Kierowanie geograficzne (zalecane, ale opcjonalne)
  • wszystkie pozostałe pola uwzględnione w interfejsie tworzenia kampanii;

Wskazówki dotyczące UX


Wyświetl listę kampanii na stronie Przegląd i na osobnej stronie w ramach raportowania skuteczności kampanii. Zezwalaj użytkownikom na wstrzymywanie, usuwanie i edytowanie kampanii.

pmax_campaign

Edytowanie kampanii powinno umożliwić sprzedawcy zmianę tych samych pól, które wprowadził w danych podczas tworzenia kampanii. Oto przykład:

edit_pmax

Wskazówki techniczne


Po utworzeniu kampanii detalicznej Performance Max możesz zmienić te ustawienia kampanii:

  • Nazwa kampanii
  • Budżet kampanii
  • Stan kampanii
  • Kryteria kierowania kampanii

Szczegółowe informacje o wprowadzaniu mutacji w zasobach znajdziesz w przewodniku dla programistów. Możesz dokonać mutacji konkretnego zasobu za pomocą ujawnionego punktu końcowego usługi, aby dokonać mutacji tego zasobu (na przykład CampaignService.MutateCampaigns), lub dokonać mutacji w wielu różnych zasobach za pomocą funkcji zbiorczego mutacji dostępnej przy użyciu punktu końcowego GoogleAdsService.Mutate.

Jeśli to możliwe, zalecamy wprowadzanie mutacji zbiorczych, aby zmniejszyć liczbę działań wymaganych do zaktualizowania kampanii. Pamiętaj o tym podczas projektowania architektury z wykorzystaniem punktu końcowego GoogleAdsService.Mutate, a nie poszczególnych punktów końcowych zasobów. Umożliwi to również łatwiejsze rozszerzanie funkcjonalności w przyszłości.

W późniejszych przykładach zakładamy, że masz już odpowiednie identyfikatory zapisane w lokalnej bazie danych.

Nazwa kampanii

Aby zaktualizować nazwę kampanii, musisz zmodyfikować pole Campaign.name.

Nie może zawierać żadnych znaków wartości null (punkt kodowy 0x0), przejścia do nowej linii NL (punkt kodowy 0xA) ani znaków powrotu karetki (punkt kodowy 0xD).

Budżet kampanii

Uznajemy, że sprawdzoną metodą jest zaktualizowanie istniejącego budżetu zamiast zastępowania go nowym. Dzięki temu wydatki kampanii będą zgodne z oczekiwaniami i nie doprowadzą do nadmiernej liczby wyświetleń.

Należy tylko zaktualizować wartość budżetu i nie wprowadzać mutacji w pozostałych polach, aby zwiększać wartość DZIENNYCH wydatków.

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

Stan kampanii

Aby zaktualizować stan kampanii (włączyć, wstrzymać lub usunąć), musisz zmodyfikować pole Campaign.status i przypisać odpowiedni stan z wyliczenia CampaignStatus.

Przykład zmiany stanu kampanii znajdziesz w przykładowym kodzie aktualizacji kampanii.

Kryteria kampanii

Aktualizując kryteria kampanii, wystarczy mieć możliwość aktualizowania kryteriów widocznych dla użytkownika. Jest to minimalne wymagania dotyczące kierowania geograficznego, a potencjalnie kierowania na język. Przykład aktualizowania kryterium kampanii znajdziesz w przykładowym kodzie aktualizacji modyfikatora stawek kryterium kampanii.

Aby zaktualizować kryteria kierowania geograficznego, zmień CampaignCriterion.location na wartość nowej stałej kierowania geograficznego.

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

Aby zaktualizować kryteria kierowania na język, musisz zaktualizować wartość wartości CampaignCriterion.language nową stałą językową.

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation