การทดสอบการเพิ่มประสิทธิภาพชิ้นงาน

การทดสอบการเพิ่มประสิทธิภาพชิ้นงานจะทดสอบการผสมผสานชิ้นงานแบบต่างๆ ภายในแคมเปญ Performance Max ซึ่งช่วยให้คุณเปรียบเทียบประสิทธิภาพของชิ้นงานชุดต่างๆ กับชุดพื้นฐานได้

เวิร์กโฟลว์นี้ใช้ได้กับ ExperimentType.OPTIMIZE_ASSETS

ตั้งค่า

วิธีสร้างการทดสอบการเพิ่มประสิทธิภาพชิ้นงาน

  • สร้างชิ้นงานใหม่และการทดสอบที่มีกลุ่มควบคุมและกลุ่มทดสอบ
  • ลิงก์ชิ้นงานใหม่กับกลุ่มชิ้นงานของกลุ่มทดสอบภายในคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์รายการเดียว

ข้อกำหนดเบื้องต้น

ก่อนสร้างการทดสอบการเพิ่มประสิทธิภาพชิ้นงาน คุณต้องมีแคมเปญ Performance Max และทรัพยากร AssetGroup พื้นฐาน (customers/{customer_id}/assetGroups/{asset_group_id}) ที่ใช้เป็นเกณฑ์พื้นฐานสําหรับกลุ่มทดสอบทั้ง 2 กลุ่ม สำหรับ ADD_ASSETS_TO_ASSETLESS_RETAIL โปรดตรวจสอบว่า AssetGroup พื้นฐานมี final_urls อย่างน้อย 1 รายการก่อนสร้างการทดสอบ (การทดสอบชิ้นงานที่ใช้งานอยู่จะหยุดการแก้ไข AssetGroup พื้นฐาน และการลิงก์ชิ้นงานที่กำหนดเองต้องใช้ final_urls)

ลำดับการดำเนินการตามคำขอ

เนื่องจากเอนทิตีเหล่านี้ต้องพึ่งพากัน คุณจึงต้องใช้ชื่อทรัพยากรชั่วคราวเพื่ออ้างอิงทรัพยากรที่สร้างขึ้นในการดำเนินการก่อนหน้าภายในคำขอเดียวกัน

การดำเนินการในคำขอต้องเป็นไปตามลำดับต่อไปนี้

  1. สร้างทรัพยากร Asset อย่างน้อย 1 รายการที่มีชื่อทรัพยากรชั่วคราว (เช่น 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 รายการที่ลิงก์กับชื่อทรัพยากรการทดสอบชั่วคราวจากขั้นตอนที่ 2 โดยตั้งค่า campaigns (เป็นชื่อทรัพยากรแคมเปญ Performance Max), 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 ไม่ตั้งค่าในกลุ่มควบคุม เมื่อเปรียบเทียบชุดชิ้นงานที่แตกต่างกัน 2 ชุดใน 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 ในกระบวนการนี้ แคมเปญพื้นฐานเดิมที่เชื่อมโยงกับกลุ่มควบคุมจะหยุดชั่วคราว และกลุ่มทดสอบจะเปลี่ยนเป็นแคมเปญใหม่ที่เป็นอิสระ การดำเนินการนี้เป็นการดำเนินการแบบซิงโครนัส