ऐसेट ऑप्टिमाइज़ेशन एक्सपेरिमेंट

ऐसेट ऑप्टिमाइज़ेशन एक्सपेरिमेंट, परफ़ॉर्मेंस मैक्स कैंपेन में ऐसेट के अलग-अलग कॉम्बिनेशन की जांच करते हैं. इससे, ऐसेट के अलग-अलग सेट की परफ़ॉर्मेंस की तुलना, बेस सेट से की जा सकती है.

यह वर्कफ़्लो ExperimentType.OPTIMIZE_ASSETS के लिए उपलब्ध है.

सेटअप

ऐसेट ऑप्टिमाइज़ेशन एक्सपेरिमेंट सेट अप करने के लिए:

  • नई ऐसेट बनाएं. साथ ही, कंट्रोल और ट्रीटमेंट ग्रुप के साथ एक्सपेरिमेंट बनाएं.
  • बदलाव के एक ही अनुरोध में, नई ऐसेट को ट्रीटमेंट ग्रुप के ऐसेट ग्रुप से लिंक करें.

ज़रूरी शर्तें

ऐसेट ऑप्टिमाइज़ेशन एक्सपेरिमेंट बनाने से पहले, आपके पास एक मौजूदा परफ़ॉर्मेंस मैक्स कैंपेन और एक बेस AssetGroup रिसॉर्स (customers/{customer_id}/assetGroups/{asset_group_id}) होना चाहिए. यह रिसॉर्स, दोनों एक्सपेरिमेंट ग्रुप के लिए बेसलाइन के तौर पर काम करता है. ADD_ASSETS_TO_ASSETLESS_RETAIL के लिए, पक्का करें कि एक्सपेरिमेंट बनाने से पहले, बेस AssetGroup में कम से कम एक final_urls सेट हो. ऐसा इसलिए, क्योंकि चालू ऐसेट एक्सपेरिमेंट, बेस AssetGroup में बदलावों को फ़्रीज़ कर देता है. साथ ही, कस्टम ऐसेट को लिंक करने के लिए final_urls की ज़रूरत होती है.

अनुरोध की गई कार्रवाई का क्रम

ये इकाइयां एक-दूसरे पर निर्भर होती हैं. इसलिए, आपको एक ही अनुरोध में पहले के ऑपरेशन में बनाए गए संसाधनों को रेफ़र करने के लिए, अस्थायी संसाधन के नाम इस्तेमाल करने होंगे.

आपके अनुरोध में कार्रवाइयां इस क्रम में होनी चाहिए:

  1. अस्थायी रिसॉर्स नेम (जैसे कि customers/CUSTOMER_ID/assets/-1) के साथ एक या उससे ज़्यादा Asset रिसॉर्स बनाएं. अपनी टेस्ट ऐसेट के साथ-साथ, कोई भी नई BUSINESS_NAME और LOGO ब्रैंड ऐसेट शामिल करें. ऐसा तब करें, जब बिना ऐसेट वाले किसी रीटेल कैंपेन में ब्रैंड से जुड़े दिशा-निर्देश चालू हों और उसमें ब्रैंड के मौजूदा लिंक न हों. इस मामले में, पहले चरण के तुरंत बाद CampaignAsset ऑपरेशन की मदद से, उन ब्रैंड ऐसेट को बेस Campaign से लिंक करें.
  2. संसाधन के अस्थायी नाम (उदाहरण के लिए, customers/CUSTOMER_ID/experiments/-2) के साथ Experiment बनाएं. साथ ही, type को OPTIMIZE_ASSETS पर सेट करें, status को ENABLED पर सेट करें, और optimize_assets_experiment.optimize_assets_experiment_subtype को चुने गए OptimizeAssetsExperimentSubtype (उदाहरण के लिए, COMPARE_ASSETS) पर सेट करें.
  3. दूसरे चरण में बनाए गए अस्थायी एक्सपेरिमेंट के रिसॉर्स नेम से लिंक किए गए दो ExperimentArm रिसॉर्स बनाएं. इसके लिए, हर ग्रुप में 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) भी शामिल है. ADD_ASSETS_TO_ASSETLESS_RETAIL का इस्तेमाल करते समय, ट्रीटमेंट ग्रुप में मौजूद asset_group_assets को ऐसेट ग्रुप की सभी ज़रूरी शर्तें पूरी करनी होंगी. इसमें, YOUTUBE_VIDEO जैसी वैकल्पिक ऐसेट को अलग से शामिल न करें. साथ ही, अगर बेस कैंपेन में ब्रैंड से जुड़े दिशा-निर्देश चालू हैं, तो कैंपेन-लेवल पर ज़रूरी BUSINESS_NAME और LOGO CampaignAsset लिंक मौजूद होने चाहिए या उसी अनुरोध में बनाए जाने चाहिए.
  4. पहले चरण (customers/CUSTOMER_ID/assets/-1) में मौजूद टेस्ट ऐसेट को एक्सपेरिमेंट ग्रुप में इस्तेमाल किए गए बेस AssetGroup से लिंक करने के लिए, एक के बाद एक AssetGroupAsset रिसॉर्स बनाएं.

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 का इस्तेमाल करें. इस प्रोसेस के तहत, कंट्रोल ग्रुप से जुड़ा ओरिजनल बेस कैंपेन रोक दिया जाता है. साथ ही, ट्रीटमेंट ग्रुप को एक नए और अलग कैंपेन में बदल दिया जाता है. यह एक सिंक्रोनस ऑपरेशन है.