تجربة أ/ب للتوسّط

يمكن لواجهة برمجة التطبيقات AdMob إنشاء تجارب A/B للتوسّط من أجل زيادة أداء إعلاناتك إلى أقصى حد من خلال اختبار إعدادات مختلفة. يتيح لك اختبار A/B تقييم صيغتَين من مجموعة التوسّط لمقارنة النتائج جنبًا إلى جنب واختيار الإعدادات المفضّلة.

في ما يلي أمثلة على التجارب التي يمكنك إعدادها:

  • إضافة مصادر الإعلانات أو إزالتها لمعرفة تأثيرها على مجموعة التوسّط
  • استخدام ترتيب مختلف للعرض الإعلاني بدون انقطاع من خلال تغيير القيمة اليدوية للتكلفة الفعلية لكل ألف ظهور لمصادر الإعلانات
  • تفعيل ميزة التحسين على مصادر الإعلانات بنظام العرض الإعلاني بدون انقطاع أو إيقافها
  • تغيير عدد مرات طلب مصدر الإعلان

أمثلة

ابدأ بمجموعة توسّط حالية وأنشئ صيغة مختلفة منها لمعرفة أيّ صيغة، 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 للتوسّط.

    استبدِل 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"
    }
  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 أو باستخدام طريقة 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",
    }