ניסויים לאופטימיזציה של נכסים

ניסויים לאופטימיזציה של נכסים בודקים שילובים שונים של נכסים בקמפיינים למיקסום הביצועים, וכך מאפשרים לכם להשוות בין הביצועים של קבוצות שונות של נכסים לבין קבוצת בסיס.

תהליך העבודה הזה נתמך ב-ExperimentType.OPTIMIZE_ASSETS.

הגדרה

כדי להגדיר ניסוי לאופטימיזציה של נכסים:

  • יוצרים נכס חדש וניסוי עם קבוצת בקרה וקבוצת ניסוי.
  • מקשרים את הנכס החדש לקבוצת הנכסים של קבוצת הניסוי בבקשה אחת לשינוי נתונים.

דרישות מוקדמות

לפני שיוצרים ניסוי באופטימיזציה של נכסים, צריך שיהיה קמפיין קיים למיקסום הביצועים ומשאב בסיס 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_types של קבוצת הניסוי, כולל 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. כחלק מהתהליך הזה, קמפיין הבסיס המקורי שמשויך לקבוצת הבקרה מושהה, וקבוצת הניסוי הופכת לקמפיין חדש ועצמאי. זו פעולה סינכרונית.