قالب‌های آگهی بومی سفارشی

ناشران Ad Manager این گزینه را دارند که با تعریف فهرست‌های سفارشی دارایی‌ها، قالب‌های آگهی بومی خود را ایجاد کنند. این‌ها قالب‌های آگهی بومی سفارشی نامیده می‌شوند و می‌توانند با آگهی‌های رزروشده استفاده شوند. آگهی‌های بومی سفارشی به ناشران امکان می‌دهد تصویر دلخواه و داده‌های رشته‌ای را به برنامه‌هایشان ارسال کنند. این داده‌ها با شیء CustomNativeAd نشان داده می‌شود.

بار کردن آگهی بومی سفارشی

آگهی‌های بومی سفارشی بااستفاده از اشیاء AdLoader بار می‌شود. روش ForCustomNativeAd()، AdLoader را برای مدیریت آگهی‌های بومی سفارشی پیکربندی می‌کند. دو پارامتر برای این روش وجود دارد:

  • formatId آگهی سفارشی که AdLoader باید درخواست کند. هر قالب آگهی بومی سفارشی دارای مقدار شناسه قالب منسوب به خود است. این پارامتر نشان می‌دهد که برنامه شما می‌خواهد AdLoader کدام قالب را درخواست کند.
  • Action<CustomNativeAd, string> اختیاری که وقتی کاربر روی آگهی کلیک می‌کند فراخوانی می‌شود.

آگهی‌های بومی سفارشی ازطریق کلاس AdLoader بار می‌شود که کلاس AdLoader.Builder خودش را دارد تا درطول ایجاد سفارشی‌سازی شود. روش ForCustomNativeAd()، AdLoader را برای مدیریت آگهی‌های بومی پیکربندی می‌کند.

void LoadCustomNativeAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
            .ForCustomNativeAd("10063170")
            .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

چون یک واحد آگهی می‌تواند برای ارائه بیش‌از یک قالب آگهی بومی سفارشی راه‌اندازی شود، ForCustomNativeAd() می‌تواند چندین بار با شناسه‌های قالب متفاوت فراخوانی شود تا بارکننده آگهی را برای بیش‌از یک قالب آگهی بومی سفارشی ممکن آماده کند.

رویدادهای آگهی بومی سفارشی

کلاس AdLoader رویدادهای آگهی از نوع EventHandler را ارائه می‌دهد تا شما را از چرخه حیات آگهی بومی سفارشی مطلع کند. مثال زیر نشان می‌دهد که چگونه می‌توان برای رویدادهای آگهی بومی سفارشی در بارکننده آگهی ثبت‌نام کرد:

private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

روش HandleCustomNativeAdLoaded() حاوی پارامتر CustomNativeAdEventArgs است. آگهی بومی سفارشی که بار شده است ازطریق این پارامتر رویداد قابل‌دسترسی است، همان‌طور که در زیر نشان داده شده است:

void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    this.customNativeAd = args.nativeAd;
}

روش HandleCustomNativeAdFailedToLoad() حاوی پارامتر AdFailedToLoadEventArgs است. با فراخوانی روش GetMessage در فیلد LoadAdError، همان‌طور که در زیر نشان داده شده است، می‌توان به پیام خطا دسترسی پیدا کرد:

void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    string message = args.LoadAdError.GetMessage();
    Debug.Log("Ad Loader fail event received with message: " + message);
}

نمایش قالب‌های آگهی بومی سفارشی

آگهی‌های بومی سفارشی از هر تعداد دارایی تصویری و نوشتاری تعریف‌شده توسط کاربر پشتیبانی می‌کنند. این دارایی‌ها ازطریق کلاس CustomNativeAd قابل‌دسترسی هستند که روش‌های GetTexture2D() و GetText() را ارائه می‌دهد که شناسه متغیر فیلد قالب را به‌عنوان پارامتر می‌گیرد.

در اینجا نمونه‌ای از پیاده‌سازی آورده شده است که به دارایی‌های آگهی بومی سفارشی دسترسی دارد:

private bool adLoaded;
private Texture2D mainImageTexture;
private string headline;
private CustomNativeAd customNativeAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeAd.GetTexture2D("MainImage");
        headline = customNativeAd.GetText("Headline");
        adLoaded = false;
    }
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    customNativeAd = args.nativeAd;
    adLoaded = true;
    ...
}

مدیریت ظهورها و کلیک‌های آگهی بومی سفارشی

با آگهی بومی سفارشی، برنامه شما مسئول ثبت ظهورها و گزارش رویدادهای کلیک به کیت توسعه نرم‌افزار است.

ظهورهای ضبط

برای ثبت ظهور برای آگهی سفارشی، روش RecordImpression() را در CustomNativeAd مربوطه فراخوانی کنید:

customNativeAd.RecordImpression();

کلیک‌های گزارش تخلف

برای گزارش به کیت توسعه نرم‌افزار مبنی بر اینکه کلیکی روی دارایی انجام شده است، روش PerformClick() را در CustomNativeAd مربوطه فراخوانی کنید و نام دارایی‌ای را که روی آن کلیک شده است ارسال کنید. برای مثال، اگر دارایی‌ای در قالب سفارشی‌تان به‌نام «MainImage» داشتید و می‌خواستید کلیک روی بافتی را که با آن دارایی مطابقت دارد گزارش کنید، کد شما به‌این‌صورت خواهد بود:

customNativeAd.PerformClick("MainImage");

پاسخ دادن به کنش‌های کلیک سفارشی

وقتی کلیکی روی آگهی سفارشی گزارش می‌شود، پاسخ‌های احتمالی از کیت توسعه نرم‌افزار به این ترتیب امتحان می‌شود:

  1. یک حل‌کننده محتوا برای نشانی وب پیوند عمیق آگهی پیدا کنید و اولین موردی را که حل می‌شود شروع کنید.

  2. مرورگری را باز کنید و به نشانی وب مقصد سنتی آگهی بروید.

اگر می‌خواهید کنش کلیک را برای قالب‌های آگهی بومی سفارشی‌تان خودتان انجام دهید و کاربر را به پیوند عمیق یا مرورگر وب نبرید، یک Action<CustomNativeAd, string> اختیاری در روش AdLoader.Builder.ForCustomNativeAd() ارائه دهید. با تنظیم این کنش کلیک سفارشی، رفتار کلیک کیت توسعه نرم‌افزار را لغو می‌کنید. در اینجا مثالی آورده شده است که از یک کنش کلیک سفارشی برای ثبت کلیک برای یک دارایی خاص استفاده می‌کند:

private void LoadCustomNativeAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
            .ForCustomNativeAd("10063170", HandleCustomNativeAdClicked)
            .Build();
    adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeAd customNativeAd, string assetName)
{
    Debug.Log("Custom Native ad asset with name " + assetName + " was clicked.");
}