Eksperymenty dotyczące optymalizacji komponentów

Eksperymenty dotyczące optymalizacji komponentów testują różne kombinacje komponentów w kampaniach Performance Max, co pozwala porównać skuteczność różnych zestawów komponentów z zestawem podstawowym.

Ten przepływ pracy jest obsługiwany w przypadku ExperimentType.OPTIMIZE_ASSETS.

Konfiguracja

Aby skonfigurować eksperyment z optymalizacją komponentów:

  • Utwórz nowy zasób i eksperyment z grupą kontrolną i kampanią eksperymentalną.
  • Połącz nowy komponent z grupą plików w kampanii eksperymentalnej w ramach jednego żądania modyfikacji.

Wymagania wstępne

Zanim utworzysz eksperyment z optymalizacją komponentów, musisz mieć utworzoną kampanię Performance Max i zasób podstawowy AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}), który służy jako punkt odniesienia dla obu grup eksperymentalnych. W przypadku ADD_ASSETS_TO_ASSETLESS_RETAIL upewnij się, że przed utworzeniem eksperymentu podstawowy AssetGroup ma już co najmniej 1 ustawiony final_urls (aktywny eksperyment z komponentami blokuje możliwość edytowania podstawowego AssetGroup, a łączenie komponentów niestandardowych wymaga final_urls).

Kolejność operacji żądania

Te elementy są współzależne, dlatego musisz używać tymczasowych nazw zasobów, aby odwoływać się do zasobów utworzonych we wcześniejszych operacjach w ramach tego samego żądania.

Operacje w żądaniu muszą być wykonywane w tej kolejności:

  1. Utwórz co najmniej 1 zasób Asset z tymczasowymi nazwami zasobów (np. customers/CUSTOMER_ID/assets/-1). Uwzględnij komponenty testowe oraz nowe komponenty marki BUSINESS_NAME i LOGO, jeśli wskazówki dotyczące marki są włączone w kampanii detalicznej bez komponentów i bez dotychczasowych linków do marki (w takim przypadku połącz te komponenty marki z podstawowym zasobem Campaign za pomocą operacji CampaignAsset natychmiast po wykonaniu kroku 1).
  2. Utwórz Experiment z tymczasową nazwą zasobu (np. customers/CUSTOMER_ID/experiments/-2), polem type ustawionym na OPTIMIZE_ASSETS, polem status ustawionym na ENABLED i polem optimize_assets_experiment.optimize_assets_experiment_subtype ustawionym na wybraną wartość OptimizeAssetsExperimentSubtype (np. COMPARE_ASSETS).
  3. Utwórz 2 zasoby ExperimentArm połączone z tymczasową nazwą zasobu eksperymentu z kroku 2, ustawiając w każdej grupie eksperymentalnej campaigns (na nazwę zasobu kampanii Performance Max), traffic_split (sumując do 100) i asset_groups (ExperimentArm.AssetGroupInfo):

    • Grupa kontrolna (control = true), gdzie asset_groups zawiera AssetGroupInfo z polem asset_group ustawionym na nazwę zasobu podstawowego AssetGroup (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Podczas testowania nowo dodanych komponentów reklamy w porównaniu z podstawową grupą komponentów (lub podczas korzystania z podtypów ADD_ASSETS_TO_ASSETLESS_RETAIL lub ADD_VIDEO_ASSETS_TO_VIDEOLESS) pozostaw pole asset_group_assets w grupie kontrolnej nieustawione. Podczas porównywania 2 różnych zestawów komponentów w ramach COMPARE_ASSETS podaj wpisy AssetGroupAssetInfo grupy kontrolnej (asset i field_type).
    • Kampania eksperymentalna (control = false), gdzie asset_groups zawiera AssetGroupInfo z polem asset_group ustawionym na tę samą nazwę zasobu podstawowego AssetGroup (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) i asset_group_assets (repeated AssetGroupAssetInfo) zawierający listę zasobów Asset i field_type dla kampanii eksperymentalnej, w tym nowo utworzony test Asset (customers/CUSTOMER_ID/assets/-1) z kroku 1. Gdy używasz ADD_ASSETS_TO_ASSETLESS_RETAIL, asset_group_assets w kampanii eksperymentalnej musi spełniać wszystkie minimalne wymagania dotyczące grupy plików (nie podawaj samych komponentów opcjonalnych, takich jak YOUTUBE_VIDEO), a wymagane linki BUSINESS_NAME i LOGO CampaignAsset na poziomie kampanii muszą być obecne lub utworzone w tym samym żądaniu, gdy w kampanii podstawowej są włączone wskazówki dotyczące marki.
  4. Utwórz kolejne zasoby AssetGroupAsset, które łączą komponenty testowe z kroku 1 (customers/CUSTOMER_ID/assets/-1) z podstawowym zasobem AssetGroup używanym w grupach eksperymentalnych.

Java

This example is not yet available in Java; you can take a look at the other languages.
    

C#

This example is not yet available in C#; you can take a look at the other languages.
    

PHP

This example is not yet available in PHP; you can take a look at the other languages.
    

Python

# 1. Create Assets with temporary resource names.
# We create a text asset and an image asset to showcase different types.
asset_operation_1 = create_text_asset_operation(
    client,
    customer_id,
    ASSET_1_TEMP_ID,
    "Fly to Mars!",
)
asset_operation_2 = create_image_asset_operation(
    client,
    customer_id,
    ASSET_2_TEMP_ID,
    "https://gaagl.page.link/Eit5",
    "Mars Landscape View",
)

# 2. Create an Experiment with a temporary resource name.
experiment_operation = client.get_type("MutateOperation")
experiment = experiment_operation.experiment_operation.create
experiment.resource_name = googleads_service.experiment_path(
    customer_id, EXPERIMENT_TEMP_ID
)
experiment.name = f"Interstellar Asset Experiment #{uuid4()}"
experiment.type_ = client.enums.ExperimentTypeEnum.OPTIMIZE_ASSETS
# Set the optimize assets experiment subtype to COMPARE_ASSETS.
experiment.optimize_assets_experiment.optimize_assets_experiment_subtype = (
    client.enums.OptimizeAssetsExperimentSubtypeEnum.COMPARE_ASSETS
)

# 3. Create two ExperimentArm resources.
treatment_assets = [
    (ASSET_1_TEMP_ID, client.enums.AssetFieldTypeEnum.HEADLINE),
    (ASSET_2_TEMP_ID, client.enums.AssetFieldTypeEnum.MARKETING_IMAGE),
]
arm_operations = create_arms_operations(
    client,
    customer_id,
    EXPERIMENT_TEMP_ID,
    campaign_resource_name,
    asset_group_id,
    treatment_assets,
)

# 4. Create AssetGroupAssets linking the assets to the asset group.
asset_group_asset_operation_1 = create_asset_group_asset_operation(
    client,
    customer_id,
    asset_group_id,
    ASSET_1_TEMP_ID,
    client.enums.AssetFieldTypeEnum.HEADLINE,
)
asset_group_asset_operation_2 = create_asset_group_asset_operation(
    client,
    customer_id,
    asset_group_id,
    ASSET_2_TEMP_ID,
    client.enums.AssetFieldTypeEnum.MARKETING_IMAGE,
)

# Send all operations in a single Mutate request.
# The operations must be in this specific order.
mutate_operations = [
    asset_operation_1,
    asset_operation_2,
    experiment_operation,
    *arm_operations,
    asset_group_asset_operation_1,
    asset_group_asset_operation_2,
]

response = googleads_service.mutate(
    customer_id=customer_id,
    mutate_operations=mutate_operations,
)
      

Ruby

# 1. Create Assets with temporary resource names.
# We create a text asset and an image asset to showcase different types.
asset_operation_1 = create_text_asset_operation(
  client,
  customer_id,
  asset_1_temp_id,
  "Fly to Mars!",
)
asset_operation_2 = create_image_asset_operation(
  client,
  customer_id,
  asset_2_temp_id,
  "https://gaagl.page.link/Eit5",
  "Mars Landscape View",
)

# 2. Create an Experiment with a temporary resource name.
experiment_operation = client.operation.mutate do |m|
  m.experiment_operation = client.operation.create_resource.experiment do |e|
    e.resource_name = client.path.experiment(customer_id, experiment_temp_id)
    e.name = "Interstellar Asset Experiment #{(Time.new.to_f * 1000).to_i}"
    e.type = :OPTIMIZE_ASSETS
    # Set the optimize assets experiment subtype to COMPARE_ASSETS.
    e.optimize_assets_experiment = client.resource.optimize_assets_experiment_info do |oae|
      oae.optimize_assets_experiment_subtype = :COMPARE_ASSETS
    end
  end
end

# 3. Create two ExperimentArm resources.
treatment_assets = [
  [asset_1_temp_id, :HEADLINE],
  [asset_2_temp_id, :MARKETING_IMAGE],
]
arm_operations = create_arms_operations(
  client,
  customer_id,
  experiment_temp_id,
  campaign_resource_name,
  asset_group_id,
  treatment_assets,
)

# 4. Create AssetGroupAssets linking the assets to the asset group.
asset_group_asset_operation_1 = create_asset_group_asset_operation(
  client,
  customer_id,
  asset_group_id,
  asset_1_temp_id,
  :HEADLINE,
)
asset_group_asset_operation_2 = create_asset_group_asset_operation(
  client,
  customer_id,
  asset_group_id,
  asset_2_temp_id,
  :MARKETING_IMAGE,
)

# Send all operations in a single Mutate request.
# The operations must be in this specific order.
mutate_operations = [
  asset_operation_1,
  asset_operation_2,
  experiment_operation,
  *arm_operations,
  asset_group_asset_operation_1,
  asset_group_asset_operation_2,
]

response = client.service.google_ads.mutate(
  customer_id: customer_id,
  mutate_operations: mutate_operations,
)
      

Perl

This example is not yet available in Perl; you can take a look at the other languages.
    

curl

Raport z eksperymentu

Zapoznaj się z przewodnikiem po raportach, aby dowiedzieć się, jak wysyłać zapytania do zasobu experiment i porównywać dane między grupami komponentów kontrolnych i eksperymentalnych.

Zakończenie programu

Po ocenie wyników możesz zakończyć eksperyment lub przekształcić go w kampanię za pomocą ExperimentService.

  • Zakończ: jeśli nie jesteś zadowolony(-a) z wyników kampanii eksperymentalnej, użyj opcji EndExperiment. Jest to operacja synchroniczna.
  • Przejdź na korzystanie: jeśli wolisz skuteczność grupy plików z kampanii eksperymentalnej, użyj opcji GraduateExperiment. W ramach tego procesu pierwotna kampania podstawowa powiązana z grupą kontrolną zostaje wstrzymana, a kampania z grupy eksperymentalnej zostaje przekształcona w nową, niezależną kampanię. Jest to operacja synchroniczna.