Tests d'optimisation des composants

Les tests d'optimisation des composants permettent de tester différentes combinaisons de composants dans les campagnes Performance Max. Vous pouvez ainsi comparer les performances de différents ensembles de composants à celles d'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 bras de traitement et de contrôle.
  • Associez le nouveau composant au groupe de composants du bras de traitement dans une seule requête mutate.

Prérequis

Avant de créer un test 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 servira de référence pour les deux bras du 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 dans les opérations précédentes de la même requête.

Les opérations de votre requête doivent être dans l'ordre suivant :

  1. Créez une ou plusieurs ressources Asset avec des noms de ressources temporaires (tels que customers/CUSTOMER_ID/assets/-1). Il s'agit de vos composants de test.
  2. Créez un Experiment avec un nom de ressource temporaire (par exemple, customers/CUSTOMER_ID/experiments/-2), type défini sur OPTIMIZE_ASSETS, status défini sur ENABLED et optimize_assets_experiment.optimize_assets_experiment_subtype défini sur le OptimizeAssetsExperimentSubtype sélectionné (par exemple, COMPARE_ASSETS).
  3. Créez deux ressources ExperimentArm associées au nom de ressource de test temporaire de l'étape 2, en définissant campaigns (sur le nom de ressource de la campagne Performance Max), traffic_split (en additionnant 100) et asset_groups (ExperimentArm.AssetGroupInfo) sur chaque bras :

    • Un groupe de contrôle (control = true) où asset_groups contient un AssetGroupInfo avec asset_group défini sur le nom de ressource du AssetGroup de base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Lorsque vous testez des composants nouvellement ajoutés par rapport au groupe de composants de référence (ou lorsque vous utilisez les sous-types ADD_ASSETS_TO_ASSETLESS_RETAIL ou ADD_VIDEO_ASSETS_TO_VIDEOLESS), laissez asset_group_assets non défini sur le groupe de contrôle. Lorsque vous comparez deux ensembles de composants distincts sous COMPARE_ASSETS, listez les entrées AssetGroupAssetInfo du groupe de contrôle (asset et field_type).
    • Un groupe de traitement (control = false) où asset_groups contient un AssetGroupInfo avec asset_group défini sur le même nom de ressource AssetGroup de base (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) et asset_group_assets (repeated AssetGroupAssetInfo) listant les ressources Asset et les field_type pour le groupe de traitement, y compris la ressource Asset de test nouvellement créée (customers/CUSTOMER_ID/assets/-1) à l'étape 1.
  4. Créez des ressources AssetGroupAsset associant les composants de test de l'étape 1 (customers/CUSTOMER_ID/assets/-1) au AssetGroup de base utilisé dans les bras 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

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

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.

Terminer ou arrêter

Après avoir évalué les résultats, vous pouvez mettre fin au test ou le faire passer à l'étape suivante à l'aide de ExperimentService.

  • Mettre fin : si vous n'êtes pas satisfait des résultats du groupe de traitement, utilisez EndExperiment. Il s'agit d'une opération synchrone.
  • Terminer le test : si vous préférez les performances du groupe de ressources du bras de traitement, utilisez GraduateExperiment. Dans le cadre de ce processus, 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.