Eksperimen dalam kampanye

Eksperimen dalam kampanye digunakan untuk menguji fitur tertentu dalam satu kampanye. Tidak seperti eksperimen yang dikelola sistem yang membagi traffic antara kampanye kontrol dan perlakuan, eksperimen dalam kampanye membagi traffic dalam kampanye, berdasarkan apakah fitur diaktifkan atau tidak.

Alur kerja ini didukung untuk nilai ExperimentType berikut:

  • ADOPT_AI_MAX
  • ADOPT_BROAD_MATCH_KEYWORDS

Penyiapan

  1. Tentukan Experiment, dengan memberikan jenis eksperimen, kontrol ExperimentArm, dan perlakuan ExperimentArm. Setiap grup harus merujuk ke kampanye yang sama.
  2. Aktifkan fitur pengujian untuk eksperimen dengan menggunakan mask kolom. Hal ini tidak diperlukan untuk ADOPT_BROAD_MATCH_KEYWORDS; sebagai gantinya, setelan kampanye pencocokan luas akan diaktifkan secara otomatis saat pembuatan eksperimen.
  3. Kirim permintaan GoogleAdsService.Mutate yang mencakup operasi mutasi untuk membuat eksperimen dan grup eksperimen, serta (jika berlaku) untuk mengaktifkan fitur pengujian.

Setelah disiapkan, traffic akan dibagi dalam kampanye sehingga 50% traffic akan diekspos ke fitur yang diaktifkan (grup perlakuan) dan 50% tidak (grup kontrol).

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

# Create the experiment resource name using a temporary ID.
experiment_resource_name = googleads_service.experiment_path(
    customer_id, "-1"
)

# Create the experiment.
experiment_operation = client.get_type("MutateOperation")
experiment = experiment_operation.experiment_operation.create
experiment.resource_name = experiment_resource_name
experiment.name = f"ADOPT_AI_MAX Experiment #{uuid4()}"
experiment.type_ = client.enums.ExperimentTypeEnum.ADOPT_AI_MAX
experiment.status = client.enums.ExperimentStatusEnum.SETUP

# Create the control arm. Both arms in an intra-campaign experiment
# reference the same base campaign.
control_arm_operation = client.get_type("MutateOperation")
control_arm = control_arm_operation.experiment_arm_operation.create
control_arm.experiment = experiment_resource_name
control_arm.name = "Control Arm"
control_arm.control = True
control_arm.traffic_split = 50
control_arm.campaigns.append(
    googleads_service.campaign_path(customer_id, campaign_id)
)

# Create the treatment arm.
treatment_arm_operation = client.get_type("MutateOperation")
treatment_arm = treatment_arm_operation.experiment_arm_operation.create
treatment_arm.experiment = experiment_resource_name
treatment_arm.name = "Treatment Arm"
treatment_arm.control = False
treatment_arm.traffic_split = 50
treatment_arm.campaigns.append(
    googleads_service.campaign_path(customer_id, campaign_id)
)

# Create a campaign operation with an update mask to enable AI Max and
# configure asset automation settings.
campaign_operation = client.get_type("MutateOperation")
campaign = campaign_operation.campaign_operation.update
campaign.resource_name = googleads_service.campaign_path(
    customer_id, campaign_id
)
campaign.ai_max_setting.enable_ai_max = True

for asset_automation_type_enum in [
    client.enums.AssetAutomationTypeEnum.TEXT_ASSET_AUTOMATION,
    client.enums.AssetAutomationTypeEnum.FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION,
]:
    asset_automation_setting = client.get_type(
        "Campaign"
    ).AssetAutomationSetting()
    asset_automation_setting.asset_automation_type = (
        asset_automation_type_enum
    )
    asset_automation_setting.asset_automation_status = (
        client.enums.AssetAutomationStatusEnum.OPTED_IN
    )
    campaign.asset_automation_settings.append(asset_automation_setting)

client.copy_from(
    campaign_operation.campaign_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign._pb),
)

# Send all mutate operations in a single Mutate request.
mutate_operations = [
    experiment_operation,
    control_arm_operation,
    treatment_arm_operation,
    campaign_operation,
]

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

Melaporkan eksperimen

Karena traffic kontrol dan perlakuan digabungkan dalam satu kampanye, Anda harus menggunakan pelaporan eksperimen langsung untuk membandingkan metrik antara grup kontrol dan perlakuan. Pelaporan tingkat kampanye standar hanya menampilkan metrik gabungan untuk seluruh kampanye dan tidak dapat membedakan kedua grup.

Kueri GAQL berikut dapat digunakan untuk mengambil statistik klik untuk eksperimen dalam kampanye ADOPT_AI_MAX.

SELECT
  experiment.resource_name,
  experiment.name,
  metrics.clicks,
  metrics.control_clicks,
  metrics.clicks_point_estimate,
  metrics.clicks_p_value
FROM experiment
WHERE experiment.type = 'ADOPT_AI_MAX'

Mempromosikan atau mengakhiri eksperimen

Setelah mengevaluasi hasilnya, Anda dapat mengakhiri atau mempromosikan eksperimen menggunakan ExperimentService.

  • Akhiri: Jika Anda tidak puas dengan hasilnya, gunakan EndExperiment. Fitur ini akan dinonaktifkan, dan kampanye akan kembali menayangkan semua traffic tanpa fitur eksperimental. Ini adalah operasi sinkron.
  • Promosikan: Jika Anda puas dengan hasilnya, gunakan PromoteExperiment. Tindakan ini menerapkan perubahan eksperimental sebagai status permanen baru kampanye. Ini adalah operasi asinkron; lihat Error asinkron untuk mengetahui detailnya.

Operasi graduate tidak didukung untuk eksperimen dalam kampanye karena tidak ada kampanye perlakuan terpisah yang dapat diluluskan.