آگهیهای بومی داراییهای آگهی هستند که ازطریق عناصر واسط کاربر بومی پلاتفرم به کاربران ارائه میشوند. این آگهیها بااستفاده از همان انواع نماهایی نشان داده میشوند که درحالحاضر با آنها چیدمانهایتان را میسازید و میتوانند بهگونهای قالببندی شوند که با طراحی دیداری برنامهتان مطابقت داشته باشند.
وقتی آگهی بومی بار میشود، برنامه شما یک شیء آگهی دریافت میکند که حاوی داراییهای آن است، و برنامه—بهجای GMA Next-Gen SDK—مسئول نمایش آنها است.
بهطور کلی، پیادهسازی موفق آگهیهای بومی دو بخش دارد: بار کردن آگهی بااستفاده از کیت توسعه نرمافزار و سپس نمایش محتوای آگهی در برنامه شما.
این صفحه نحوه استفاده از کیت توسعه نرمافزار برای بار کردن آگهیهای بومی را نشان میدهد. نکته: درباره آگهیهای بومی در کتاب راهنمای آگهیهای بومی ما بیشتر بدانید.
نمونهها برای Java و Kotlin دردسترس است.همچنین میتوانید برخیاز داستانهای موفقیت مشتری را بررسی کنید: مطالعه موردی ۱، مطالعه موردی ۲.
پیشنیازها
- GMA Next-Gen SDK را راهاندازی کنید.
- GMA Next-Gen SDK نسخه
1.0.0یا بالاتر.
همیشه با آگهیهای آزمایشی آزمایش کنید
هنگام ساختن و آزمایش کردن برنامههایتان، مطمئن شوید که از آگهیهای آزمایشی بهجای آگهیهای زنده و تولید استفاده میکنید. انجام ندادن این کار میتواند منجر به تعلیق حساب شما شود.
آسانترین راه برای بار کردن آگهیهای آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای آگهیهای بومی است:
| قالب آگهی | شناسه واحد آگهی نمونه |
|---|---|
| بومی | 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.
}
}
اختیاری: بار کردن چند آگهی
برای بار کردن چند آگهی، با پارامتر اختیاری 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>
برای اطلاعات بیشتر درباره گزینههای کنترل شتاب سختافزاری، به راهنمای شتاب سختافزاری مراجعه کنید. توجه داشته باشید که اگر «فعالیت» غیرفعال باشد، نمیتوان نماهای آگهی تکی را برای شتاب سختافزاری فعال کرد، بنابراین خود «فعالیت» باید شتاب سختافزاری فعال داشته باشد.
نمایش آگهی شما
پساز بار کردن آگهی، تنها کاری که باقی میماند نمایش آن به کاربران است. برای اطلاعات بیشتر، به Native advanced یا آگهیهای تمامصفحه بومی مراجعه کنید.
مثال
برنامه نمونه را که استفاده از GMA Next-Gen SDK را نشان میدهد بارگیری و اجرا کنید.