एक ही कैंपेन में किए जाने वाले एक्सपेरिमेंट

एक ही कैंपेन में किसी खास सुविधा को टेस्ट करने के लिए, कैंपेन के अंदर होने वाले एक्सपेरिमेंट का इस्तेमाल किया जाता है. सिस्टम से मैनेज किए जाने वाले एक्सपेरिमेंट में, ट्रैफ़िक को कंट्रोल और ट्रीटमेंट कैंपेन के बीच बांटा जाता है. वहीं, कैंपेन के अंदर होने वाले एक्सपेरिमेंट में, ट्रैफ़िक को कैंपेन के अंदर ही बांटा जाता है. यह बंटवारा, सुविधा चालू है या नहीं, इस पर निर्भर करता है.

यह वर्कफ़्लो, इन ExperimentType वैल्यू के लिए काम करता है:

  • ADOPT_AI_MAX
  • ADOPT_BROAD_MATCH_KEYWORDS

सेटअप

  1. Experiment तय करें. इसके लिए, एक्सपेरिमेंट का टाइप, कंट्रोल ExperimentArm, और ट्रीटमेंट ExperimentArm तय करें. हर ग्रुप को एक ही कैंपेन से रेफ़रंस लेना चाहिए.
  2. फ़ील्ड मास्क का इस्तेमाल करके, एक्सपेरिमेंट के लिए टेस्ट सुविधा चालू करें. ADOPT_BROAD_MATCH_KEYWORDS के लिए, यह ज़रूरी नहीं है. इसके बजाय, एक्सपेरिमेंट बनाने पर ब्रॉड मैच कैंपेन की सेटिंग अपने-आप चालू हो जाएगी.
  3. GoogleAdsService.Mutate अनुरोध भेजें. इसमें, एक्सपेरिमेंट और एक्सपेरिमेंट ग्रुप बनाने के लिए, म्यूटेट करने की कार्रवाइयां शामिल हों. साथ ही, इसमें टेस्ट सुविधा को चालू करने की कार्रवाई भी शामिल हो (अगर लागू हो).

सेटअप होने के बाद, ट्रैफ़िक को कैंपेन के अंदर ही बांटा जाता है. इसमें 50% ट्रैफ़िक, चालू की गई सुविधा (ट्रीटमेंट ग्रुप) को दिखता है और 50% ट्रैफ़िक को नहीं (कंट्रोल ग्रुप).

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

एक्सपेरिमेंट की रिपोर्ट

कंट्रोल और ट्रीटमेंट ग्रुप का ट्रैफ़िक, एक ही कैंपेन में मिक्स होता है. इसलिए, कंट्रोल और ट्रीटमेंट ग्रुप के बीच मेट्रिक की तुलना करने के लिए, आपको एक्सपेरिमेंट की सीधी रिपोर्टिंग का इस्तेमाल करना होगा. कैंपेन-लेवल की स्टैंडर्ड रिपोर्टिंग में, सिर्फ़ पूरे कैंपेन के लिए इकट्ठा की गई मेट्रिक दिखती हैं. इसमें, दोनों ग्रुप के बीच अंतर नहीं किया जा सकता.

कैंपेन के अंदर होने वाले ADOPT_AI_MAX एक्सपेरिमेंट के लिए, क्लिक के आंकड़े पाने के लिए, यहां दिया गया GAQL क्वेरी इस्तेमाल की जा सकती है.

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'

एक्सपेरिमेंट को प्रमोट करना या खत्म करना

नतीजों का आकलन करने के बाद, एक्सपेरिमेंट को खत्म या प्रमोट करने के लिए ExperimentService का इस्तेमाल किया जा सकता है.

  • खत्म करना: अगर आपको नतीजे पसंद नहीं आए, तो EndExperiment का इस्तेमाल करें. इससे सुविधा बंद हो जाएगी. साथ ही, कैंपेन, एक्सपेरिमेंट की सुविधा के बिना, सारा ट्रैफ़िक दिखाने लगेगा. यह एक सिंक्रोनस ऑपरेशन है.
  • प्रमोट करना: अगर आपको नतीजे पसंद आए, तो PromoteExperiment का इस्तेमाल करें. इससे, एक्सपेरिमेंट में किए गए बदलाव को कैंपेन की नई परमानेंट स्थिति के तौर पर लागू किया जाता है. यह एक एसिंक्रोनस ऑपरेशन है. ज़्यादा जानकारी के लिए, एसिंक्रोनस गड़बड़ियां देखें.

कैंपेन के अंदर होने वाले एक्सपेरिमेंट के लिए, ग्रैजुएट ऑपरेशन की सुविधा उपलब्ध नहीं है. इसकी वजह यह है कि ग्रैजुएट करने के लिए, कोई अलग ट्रीटमेंट कैंपेन नहीं होता.