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

پلاتفرم را انتخاب کنید: Android iOS Flutter Unity Android (Legacy)

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

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

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

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

نمونه‌ها برای Java و Kotlin دردسترس است.

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

پیش‌نیازها

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

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

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

قالب آگهی شناسه واحد آگهی نمونه
بومی ca-app-pub-3940256099942544/2247696110
ویدیوی Native 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() را فراخوانی نکنید. درخواست‌های چند آگهی بومی برای شناسه‌های واحد آگهی پیکربندی‌شده برای میانجی‌گری کار نمی‌کند.

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

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

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

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

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

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

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

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

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

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

نمایش آگهی شما

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

مثال

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