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

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

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

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

דוגמאות

מתחילים מקבוצה קיימת לבחירת רשת (Mediation) ויוצרים וריאציה שלה כדי לבדוק איזו מהן תניב ביצועים טובים יותר (וריאנט A או וריאנט B). הבדיקה מפצלת את המשתמשים באפליקציה בין ההגדרה הקיימת של קבוצה לבחירת רשת (Mediation) לבין הווריאציה, על סמך אחוז (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 של תהליך בחירת הרשת

    מחליפים את pub-XXXXXXXXXXXXXXXX במזהה בעל האתר ואת ZZZZZZZZZZ במזהה קבוצת הגישור. אפשר למצוא את המזהה של הקבוצה לבחירת רשת בממשק המשתמש של AdMob או באמצעות ה-method‏ accounts.mediationGroups:list.

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

    הבקשה הבאה יוצרת ניסוי A/B של תהליך בחירת הרשת, שבו וריאנט הטיפול, שנקרא גם וריאנט 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 של הקבוצה לבחירת רשת. פרטים נוספים זמינים במדריך בנושא קבוצות לבחירת רשת.

    הערך של התג 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 במזהה קבוצת הגישור. אפשר למצוא את המזהה של הקבוצה לבחירת רשת בממשק המשתמש של AdMob או באמצעות ה-method‏ accounts.mediationGroups:list.

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

    • ‫VARIANT_CHOICE_A: שימוש בפריטי התהליך לבחירת רשת מווריאנט A והשלמת הניסוי. וריאנט A מכיל את שורות ההצגה המקוריות לפני יצירת הניסוי.
    • ‫VARIANT_CHOICE_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",
    }