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.
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:
- Crie um ou mais recursos
Assetcom nomes temporários (comocustomers/CUSTOMER_ID/assets/-1). Esses são seus recursos de teste. - Crie um
Experimentcom um nome de recurso temporário (por exemplo,customers/CUSTOMER_ID/experiments/-2),typedefinido comoOPTIMIZE_ASSETS,statusdefinido comoENABLEDeoptimize_assets_experiment.optimize_assets_experiment_subtypedefinido como oOptimizeAssetsExperimentSubtypeselecionado (por exemplo,COMPARE_ASSETS). Crie dois recursos
ExperimentArmvinculados ao nome do recurso do experimento temporário da etapa 2, definindocampaigns(como o nome do recurso da campanha Performance Max),traffic_split(somando até100) easset_groups(ExperimentArm.AssetGroupInfo) em cada grupo:- Um grupo de controle (
control = true) em queasset_groupscontém umAssetGroupInfocomasset_groupdefinido como o nome do recurso doAssetGroupde 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 subtiposADD_ASSETS_TO_ASSETLESS_RETAILouADD_VIDEO_ASSETS_TO_VIDEOLESS), deixeasset_group_assetssem definição no grupo de controle. Ao comparar dois conjuntos de recursos distintos emCOMPARE_ASSETS, liste as entradasAssetGroupAssetInfodo grupo de controle (assetefield_type). - Um grupo de tratamento (
control = false) em queasset_groupscontém umAssetGroupInfocomasset_groupdefinido como o mesmo nome de recursoAssetGroupbase (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) easset_group_assets(repeatedAssetGroupAssetInfo) listando os recursosAssetefield_types para o grupo de tratamento, incluindo o testeAssetrecém-criado (customers/CUSTOMER_ID/assets/-1) da etapa 1.
- Um grupo de controle (
Crie recursos
AssetGroupAssetvinculando os recursos de teste da etapa 1 (customers/CUSTOMER_ID/assets/-1) aoAssetGroupbase 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.