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 ExperimentType.OPTIMIZE_ASSETS.

Configuração

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

  • Crie um novo 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 AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}) que sirva como valor de referência para os dois grupos experimentais.

Ordem da operação de solicitação

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

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

  1. Crie um ou mais Asset recursos com nomes de recursos temporários (como customers/CUSTOMER_ID/assets/-1). Esses são seus recursos de teste.
  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 de experimento temporário da etapa 2, definindo campaigns (para o nome do recurso da campanha Performance Max), traffic_split (somando 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 de anúncio de base AssetGroup (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Ao testar recursos de anúncio 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 não definido no grupo de controle. Ao comparar dois conjuntos de recursos de anúncio 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 de 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 Asset de teste recém-criado (customers/CUSTOMER_ID/assets/-1) da etapa 1.
  4. Crie recursos AssetGroupAsset vinculando os recursos de teste da etapa 1 (customers/CUSTOMER_ID/assets/-1) ao AssetGroup de 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

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

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.

Concluir 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.
  • Concluir: se você preferir a performance do grupo de recursos 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.