ניסוי A/B של תהליך בחירת הרשת (Mediation)

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

הנה כמה דוגמאות לניסויים שניתן להגדיר:

  • להוסיף או להסיר מקורות מודעות כדי לבדוק איך הם משפיעים על הקבוצה לבחירת רשת (Mediation)
  • לשנות את ערך העלות בפועל לאלף חשיפות שהוגדר ידנית למודעה, כדי שהסדר שלהם ב-Waterfall ישתנה בהתאם מקורות
  • להפעיל או להשבית אופטימיזציה של מקורות מודעות ב-Waterfall
  • לשנות את מספר הפעמים שנשלחת קריאה למקור מודעות

דוגמאות

כדי לבדוק זאת, מתחילים עם קבוצה קיימת לבחירת רשת (Mediation) ויוצרים וריאציה שלה. איזה וריאנט, A או B, מניב ביצועים טובים יותר. בבדיקה מגדירים פיצול של משתמשי האפליקציה בין ההגדרה הקיימת של הקבוצה לבחירת רשת לבין הווריאציה, בהתאם האחוזים (1%, 10% או 50%) שסיפקתם.

curl (שורת פקודה)

בקשות באמצעות curl

  1. טוענים את קובץ סודות הלקוח ויוצרים הרשאה פרטי הכניסה.

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

    לצורך אימות והרשאה, מומלץ להשתמש oauth2l, כלי שורת פקודה פשוט עבודה עם Google OAuth 2.0. מתקינים את oauth2l ומריצים את הפקודה הבאה: המערכת מחליפה את path_to_credentials_json בנתיב אל קובץ credentials.json שהורדת במהלך רישום הענן אפליקציה. בהפעלה הראשונה, הפקודה תנחה אתכם לעבור דרך OAuth 2.0 תהליך ההרשאה. בהפעלות הבאות יתבצע רענון אוטומטי של האסימון.

    oauth2l header --json path_to_credentials_json --scope admob.monetization,admob.readonly
    
  2. יוצרים ניסוי A/B בתהליך בחירת הרשת (Mediation).

    מחליפים את pub-XXXXXXXXXXXXXXXX בבעל התוכן הדיגיטלי המזהה ו-ZZZZZZZZZZ באמצעות מזהה הקבוצה לבחירת רשת (Mediation). מזהה הקבוצה לבחירת רשת מופיע בממשק המשתמש של AdMob, או באמצעות accounts.mediationGroups:list .

    צריך לציין את treatmentMediationLines וגם treatmentTrafficPercentage, עם זאת, controlMediationLines עוברות בירושה מקבוצת ההורה לבחירת רשת והן לא צריכות שצוין.

    הבקשה הבאה יוצרת ניסוי A/B של תהליך בחירת הרשת (Mediation) שבו וריאנט הטיפול, שנקרא גם וריאנט B, מכיל תהליך בחירת רשת אחד לרשת AdMob באמצעות מצב LIVE.

    curl --http1.0 \
    -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments \
    -H "Content-Type:application/json" \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \
    --data @- << EOF
    {
      "displayName":"Mediation A/B Experiment Test Name",
      "treatmentTrafficPercentage": "50",
      "treatmentMediationLines": [{
        "mediationGroupLine": {
          "displayName": "Test mediation group line",
          "adSourceId": "5450213213286189855",
          "cpm_mode": "LIVE"
        }
      }]
    }
    EOF

    אפשר לראות את התשובה לדוגמה שבהמשך, שבה SSSSSSSSSSSSSSSSSSSSSS מייצג מזהה ניסוי A/B שנוצר בתהליך בחירת הרשת, ו-YYYYYYYYYY מייצג את 10 הספרות האחרונות של יחידת המודעות מזהה, בהתאם לפורמט: ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY

    {
      "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments/SSSSSSSSSSSSSSSSSSSSSS",
      "displayName": "Mediation A/B Experiment Test Name",
      "experimentId": "SSSSSSSSSSSSSSSSSSSSSS",
      "treatmentTrafficPercentage": "50",
      "treatmentMediationLines": [
        {
          "mediationGroupLine": {
            "id": "11111111111111111",
            "displayName": "Test mediation group line",
            "adSourceId": "5450213213286189855",
            "cpmMode": "LIVE",
            "cpmMicros": "10000",
            "adUnitMappings": {
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
            },
            "state": "ENABLED"
          }
        }
      ],
      "controlMediationLines": [
        {
          "mediationGroupLine": {
            "id": "22222222222222222",
            "displayName": "AdMob Network (control)",
            "adSourceId": "5450213213286189855",
            "cpmMode": "LIVE",
            "cpmMicros": "10000",
            "adUnitMappings": {
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
            },
            "state": "ENABLED"
          }
        }
      ],
      "state": "RUNNING"
    }
  3. חשוב לוודא שניסוי ה-A/B בתהליך בחירת הרשת פועל.

    שיחת טלפון accounts.mediationGroups:list כדי לקבל את הסטטוס של ניסוי A/B בתהליך בחירת הרשת עבור הקבוצה הזו לבחירת רשת. צפייה הקבוצות לבחירת רשת (Mediation) מדריך פרטים.

    mediationAbExperimentState מוגדר לערך RUNNING לניסויי A/B פעילים בתהליך בחירת הרשת ול-NOT_RUNNING אם אין ניסוי פעיל בקבוצה לבחירת רשת.

    בקשה לדוגמה:

     curl --http1.0 \
    -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.readonly)"
    
  4. מפסיקים את ניסוי ה-A/B בתהליך בחירת הרשת ובוחרים וריאנט.

    מחליפים את pub-XXXXXXXXXXXXXXXX בבעל התוכן הדיגיטלי המזהה ו-ZZZZZZZZZZ באמצעות מזהה הקבוצה לבחירת רשת (Mediation). מזהה הקבוצה לבחירת רשת מופיע בממשק המשתמש של AdMob, או באמצעות accounts.mediationGroups:list .

    כדי להשלים את הניסוי, מציינים בבקשה את הווריאנט המנצח:

    • VARIANT_CHOICE_A: שימוש בשורות תהליך בחירת הרשת מהווריאנט A והשלמת התהליך בניסוי. וריאנט A מכיל את שורות ההצגה המקוריות לפני יצירת ניסוי.
    • VARIANT_CHOICE_B: משתמשים בקווים של תהליך בחירת הרשת (Mediation) בווריאנט B וממלאים את הטופס בניסוי. וריאנט B מכיל את שורות ההצגה החדשות שנוספו.

    בקשה לדוגמה:

     curl --http1.0 \
    -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments:stop \
    -H "Content-Type:application/json" \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \
    --data @- << EOF
    {
    "variantChoice": "VARIANT_CHOICE_A"
    }
    

    דוגמה לתגובה:

    {
    "experimentId": "SSSSSSSSSSSSSSSSSSSSSS",
    "state": "EXPIRED",
    }