يمكن لواجهة برمجة التطبيقات AdMob إنشاء تجارب A/B للتوسّط من أجل زيادة أداء إعلاناتك إلى أقصى حد من خلال اختبار إعدادات مختلفة. يتيح لك اختبار A/B تقييم صيغتَين من مجموعة التوسّط لمقارنة النتائج جنبًا إلى جنب واختيار الإعدادات المفضّلة.
في ما يلي أمثلة على التجارب التي يمكنك إعدادها:
- إضافة مصادر الإعلانات أو إزالتها لمعرفة تأثيرها على مجموعة التوسّط
- استخدام ترتيب مختلف للعرض الإعلاني بدون انقطاع من خلال تغيير القيمة اليدوية للتكلفة الفعلية لكل ألف ظهور لمصادر الإعلانات
- تفعيل ميزة التحسين على مصادر الإعلانات بنظام العرض الإعلاني بدون انقطاع أو إيقافها
- تغيير عدد مرات طلب مصدر الإعلان
أمثلة
ابدأ بمجموعة توسّط حالية وأنشئ صيغة مختلفة منها لمعرفة أيّ صيغة، 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 للتوسّط.
استبدِل
pub-XXXXXXXXXXXXXXXXبرقم تعريف الناشر وZZZZZZZZZZبرقم تعريف مجموعة التوسّط. يمكن العثور على رقم تعريف مجموعة التوسّط في واجهة مستخدم AdMob أو باستخدام طريقةaccounts.mediationGroups:list.يجب تحديد
treatmentMediationLinesوtreatmentTrafficPercentage، ولكن يتم اكتسابcontrolMediationLinesمن مجموعة التوسّط الرئيسية ولا يلزم تحديدها.ينشئ الطلب التالي تجربة 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" }تأكَّد من أنّ تجربة اختبار 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)"
أوقِف تجربة اختبار A/B في التوسّط واختَر صيغة.
استبدِل
pub-XXXXXXXXXXXXXXXXبرقم تعريف الناشر وZZZZZZZZZZبرقم تعريف مجموعة التوسّط. يمكن العثور على رقم تعريف مجموعة التوسّط في واجهة مستخدم AdMob أو باستخدام طريقةaccounts.mediationGroups:list.لإكمال التجربة، حدِّد الصيغة الفائزة في الطلب:
VARIANT_CHOICE_A: استخدِم أسطر التوسّط من الصيغة A وأكمِل التجربة. تحتوي الصيغة (أ) على عبارات العرض الأصلية قبل إنشاء التجربة.VARIANT_CHOICE_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", }