ניסויים לאופטימיזציה של נכסים בודקים שילובים שונים של נכסים בקמפיינים למיקסום הביצועים, וכך מאפשרים לכם להשוות בין הביצועים של קבוצות שונות של נכסים לבין קבוצת בסיס.
תהליך העבודה הזה נתמך ב-ExperimentType.OPTIMIZE_ASSETS.
הגדרה
כדי להגדיר ניסוי לאופטימיזציה של נכסים:
- יוצרים נכס חדש וניסוי עם קבוצת בקרה וקבוצת ניסוי.
- מקשרים את הנכס החדש לקבוצת הנכסים של קבוצת הניסוי בבקשה אחת לשינוי נתונים.
דרישות מוקדמות
לפני שיוצרים ניסוי באופטימיזציה של נכסים, צריך שיהיה קמפיין קיים למיקסום הביצועים ומשאב בסיס AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}) שמשמש כבסיס להשוואה בשתי קבוצות הניסוי. ב-ADD_ASSETS_TO_ASSETLESS_RETAIL, צריך לוודא שב-AssetGroup הבסיסי כבר מוגדר לפחות final_urls אחד לפני שיוצרים את הניסוי (ניסוי פעיל של נכסים מקפיא את העריכות ב-AssetGroup הבסיסי, וקישור של נכסים בהתאמה אישית דורש final_urls).
סדר הפעולות של הבקשה
בגלל שהישויות האלה תלויות זו בזו, צריך להשתמש בשמות זמניים של משאבים כדי להתייחס למשאבים שנוצרו בפעולות קודמות באותה בקשה.
הפעולות בבקשה צריכות להיות בסדר הבא:
- יוצרים משאב
Assetאחד או יותר עם שמות משאבים זמניים (כמוcustomers/CUSTOMER_ID/assets/-1). כוללים את נכסי הבדיקה, וגם נכסים חדשים של המותג מסוגBUSINESS_NAMEו-LOGOאם ספר המותג מופעל בקמפיין למוצרי קמעונאות ללא נכסים וללא קישורים קיימים למותג (במקרה כזה, מקשרים את הנכסים האלה של המותג אלCampaignהבסיסי באמצעות פעולותCampaignAssetמיד אחרי שלב 1). - יוצרים
Experimentעם שם משאב זמני (לדוגמה,customers/CUSTOMER_ID/experiments/-2), מגדירים אתtypeלערךOPTIMIZE_ASSETS, אתstatusלערךENABLEDואתoptimize_assets_experiment.optimize_assets_experiment_subtypeלערך שלOptimizeAssetsExperimentSubtypeשנבחר (לדוגמה,COMPARE_ASSETS). יוצרים שני משאבים מסוג
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(repeatedAssetGroupAssetInfo) שמפרט את המשאבים שלAssetואתfield_types של קבוצת הניסוי, כוללAsset(customers/CUSTOMER_ID/assets/-1) של הבדיקה שנוצרה בשלב 1. כשמשתמשים ב-ADD_ASSETS_TO_ASSETLESS_RETAIL,asset_group_assetsבקבוצת הניסוי צריך לעמוד בכל הדרישות המינימליות של קבוצת הנכסים (לא לציין נכסים אופציונליים כמוYOUTUBE_VIDEOבלבד), וקישוריBUSINESS_NAMEו-LOGOCampaignAssetנדרשים ברמת הקמפיין חייבים להיות קיימים או להיווצר באותה בקשה כשספר המותג מופעל בקמפיין הבסיס.
- קבוצת בקרה (
יוצרים משאבי
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. כחלק מהתהליך הזה, קמפיין הבסיס המקורי שמשויך לקבוצת הבקרה מושהה, וקבוצת הניסוי הופכת לקמפיין חדש ועצמאי. זו פעולה סינכרונית.