الإعلانات بمكافأة

اختيار النظام الأساسي: Android iOS Unity Flutter Android (قديم)

"الإعلانات مقابل مكافأة" هي إعلانات يمكن للمستخدمين اختيار التفاعل معها مقابل الحصول على مكافآت داخل التطبيق. يوضّح لك هذا الدليل كيفية دمج "الإعلانات مقابل مكافأة" من AdMob في تطبيق Unity.

يشرح هذا الدليل كيفية دمج "الإعلانات مقابل مكافأة" في تطبيق Unity.

المتطلبات الأساسية

قبل المتابعة، عليك إعداد Google Mobile Ads Unity Plugin.

اختبِر دائمًا باستخدام الإعلانات الاختبارية

يحتوي الرمز النموذجي التالي على معرّف وحدة إعلانية يمكنك استخدامه لطلب إعلانات اختبارية. وقد تم ضبطه خصيصًا لعرض إعلانات اختبارية بدلاً من إعلانات إنتاجية لكل طلب، ما يجعله آمنًا للاستخدام.

ومع ذلك، بعد تسجيل تطبيق في واجهة الويب في "مدير الإعلانات" وإنشاء معرّفات الوحدات الإعلانية الخاصة بك لاستخدامها في تطبيقك، عليك إعداد جهازك صراحةً كجهاز اختباري أثناء عملية التطوير.

/21775744923/example/interstitial

إعداد Google Mobile Ads Unity Plugin

قبل تحميل الإعلانات، يجب أن يبدأ تطبيقك Google Mobile Ads Unity Plugin من خلال استدعاء MobileAds.Initialize(). يجب تنفيذ هذا الإجراء مرة واحدة فقط، ويُفضَّل أن يكون ذلك عند تشغيل التطبيق.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize Google Mobile Ads Unity Plugin.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

إذا كنت تستخدم ميزة التوسّط، انتظِر حتى يتم تنفيذ طلب معاودة الاتصال قبل تحميل الإعلانات، لأنّ ذلك سيضمن إعداد جميع محوّلات التوسّط.

تحميل "الإعلان مقابل مكافأة"

يتم تحميل "إعلان مقابل مكافأة" باستخدام الإجراء الثابت Load() في الفئة RewardedAd. يتم توفير عنصر RewardedAd الذي تم تحميله كمَعلمة في معالج الإكمال. يعرض المثال التالي كيفية تحميل "إعلان مقابل مكافأة":

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

استبدِل AD_UNIT_ID برقم تعريف الوحدة الإعلانية.

[اختياري] التحقّق من صحة عمليات رد الاتصال من خلال ميزة "التحقّق من جهة الخادم" (SSV)

يجب أن تستخدم التطبيقات التي تتطلّب بيانات إضافية في عمليات التحقّق من جهة الخادم لمعاودة الاتصال ميزة البيانات المخصّصة في "الإعلانات مقابل مكافأة". يتم تمرير أي قيمة سلسلة تم ضبطها على عنصر إعلان مقابل مكافأة إلى مَعلمة طلب البحث custom_data في معاودة الاتصال من جهة خادم التحقّق من صحة العرض (SSV). في حال عدم ضبط قيمة بيانات مخصّصة، لن تظهر قيمة مَعلمة طلب البحث custom_data في ردّ الاتصال من جهة الخادم.

يوضّح نموذج الرمز البرمجي التالي كيفية ضبط خيارات التحقّق من صحة العرض من جهة الخادم بعد تحميل الإعلان مقابل مكافأة.

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

استبدِل SAMPLE_CUSTOM_DATA_STRING ببياناتك المخصّصة.

إذا أردت ضبط سلسلة المكافأة المخصّصة، عليك إجراء ذلك قبل عرض الإعلان.

عرض "الإعلان مقابل مكافأة" مع دالة معاودة الاتصال الخاصة بالمكافأة

عند عرض إعلانك، يجب تقديم دالة رد اتصال للتعامل مع المكافأة للمستخدم. يمكن عرض الإعلانات مرة واحدة فقط لكل عملية تحميل. استخدِم طريقة CanShowAd() للتحقّق من أنّ الإعلان جاهز للعرض.

يعرض الرمز التالي أفضل طريقة لعرض "إعلان مقابل مكافأة".

if (rewardedAd != null && rewardedAd.CanShowAd())
{
    rewardedAd.Show((Reward reward) =>
    {
        // The ad was showen and the user earned a reward.
    });
}

الاستماع إلى أحداث "الإعلانات مقابل مكافأة"

لتخصيص سلوك إعلانك بشكل أكبر، يمكنك ربط عدد من الأحداث في مراحل نشاط الإعلان. يستمع الرمز التالي إلى أحداث الإعلانات:

rewardedAd.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
rewardedAd.OnAdImpressionRecorded += () =>
{
    // Raised when an impression is recorded for an ad.
};
rewardedAd.OnAdClicked += () =>
{
    // Raised when a click is recorded for an ad.
};
rewardedAd.OnAdFullScreenContentOpened += () =>
{
    // Raised when the ad opened full screen content.
};
rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Raised when the ad closed full screen content.
};
rewardedAd.OnAdFullScreenContentFailed += (AdError error) =>
{
    // Raised when the ad failed to open full screen content.
};

إزالة "الإعلان مقابل مكافأة"

عند الانتهاء من استخدام RewardedAd، تأكَّد من استدعاء طريقة Destroy() قبل إسقاط مرجعك إليها:

if (rewardedAd != null)
{
    rewardedAd.Destroy();
}

يُعلم ذلك المكوّن الإضافي بأنّ العنصر لم يعُد مستخدَمًا ويمكن استرداد الذاكرة التي يشغلها. ويؤدي عدم استدعاء هذه الطريقة إلى تسرُّب الذاكرة.

التحميل المُسبَق للإعلان التالي مقابل مكافأة

‫RewardedAd هو عنصر يُستخدم لمرة واحدة. وهذا يعني أنّه بعد عرض إعلان مقابل مكافأة، لا يمكن استخدام العنصر مرة أخرى. لطلب "إعلان مقابل مكافأة" آخر، عليك إنشاء عنصر RewardedAd جديد.

لإعداد "إعلان مقابل مكافأة" لفرصة ظهور الإعلان التالية، يمكنك تحميل الإعلان مسبقًا عند ظهور حدث الإعلان OnAdFullScreenContentClosed أو OnAdFullScreenContentFailed.

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

مراجع إضافية

  • مثال HelloWorld: هو الحد الأدنى من تنفيذ جميع أشكال الإعلانات.