تبلیغات بومی ویژگیهای پیشرفتهی زیادی دارند که به شما امکان میدهد سفارشیسازیهای بیشتری انجام دهید و بهترین تجربهی تبلیغاتی ممکن را ایجاد کنید. این راهنما به شما نشان میدهد که چگونه از ویژگیهای پیشرفتهی تبلیغات بومی استفاده کنید.
پیشنیازها
- Integrate the Native ad format .
Asset controls
این بخش جزئیات نحوه سفارشیسازی محتوای خلاقانه در تبلیغات بومی شما را شرح میدهد. شما میتوانید نسبت ابعاد دلخواه را برای محتوای رسانهای و نحوه دانلود و نمایش محتوای تصویری مشخص کنید.
Preferred media aspect ratio controls
کنترلهای نسبت ابعاد رسانه به شما امکان میدهند اولویتی را برای نسبت ابعاد تبلیغات مشخص کنید.
تابع NativeAdRequest.Builder.setMediaAspectRatio() را با مقدار NativeAd.NativeMediaAspectRatio فراخوانی کنید.
وقتی تنظیم نشده باشد، تبلیغ برگردانده شده میتواند هر نسبت ابعاد رسانهای داشته باشد.
وقتی این تنظیم شد، میتوانید با مشخص کردن نوع نسبت تصویر دلخواه، تجربه کاربری را بهبود بخشید.
مثال زیر به SDK دستور میدهد که تصویر یا ویدیوی برگشتی با نسبت ابعاد خاص را ترجیح دهد.
کاتلین
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
جاوا
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
Image download control
کنترل دانلود تصویر به شما امکان میدهد تصمیم بگیرید که آیا فایلهای تصویر یا فقط URIها توسط SDK بازگردانده شوند.
فراخوانی NativeAdRequest.Builder.disableImageDownloading() .
Image download control are disabled by default.
وقتی غیرفعال باشد، GMA Next-Gen SDK هم تصویر و هم URI را برای شما پر میکند.
وقتی این گزینه فعال باشد، SDK فقط URI را پر میکند و به شما امکان میدهد تصاویر واقعی را به دلخواه خود دانلود کنید.
مثال زیر به SDK دستور میدهد که فقط URI را برگرداند.
کاتلین
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.disableImageDownloading()
.build()
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Get the image uri.
val imageUri = nativeAd.image?.uri
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
جاوا
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.disableImageDownloading()
.build();
NativeAdLoaderCallback adLoaderCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Get the image uri.
Uri imageUri = nativeAd.getImage().getUri();
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
Image payload controls
برخی از تبلیغات به جای یک تصویر، مجموعهای از تصاویر را دارند. از این ویژگی برای نشان دادن اینکه آیا برنامه شما آماده نمایش همه تصاویر است یا فقط یک تصویر، استفاده کنید.
Image payload controls are disabled by default.
وقتی غیرفعال باشد، برنامه شما به SDK دستور میدهد که فقط اولین تصویر را برای هر فایلی که حاوی یک سری است، ارائه دهد.
وقتی فعال شود، برنامه شما نشان میدهد که آماده نمایش تمام تصاویر برای هر دارایی است که بیش از یک تصویر دارد.
مثال زیر به SDK دستور میدهد که چندین تصویر را برگرداند.
AdChoices placements
این بخش جزئیات نحوه قرارگیری پوشش AdChoices را شرح میدهد. شما میتوانید محل قرارگیری آن را در یکی از چهار گوشه تنظیم کنید یا آن را در یک نمای سفارشی نمایش دهید.
AdChoices position controls
کنترلهای موقعیت AdChoices به شما امکان میدهند انتخاب کنید که آیکون AdChoices در کدام گوشه نمایش داده شود.
تابع NativeAdRequest.Builder.setAdChoicesPlacement() را با مقدار NativeAdRequest.AdChoicesPlacement فراخوانی کنید.
اگر تنظیم نشده باشد، موقعیت آیکون AdChoices در بالا سمت راست تنظیم میشود.
در صورت تنظیم، AdChoices طبق درخواست در موقعیت سفارشی قرار میگیرد.
مثال زیر نحوه تنظیم موقعیت تصویر سفارشی AdChoices را نشان میدهد.
کاتلین
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
جاوا
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdChoices custom view
ویژگی نمای سفارشی AdChoices به شما امکان میدهد آیکون AdChoices را در یک مکان سفارشی قرار دهید. این با کنترلهای موقعیت AdChoices متفاوت است که فقط امکان تعیین یکی از چهار گوشه را فراهم میکند.
تابع NativeAdView.setAdChoicesView() را با مقدار AdChoicesView فراخوانی کنید.
مثال زیر نحوه تنظیم یک نمای AdChoices سفارشی را نشان میدهد، به طوری که آیکون AdChoices درون AdChoicesView رندر شود.
کاتلین
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val nativeAdView = NativeAdView(applicationContext)
val adChoicesView = AdChoicesView(this)
nativeAdView.adChoicesView = adChoicesView
}
جاوا
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
کنترلهای ویدیویی
این بخش جزئیات نحوه سفارشیسازی تجربه پخش برای تبلیغات ویدیویی را شرح میدهد. شما میتوانید حالت بیصدای اولیه را تنظیم کرده و کنترلهای پخش سفارشی را پیادهسازی کنید.
Start mute behavior
حالت بیصدا در شروع به شما امکان میدهد صدای شروع ویدیو را غیرفعال یا فعال کنید.
تابع VideoOptions.Builder.setStartMuted() را با یک مقدار boolean فراخوانی کنید و تابع NativeAdOptions.Builder.setVideoOptions() را نیز فراخوانی کنید.
The start muted behavior is enabled by default.
وقتی غیرفعال باشد، برنامه شما درخواست میکند که ویدیو با صدا شروع شود.
وقتی فعال باشد، برنامه شما درخواست میکند که ویدیو با صدای بیصدا شروع شود.
مثال زیر نحوه شروع ویدیو با صدای بدون صدا را نشان میدهد.
کاتلین
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
جاوا
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Custom playback controls
این به شما امکان میدهد کنترلهای ورودی ویدیوی سفارشی را برای پخش، مکث یا بیصدا کردن ویدیو درخواست کنید.
برای تنظیم حالت بیصدا کردن تبلیغات، تابع VideoOptions.Builder.setCustomControlsRequested() را فراخوانی کنید.
Custom playback control are disabled by default.
وقتی غیرفعال باشد، ویدیوی شما کنترلهای ورودی رندر شده توسط SDK را نشان میدهد.
اگر تبلیغ محتوای ویدیویی دارد و کنترلهای سفارشی فعال هستند، باید کنترلهای سفارشی خود را همراه با تبلیغ نمایش دهید، زیرا خود تبلیغ هیچ کنترلی را نشان نمیدهد. سپس کنترلها میتوانند متدهای مربوطه را در
VideoOptions.Builder.setCustomControlsRequested()
مثال زیر نحوه درخواست یک ویدیو با کنترلهای پخش سفارشی را نشان میدهد.
کاتلین
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
جاوا
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Check if custom controls are enabled
از آنجا که در زمان درخواست مشخص نیست که آیا تبلیغ برگشتی امکان کنترلهای ویدیویی سفارشی را فراهم میکند یا خیر، باید بررسی کنید که آیا کنترلهای سفارشی فعال هستند یا خیر.
کاتلین
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val mediaContent = nativeAd.mediaContent;
if (mediaContent != null) {
val videoController = mediaContent.videoController;
val canShowCustomControls = videoController?.isCustomControlsEnabled();
}
}
};
جاوا
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
if (videoController != null) {
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
}
};
Render custom video controls
کنترلهای ویدیویی سفارشی را با استفاده از بهترین شیوههای زیر رندر کنید:
- نمای کنترلهای سفارشی را به عنوان فرزند نمای تبلیغات بومی رندر کنید. این رویکرد به محاسبات قابلیت مشاهده اندازهگیری باز اجازه میدهد تا کنترلهای سفارشی را به عنوان یک مانع دوستانه در نظر بگیرند.
- از ایجاد یک لایه نامرئی روی کل نمای رسانه خودداری کنید. لایههای اضافی مانع از کلیک روی نمای رسانه میشوند و بر عملکرد تبلیغات بومی تأثیر منفی میگذارند. در عوض، یک لایه کوچک ایجاد کنید که به اندازه کافی بزرگ باشد تا کنترلها را در خود جای دهد.