AdMob API יכול ליצור ניסויי A/B בתהליך בחירת הרשת כדי למקסם את המודעות על ידי בדיקת תצורות שונות. בדיקת A/B מאפשרת שתי וריאציות של קבוצה לבחירת רשת, כדי להשוות בין התוצאות זו לצד זו בוחרים הגדרה מועדפת.
הנה כמה דוגמאות לניסויים שניתן להגדיר:
- להוסיף או להסיר מקורות מודעות כדי לבדוק איך הם משפיעים על הקבוצה לבחירת רשת (Mediation)
- לשנות את ערך העלות בפועל לאלף חשיפות שהוגדר ידנית למודעה, כדי שהסדר שלהם ב-Waterfall ישתנה בהתאם מקורות
- להפעיל או להשבית אופטימיזציה של מקורות מודעות ב-Waterfall
- לשנות את מספר הפעמים שנשלחת קריאה למקור מודעות
דוגמאות
כדי לבדוק זאת, מתחילים עם קבוצה קיימת לבחירת רשת (Mediation) ויוצרים וריאציה שלה. איזה וריאנט, A או B, מניב ביצועים טובים יותר. בבדיקה מגדירים פיצול של משתמשי האפליקציה בין ההגדרה הקיימת של הקבוצה לבחירת רשת לבין הווריאציה, בהתאם האחוזים (1%, 10% או 50%) שסיפקתם.
curl (שורת פקודה)
בקשות באמצעות curl
טוענים את קובץ סודות הלקוח ויוצרים הרשאה פרטי הכניסה.
בפעם הראשונה שתבצעו את השלב הזה, תתבקשו לאשר בקשה להרשאה בדפדפן. לפני האישור, צריך לוודא מחוברים לחשבון 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
יוצרים ניסוי 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" }חשוב לוודא שניסוי ה-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)"
מפסיקים את ניסוי ה-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", }