Les tests d'optimisation des composants testent différentes combinaisons de composants dans les campagnes Performance Max. Vous pouvez ainsi comparer les performances de différents ensembles de composants par rapport à un ensemble de base.
Ce workflow est compatible avec ExperimentType.OPTIMIZE_ASSETS.
Configuration
Pour configurer un test d'optimisation des composants :
- Créez un composant et un test avec des groupes de contrôle et de traitement.
- Associez le nouveau composant au groupe de composants du groupe de traitement dans une seule requête de modification.
Prérequis
Avant de créer une expérience d'optimisation des composants, vous devez disposer d'une campagne Performance Max existante et d'une ressource AssetGroup de base (customers/{customer_id}/assetGroups/{asset_group_id}) qui sert de référence pour les deux groupes de test.
Ordre des opérations de requête
Étant donné que ces entités sont interdépendantes, vous devez utiliser des noms de ressources temporaires pour faire référence aux ressources créées lors d'opérations précédentes dans la même requête.
Les opérations de votre requête doivent être effectuées dans l'ordre suivant :
- Créez une ou plusieurs ressources
Assetavec des noms de ressources temporaires (tels quecustomers/CUSTOMER_ID/assets/-1). Il s'agit de vos éléments de test. - Créez un
Experimentavec un nom de ressource temporaire (par exemple,customers/CUSTOMER_ID/experiments/-2),typedéfini surOPTIMIZE_ASSETS,statusdéfini surENABLEDetoptimize_assets_experiment.optimize_assets_experiment_subtypedéfini sur leOptimizeAssetsExperimentSubtypesélectionné (par exemple,COMPARE_ASSETS). Créez deux ressources
ExperimentArmassociées au nom de ressource du test temporaire de l'étape 2, en définissantcampaigns(sur le nom de ressource de la campagne Performance Max),traffic_split(somme de100) etasset_groups(ExperimentArm.AssetGroupInfo) sur chaque bras :- Un groupe de contrôle (
control = true) oùasset_groupscontient unAssetGroupInfoavecasset_groupdéfini sur le nom de ressource duAssetGroupde base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Lorsque vous testez des composants d'annonce récemment ajoutés par rapport au groupe de composants de référence (ou lorsque vous utilisez les sous-typesADD_ASSETS_TO_ASSETLESS_RETAILouADD_VIDEO_ASSETS_TO_VIDEOLESS), laissezasset_group_assetsnon défini sur le groupe de contrôle. Lorsque vous comparez deux ensembles de composants distincts sousCOMPARE_ASSETS, listez les entréesAssetGroupAssetInfodu groupe de contrôle (assetetfield_type). - Un groupe de traitement (
control = false) oùasset_groupscontient unAssetGroupInfoavecasset_groupdéfini sur le même nom de ressourceAssetGroupde base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) etasset_group_assets(repeatedAssetGroupAssetInfo) listant les ressourcesAssetet lesfield_typedu groupe de traitement, y compris leAssetde test nouvellement créé (customers/CUSTOMER_ID/assets/-1) à l'étape 1.
- Un groupe de contrôle (
Créez des ressources
AssetGroupAssetassociant les composants de test de l'étape 1 (customers/CUSTOMER_ID/assets/-1) à la ressourceAssetGroupde base utilisée dans les groupes de test.
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
Rapport sur le test
Consultez le guide sur les rapports pour interroger la ressource experiment et comparer les métriques entre les groupes de composants de contrôle et de traitement.
Changer de compte ou arrêter
Après avoir évalué les résultats, vous pouvez mettre fin au test ou le valider à l'aide de ExperimentService.
- Terminer : si vous n'êtes pas satisfait des résultats du groupe de traitement, utilisez
EndExperiment. Il s'agit d'une opération synchrone. - Promouvoir : si vous préférez les performances du groupe de composants du groupe de traitement, utilisez
GraduateExperiment. Dans ce cas, la campagne de base d'origine associée au groupe de contrôle est mise en veille, et le groupe de traitement est converti en une nouvelle campagne indépendante. Il s'agit d'une opération synchrone.