Эксперименты по оптимизации объектов

Эксперименты по оптимизации объектов позволяют тестировать разные комбинации объектов в кампаниях с максимальной эффективностью и сравнивать их эффективность с базовым набором.

Этот рабочий процесс поддерживается для ExperimentType.OPTIMIZE_ASSETS.

Настройка

Чтобы настроить эксперимент по оптимизации объектов, выполните следующие действия:

  • Создайте новый объект и эксперимент с контрольной и экспериментальной группами.
  • Свяжите новый объект с группой объектов экспериментальной группы в рамках одного запроса mutate.

Требования

Прежде чем создавать эксперимент по оптимизации объектов, у вас должна быть кампания с максимальной эффективностью и базовый ресурс AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}), который служит контрольной группой для обеих групп эксперимента. Для ADD_ASSETS_TO_ASSETLESS_RETAIL убедитесь, что в базовой AssetGroup уже есть хотя бы один набор final_urls, прежде чем создавать эксперимент (активный эксперимент с объектами блокирует изменения в базовой AssetGroup, а для связывания пользовательских объектов требуется final_urls).

Порядок выполнения операций запроса

Поскольку эти объекты взаимозависимы, вам необходимо использовать временные названия ресурсов, чтобы ссылаться на ресурсы, созданные в предыдущих операциях в рамках одного запроса.

Операции в запросе должны выполняться в следующем порядке:

  1. Создайте один или несколько ресурсов Asset с временными названиями (например, customers/CUSTOMER_ID/assets/-1). Добавьте тестовые объекты, а также новые объекты бренда BUSINESS_NAME и LOGO, если правила фирменного оформления включены в кампании для розничной торговли без объектов и существующих ссылок бренда (в этом случае свяжите эти объекты бренда с базовым ресурсом Campaign с помощью операций CampaignAsset сразу после шага 1).
  2. Создайте объект Experiment с временным названием ресурса (например, customers/CUSTOMER_ID/experiments/-2), задайте для type значение OPTIMIZE_ASSETS, для status – значение ENABLED, а для optimize_assets_experiment.optimize_assets_experiment_subtype – выбранный объект OptimizeAssetsExperimentSubtype (например, COMPARE_ASSETS).
  3. Создайте два ресурса ExperimentArm, связанных с временным названием ресурса эксперимента из шага 2, задав campaigns (название ресурса кампании с максимальной эффективностью), traffic_split (в сумме 100) и asset_groups (ExperimentArm.AssetGroupInfo) для каждой группы:

    • Контрольная группа (control = true), где asset_groups содержит AssetGroupInfo с asset_group, для которого задано название ресурса базовой AssetGroup (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). При тестировании новых объектов по сравнению с базовой группой объектов (или при использовании подтипов ADD_ASSETS_TO_ASSETLESS_RETAIL или ADD_VIDEO_ASSETS_TO_VIDEOLESS) оставьте asset_group_assets незаданным в контрольной группе. При сравнении двух разных наборов объектов в COMPARE_ASSETS перечислите записи AssetGroupAssetInfo контрольной группы (asset и field_type).
    • Экспериментальная группа (control = false), где asset_groups содержит AssetGroupInfo с asset_group, для которого задано то же название базового ресурса AssetGroup (customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID), и asset_group_assets (repeated AssetGroupAssetInfo), в котором перечислены ресурсы Asset и field_type для экспериментальной группы, включая только что созданную тестовую кампанию Asset (customers/CUSTOMER_ID/assets/-1) из шага 1. При использовании ADD_ASSETS_TO_ASSETLESS_RETAIL asset_group_assets в экспериментальной группе должны соответствовать всем минимальным требованиям к группе объектов (не указывайте только необязательные объекты, такие как YOUTUBE_VIDEO), а обязательные ссылки BUSINESS_NAME и LOGO CampaignAsset на уровне кампании должны присутствовать или быть созданы в том же запросе, если в исходной кампании включены правила фирменного оформления.
  4. Создайте последовательные ресурсы AssetGroupAsset, связывающие тестовые объекты из шага 1 (customers/CUSTOMER_ID/assets/-1) с базовым объектом AssetGroup, используемым в группах эксперимента.

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

Отчет об эксперименте

В руководстве по отчетам рассказывается, как запрашивать ресурс experiment и сравнивать показатели контрольной и экспериментальной групп объектов.

Завершение или окончание

Проанализировав результаты, вы можете завершить эксперимент или применить его настройки к исходной кампании с помощью ExperimentService.

  • Завершить. Если вас не устраивают результаты экспериментальной группы, нажмите EndExperiment. Это синхронная операция.
  • Завершить. Если вас устраивает эффективность группы объектов в экспериментальной группе, нажмите GraduateExperiment. При этом исходная кампания, связанная с контрольной группой, приостанавливается, а экспериментальная группа преобразуется в новую независимую кампанию. Это синхронная операция.