تبلیغات بومی

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

وقتی یک تبلیغ بومی بارگذاری می‌شود، برنامه شما یک شیء تبلیغ دریافت می‌کند که شامل دارایی‌های آن است و برنامه - به جای GMA Next Gen SDK - سپس مسئول نمایش آنها است.

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

این صفحه نحوه استفاده از SDK برای بارگذاری تبلیغات بومی را نشان می‌دهد. نکته: برای اطلاعات بیشتر در مورد تبلیغات بومی به دفترچه راهنمای تبلیغات بومی ما مراجعه کنید.

نمونه‌ها برای جاوا و کاتلین موجود است.

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

پیش‌نیازها

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

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

ساده‌ترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات بومی است:

قالب تبلیغ نمونه شناسه واحد تبلیغات
بومی ca-app-pub-3940256099942544/2247696110
ویدیوی بومی ca-app-pub-3940256099942544/1044960115

بارگذاری یک تبلیغ

برای بارگذاری یک تبلیغ بومی، متد NativeAdLoader.load() را فراخوانی کنید، که یک NativeAdRequest و یک NativeAdLoaderCallback می‌گیرد.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
  }
}

تنظیم فراخوانی رویداد تبلیغات بومی

هنگام مدیریت onNativeAdLoaded ، NativeAd دریافتی را با یک NativeAdEventCallback تنظیم کنید تا توابعی برای دریافت رویدادهای چرخه عمر تبلیغات بومی تعریف شود:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

اختیاری: بارگذاری چندین تبلیغ

برای بارگذاری چندین تبلیغ، تابع load() با پارامتر اختیاری numberOfAds فراخوانی کنید. حداکثر مقداری که می‌توانید تنظیم کنید 5 است که نشان دهنده تعداد تبلیغات است. ممکن است GMA Next Gen SDK تعداد دقیق تبلیغات درخواستی شما را برنگرداند.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

تبلیغاتی که GMA Next Gen SDK برمی‌گرداند منحصر به فرد هستند، اگرچه تبلیغات از موجودی رزرو شده یا خریداران شخص ثالث ممکن است منحصر به فرد نباشند.

اگر از میانجیگری استفاده می‌کنید، متد load() را فراخوانی نکنید. درخواست‌های مربوط به چندین تبلیغ بومی برای شناسه‌های واحد تبلیغاتی که برای میانجیگری پیکربندی شده‌اند، کار نمی‌کنند.

بهترین شیوه‌ها

هنگام بارگذاری تبلیغات، این قوانین را رعایت کنید.

  • برنامه‌هایی که از تبلیغات بومی در یک لیست استفاده می‌کنند، باید لیست تبلیغات را از قبل در حافظه پنهان (cache) ذخیره کنند.

  • هنگام پیش‌ذخیره‌سازی تبلیغات، حافظه پنهان (cache) خود را پاک کنید و پس از یک ساعت دوباره بارگذاری کنید.

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

  • وقتی دیگر از تبلیغات بومی استفاده نمی‌کنید، آنها را از بین ببرید.

شتاب سخت‌افزاری برای تبلیغات ویدیویی

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

شتاب سخت‌افزاری به طور پیش‌فرض فعال است، اما برخی از برنامه‌ها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می‌کند، توصیه می‌کنیم شتاب سخت‌افزاری را برای کلاس‌های Activity که از تبلیغات استفاده می‌کنند، فعال کنید.

فعال کردن شتاب سخت‌افزاری

اگر برنامه شما با فعال بودن شتاب‌دهنده سخت‌افزاری به صورت سراسری به درستی رفتار نمی‌کند، می‌توانید آن را برای فعالیت‌های منفرد نیز کنترل کنید. برای فعال یا غیرفعال کردن شتاب‌دهنده سخت‌افزاری، از ویژگی android:hardwareAccelerated برای عناصر <application> و <activity> در AndroidManifest.xml خود استفاده کنید. مثال زیر شتاب‌دهنده سخت‌افزاری را برای کل برنامه فعال می‌کند اما آن را برای یک فعالیت غیرفعال می‌کند:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

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

تبلیغ خود را نمایش دهید

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

مثال

برنامه‌ی نمونه‌ای که نحوه‌ی استفاده از GMA Next Gen SDK را نشان می‌دهد، دانلود و اجرا کنید.