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

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

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

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

این صفحه نحوه استفاده از کیت توسعه نرم‌افزار برای بار کردن آگهی‌های بومی را نشان می‌دهد.

پیش‌نیازها

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

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

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

قالب آگهی شناسه واحد آگهی نمونه
بومی /21775744923/example/native
ویدیوی Native /21775744923/example/native-video

بار کردن آگهی

برای بار کردن آگهی بومی، روش 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 = "/21775744923/example/native"
  }
}

تنظیم کردن پس‌از تماس رویداد آگهی بومی

هنگام مدیریت 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.
      }
    }

اختیاری: بار کردن چند آگهی

برای بار کردن چند آگهی، با پارامتر اختیاری numberOfAds با load() تماس بگیرید. حداکثر مقداری که می‌توانید تنظیم کنید 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() را فراخوانی نکنید. درخواست‌های مربوط به چندین آگهی بومی برای شناسه‌های واحد آگهی که برای میانجی‌گری پیکربندی شده‌اند کار نمی‌کند.

روال‌های مطلوب

هنگام بار کردن آگهی‌ها، این قوانین را دنبال کنید.

  • برنامه‌هایی که از آگهی‌های بومی در فهرست استفاده می‌کنند باید فهرست آگهی‌ها را ازقبل در حافظه نهان ذخیره کنند.

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

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

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

شتاب سخت‌افزاری برای آگهی‌های ویدیویی

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

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

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

اگر برنامه شما با فعال بودن شتاب سخت‌افزاری در سطح جهانی به‌درستی عمل نمی‌کند، می‌توانید آن را برای فعالیت‌های جداگانه نیز کنترل کنید. برای فعال یا غیرفعال کردن شتاب سخت‌افزاری، از ویژگی 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 را نشان می‌دهد بارگیری و اجرا کنید.