تبلیغات بومی دارای بسیاری از ویژگیهای پیشرفته هستند که به شما امکان میدهند سفارشیسازیهای بیشتری انجام دهید و بهترین تجربه تبلیغات ممکن را داشته باشید. این راهنما به شما نشان می دهد که چگونه از ویژگی های پیشرفته تبلیغات بومی استفاده کنید.
پیش نیازها
- قالب تبلیغات بومی را ادغام کنید.
کنترل دارایی ها
این بخش نحوه سفارشی سازی دارایی های خلاقانه در تبلیغات بومی خود را شرح می دهد. شما این امکان را دارید که نسبت ابعاد ترجیحی برای دارایی های رسانه و نحوه دانلود و نمایش دارایی های تصویر را مشخص کنید.
کنترلهای نسبت ابعاد رسانه ترجیحی
کنترلهای نسبت ابعاد رسانه به شما این امکان را میدهد که ترجیحی برای نسبت ابعاد آگهیهای خلاقانه تعیین کنید.
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();
کنترل دانلود تصویر
کنترل دانلود تصویر به شما امکان می دهد تصمیم بگیرید که دارایی های تصویر یا فقط URI ها توسط SDK برگردانده شوند.
NativeAdRequest.Builder.disableImageDownloading()
را فراخوانی کنید.
کنترل دانلود تصویر به طور پیش فرض غیرفعال است.
وقتی غیرفعال است، Google Mobile Ads 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);
کنترل های محموله تصویر
برخی از تبلیغات دارای یک سری تصاویر هستند نه فقط یک. از این ویژگی برای نشان دادن اینکه آیا برنامه شما آماده نمایش همه تصاویر است یا فقط یک عکس استفاده کنید.
کنترلهای بارگذاری تصویر بهطور پیشفرض غیرفعال هستند.
وقتی غیرفعال است، برنامه شما به SDK دستور میدهد که فقط اولین تصویر را برای هر دارایی حاوی یک سری ارائه دهد.
وقتی فعال باشد، برنامه شما نشان میدهد که آماده است تا تمام تصاویر را برای هر دارایی که بیش از یک دارد نمایش دهد.
مثال زیر به SDK دستور می دهد چندین دارایی تصویر را برگرداند.
قرار دادن AdChoices
این بخش نحوه قرار دادن همپوشانی AdChoices را توضیح می دهد. شما این امکان را دارید که محل قرارگیری آن را روی یکی از چهار گوشه تنظیم کنید یا آن را در یک نمای سفارشی رندر کنید.
کنترل های موقعیت AdChoices
کنترلهای موقعیت 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
ویژگی مشاهده سفارشی 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);
}
کنترل های ویدیویی
این بخش نحوه سفارشی کردن تجربه پخش برای تبلیغات ویدیویی را شرح می دهد. شما این امکان را دارید که حالت اولیه بی صدا را تنظیم کنید و کنترل های پخش سفارشی را پیاده سازی کنید.
رفتار بی صدا را شروع کنید
رفتار بیصدا شروع به شما امکان میدهد صدای شروع ویدیو را غیرفعال یا فعال کنید.
VideoOptions.Builder.setStartMuted()
را با یک مقدار boolean
فراخوانی کنید و NativeAdOptions.Builder.setVideoOptions()
را فراخوانی کنید.
رفتار خاموش شروع به طور پیش فرض فعال است.
وقتی غیرفعال است، برنامه شما درخواست میکند که ویدیو با صدا شروع شود.
وقتی فعال است، برنامه شما درخواست میکند که ویدیو باید با صدای بیصدا شروع شود.
مثال زیر نشان میدهد که چگونه میتوان ویدیو را با صدای بیصدا شروع کرد.
کاتلین
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()
کنترل های پخش سفارشی
این به شما امکان میدهد برای پخش، توقف یا بیصدا کردن ویدیو، کنترلهای ورودی ویدیوی سفارشی را درخواست کنید.
برای تنظیم حالت بیصدا کردن تبلیغات، با VideoOptions.Builder.setCustomControlsRequested()
تماس بگیرید.
کنترل پخش سفارشی به طور پیش فرض غیرفعال است.
وقتی غیرفعال باشد، ویدیوی شما کنترلهای ورودی ارائه شده از 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()
بررسی کنید که آیا کنترل های سفارشی فعال هستند یا خیر
از آنجایی که در زمان درخواست مشخص نیست که آیا آگهی بازگردانده شده اجازه کنترل ویدیوی سفارشی را میدهد یا خیر، باید بررسی کنید که آیا کنترلهای سفارشی فعال است یا خیر.
کاتلین
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();
}
}
}
};
رندر کنترل های ویدئویی سفارشی
کنترل های ویدئویی سفارشی را با استفاده از بهترین شیوه های زیر ارائه دهید:
- نمای کنترلهای سفارشی را بهعنوان فرزند نمای آگهی بومی ارائه کنید. این رویکرد به محاسبات قابلیت نمایش اندازه گیری باز اجازه می دهد تا کنترل های سفارشی را به عنوان یک مانع دوستانه در نظر بگیرند.
- از ارائه یک پوشش نامرئی بر روی کل نمای رسانه خودداری کنید. همپوشانیها، کلیکها را روی نمای رسانه مسدود میکنند و بر عملکرد تبلیغات بومی تأثیر منفی میگذارند. در عوض، یک روکش کوچک ایجاد کنید که به اندازه کافی بزرگ باشد تا کنترل ها را در خود جای دهد.
حرکات کلیک سفارشی
حرکات کلیک سفارشی یک ویژگی تبلیغاتی بومی است که امکان ثبت تند کشیدن روی بازدیدهای تبلیغاتی را به عنوان کلیک تبلیغاتی فراهم میکند. این برای کار با برنامههایی طراحی شده است که از حرکات کشیدن انگشت برای پیمایش محتوا استفاده میکنند. این راهنما نشان می دهد که چگونه می توان حرکات کلیک سفارشی را روی تبلیغات بومی خود فعال کرد.
NativeAdRequest.Builder.enableCustomClickGestureDirection()
را با یک NativeAd.SwipeGestureDirection
و یک مقدار boolean
فراخوانی کنید.
مثال زیر یک حرکت تند کشیدن سفارشی به سمت راست را پیادهسازی میکند و رفتار عادی برگه را حفظ میکند.
حرکات کلیک سفارشی به طور پیش فرض غیرفعال است.
وقتی غیرفعال باشد، برنامه شما از رفتار کلیک کردن معمولی پشتیبانی می کند.
وقتی فعال باشد، برنامه شما از حرکات کش رفتن سفارشی پشتیبانی می کند.
مثال زیر یک حرکت تند کشیدن سفارشی به سمت راست را پیادهسازی میکند و رفتار عادی برگه را حفظ میکند.
کاتلین
val adOptions = NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
/* tapsAllowed= */ true)
.build();
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
جاوا
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
/* tapsAllowed= */ true)
.build();
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
به رویدادهای ژست کشیدن انگشت گوش دهید
برای گوش دادن به رویدادهای حرکت حرکتی، NativeAd.setAdEventCallback()
را با NativeAdEventCallback
فراخوانی کنید و متد onAdSwipeGestureClicked()
را اجرا کنید.
کاتلین
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Implement the onAdSwipeGestureClicked() method.
val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
override fun onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
}
}
}
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback)
جاوا
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Implement the onAdSwipeGestureClicked() method.
NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
@Override
public void onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
};
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback);
میانجیگری
حرکات کلیک سفارشی فقط روی تبلیغات بومی که Google Mobile Ads SDK ارائه میکند، کار میکند. منابع تبلیغاتی که برای ارائه به SDK های شخص ثالث نیاز دارند ، به تنظیمات سفارشی جهت کلیک پاسخ نمی دهند.