Experimentos de otimização de recursos

Os experimentos de otimização de recursos testam diferentes combinações de recursos em campanhas Performance Max, o que permite comparar a performance de diferentes conjuntos de recursos com um conjunto de base.

Esse fluxo de trabalho é compatível com o ExperimentType.OPTIMIZE_ASSETS.

Configuração

Para configurar um experimento de otimização de recursos:

  • Crie um recurso e um experimento com grupos de controle e de tratamento.
  • Vincule o novo recurso ao grupo de recursos do grupo de tratamento em uma única solicitação de mutação.

Pré-requisitos

Antes de criar um experimento de otimização de recursos, você precisa ter uma campanha Performance Max e um recurso base AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}) que sirva como referência para os dois grupos experimentais. Para ADD_ASSETS_TO_ASSETLESS_RETAIL, verifique se o AssetGroup de base já tem pelo menos um final_urls definido antes de criar o experimento. Um experimento de recurso ativo congela as edições no AssetGroup de base, e a vinculação de recursos personalizados requer final_urls.

Solicitar ordem de operação

Como essas entidades são interdependentes, é necessário usar nomes de recursos temporários para se referir aos recursos criados em operações anteriores na mesma solicitação.

As operações na solicitação precisam estar na seguinte ordem:

  1. Crie um ou mais recursos Asset com nomes temporários (como customers/CUSTOMER_ID/assets/-1). Inclua seus recursos de teste, bem como as novas propriedades da marca BUSINESS_NAME e LOGO se as diretrizes da marca estiverem ativadas em uma campanha de varejo sem recursos e sem links de marca (nesse caso, vincule essas propriedades da marca ao Campaign de base com operações CampaignAsset imediatamente após a etapa 1).
  2. Crie um Experiment com um nome de recurso temporário (por exemplo, customers/CUSTOMER_ID/experiments/-2), type definido como OPTIMIZE_ASSETS, status definido como ENABLED e optimize_assets_experiment.optimize_assets_experiment_subtype definido como o OptimizeAssetsExperimentSubtype selecionado (por exemplo, COMPARE_ASSETS).
  3. Crie dois recursos ExperimentArm vinculados ao nome do recurso do experimento temporário da etapa 2, definindo campaigns (como o nome do recurso da campanha Performance Max), traffic_split (somando até 100) e asset_groups (ExperimentArm.AssetGroupInfo) em cada grupo:

    • Um grupo de controle (control = true) em que asset_groups contém um AssetGroupInfo com asset_group definido como o nome do recurso do AssetGroup de base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Ao testar recursos recém-adicionados em relação ao grupo de recursos de referência (ou ao usar os subtipos ADD_ASSETS_TO_ASSETLESS_RETAIL ou ADD_VIDEO_ASSETS_TO_VIDEOLESS), deixe asset_group_assets sem definição no grupo de controle. Ao comparar dois conjuntos de recursos distintos em COMPARE_ASSETS, liste as entradas AssetGroupAssetInfo do grupo de controle (asset e field_type).
    • Um grupo de tratamento (control = false) em que asset_groups contém um AssetGroupInfo com asset_group definido como o mesmo nome de recurso AssetGroup base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) e asset_group_assets (repeated AssetGroupAssetInfo) listando os recursos Asset e field_types para o grupo de tratamento, incluindo o teste Asset recém-criado (customers/CUSTOMER_ID/assets/-1) da etapa 1. Ao usar ADD_ASSETS_TO_ASSETLESS_RETAIL, asset_group_assets no grupo de tratamento precisa atender a todos os requisitos mínimos do grupo de recursos (não liste recursos opcionais, como YOUTUBE_VIDEO, sozinhos), e os links BUSINESS_NAME e LOGO CampaignAsset obrigatórios no nível da campanha precisam estar presentes ou ser criados na mesma solicitação quando as diretrizes de marca estão ativadas na campanha de base.
  4. Crie recursos AssetGroupAsset consecutivos vinculando os recursos de teste da etapa 1 (customers/CUSTOMER_ID/assets/-1) ao AssetGroup base usado nos grupos experimentais.

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

Gerar relatórios sobre o experimento

Consulte o guia de relatórios para consultar o recurso experiment e comparar as métricas entre os grupos de recursos de controle e de tratamento.

Atualizar ou encerrar

Depois de avaliar os resultados, você pode encerrar ou concluir o experimento usando ExperimentService.

  • Encerrar: se você não estiver satisfeito com os resultados do grupo de tratamento, use EndExperiment. Essa é uma operação síncrona.
  • Graduar: se você preferir a performance do grupo de recursos do grupo de tratamento, use GraduateExperiment. Como parte desse processo, a campanha de base original associada ao grupo de controle é pausada, e o grupo de tratamento é convertido em uma nova campanha independente. Essa é uma operação síncrona.