ניסויים בתוך קמפיין

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

התהליך הזה נתמך בערכים הבאים של 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

דיווח על הניסוי

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

אפשר להשתמש בשאילתת GAQL הבאה כדי לאחזר נתוני קליקים עבור 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'

החלת הניסוי או סיום הניסוי

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

  • סיום: אם אתם לא מרוצים מהתוצאות, משתמשים בלחצן EndExperiment. התכונה תושבת והקמפיין יחזור להצגת מודעות לכלל התנועה ללא התכונה הניסיונית. זו פעולה סינכרונית.
  • קידום: אם מרוצים מהתוצאות, משתמשים באפשרות PromoteExperiment. השינוי הניסיוני יוחל כסטטוס הקבוע החדש של הקמפיין. זו פעולה אסינכרונית. פרטים נוספים זמינים במאמר בנושא שגיאות אסינכרוניות.

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