تبلیغات با پاداش

پلتفرم مورد نظر: اندروید، iOS، یونیتی، فلاتر

تبلیغات جایزه‌دار تبلیغاتی هستند که کاربران می‌توانند در ازای دریافت جوایز درون‌برنامه‌ای با آنها تعامل داشته باشند. این راهنما به شما نشان می‌دهد که چگونه تبلیغات جایزه‌دار AdMob را در یک برنامه Unity ادغام کنید.

چند داستان موفقیت مشتری را بخوانید: مطالعه موردی ۱ ، مطالعه موردی ۲ .

این راهنما نحوه ادغام تبلیغات جایزه‌دار را در یک برنامه Unity توضیح می‌دهد.

پیش‌نیازها

همیشه با تبلیغات آزمایشی تست کنید

کد نمونه زیر شامل یک شناسه واحد تبلیغاتی است که می‌توانید از آن برای درخواست تبلیغات آزمایشی استفاده کنید. این کد به طور ویژه طوری پیکربندی شده است که به جای تبلیغات اصلی، تبلیغات آزمایشی را برای هر درخواست برگرداند، که استفاده از آن را ایمن می‌کند.

با این حال، پس از اینکه یک برنامه را در رابط وب AdMob ثبت کردید و شناسه‌های واحد تبلیغاتی خود را برای استفاده در برنامه خود ایجاد کردید، صریحاً دستگاه خود را در طول توسعه به عنوان یک دستگاه آزمایشی پیکربندی کنید .

اندروید

ca-app-pub-3940256099942544/5224354917

آی‌او‌اس

ca-app-pub-3940256099942544/1712485313

مقداردهی اولیه SDK تبلیغات موبایل

قبل از بارگذاری تبلیغات، برنامه خود را وادار کنید تا SDK تبلیغات موبایلی گوگل را با فراخوانی MobileAds.Initialize() مقداردهی اولیه کند. این کار فقط یک بار، در حالت ایده‌آل هنگام اجرای برنامه، باید انجام شود.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize Google Mobile Ads SDK.
        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 در فراخوانی SSV وجود نخواهد داشت.

نمونه کد زیر نحوه تنظیم گزینه‌های SSV پس از بارگذاری تبلیغ جایزه‌دار را نشان می‌دهد.

// 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 با داده‌های سفارشی خود جایگزین کنید.

اگر می‌خواهید رشته پاداش سفارشی را تنظیم کنید، باید قبل از نمایش تبلیغ این کار را انجام دهید.

نمایش تبلیغ جایزه‌دار با قابلیت فراخوانی جایزه

هنگام ارائه تبلیغ خود، باید یک تابع فراخوانی (callback) برای مدیریت پاداش کاربر ارائه دهید. تبلیغات فقط یک بار در هر بار بارگذاری نمایش داده می‌شوند. از متد 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 : پیاده‌سازی مینیمال از تمام قالب‌های تبلیغاتی.