آگهی‌های پاداش‌دار

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

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

این راهنما نحوه ادغام کردن آگهی‌های پاداش‌دار در برنامه Unity را توضیح می‌دهد.

پیش‌نیازها

پیش‌از ادامه دادن، Google Mobile Ads Unity Plugin را راه‌اندازی کنید.

همیشه با آگهی‌های آزمایشی آزمایش کنید

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

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

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

نمایش آگهی پاداش‌دار با برگشت تماس پاداش

هنگام ارائه آگهی‌تان، باید یک پاسخ‌به‌تماس برای مدیریت پاداش کاربر ارائه دهید. آگهی‌ها فقط یک‌بار در هر بارگذاری نمایش داده می‌شوند. از روش 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.
    });
};

منابع بیشتر