تبلیغات بومی دارای بسیاری از ویژگیهای پیشرفته هستند که به شما امکان میدهند سفارشیسازیهای بیشتری انجام دهید و بهترین تجربه تبلیغات ممکن را داشته باشید. این راهنما به شما نشان می دهد که چگونه از ویژگی های پیشرفته تبلیغات بومی استفاده کنید.
پیش نیازها
- قالب تبلیغات بومی را ادغام کنید.
کنترل دارایی ها
کنترلهای نسبت ابعاد رسانه ترجیحی
کنترلهای نسبت ابعاد رسانه به شما این امکان را میدهد که ترجیحی برای نسبت ابعاد آگهیهای خلاقانه تعیین کنید.
NativeAdOptions.Builder.setMediaAspectRatio()
را با مقدار NativeAdOptions.MediaAspectRatio
فراخوانی کنید.
وقتی تنظیم نشود، آگهی برگشتی میتواند هر نسبت ابعادی رسانهای داشته باشد.
در صورت تنظیم، میتوانید با تعیین نوع ترجیحی نسبت ابعاد، تجربه کاربری را بهبود ببخشید.
مثال زیر به SDK دستور می دهد که تصویر یا ویدیوی برگشتی را با نسبت ابعادی خاص ترجیح دهد.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
کنترل دانلود تصویر
کنترل دانلود تصویر به شما امکان می دهد تصمیم بگیرید که دارایی های تصویر یا فقط URI ها توسط SDK برگردانده شوند.
NativeAdOptions.Builder.setReturnUrlsForImageAssets()
را با یک مقدار boolean
فراخوانی کنید.کنترل دانلود تصویر به طور پیش فرض غیرفعال است.
وقتی غیرفعال است، Google Mobile Ads SDK هم تصویر و هم URI را برای شما پر می کند.
هنگامی که فعال است، SDK در عوض فقط URI را پر می کند و به شما امکان می دهد تصاویر واقعی را به صلاحدید خود دانلود کنید.
مثال زیر به SDK دستور می دهد که فقط URI را برگرداند.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setReturnUrlsForImageAssets(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.forNativeAd(nativeAd -> {
List<Uri> imageUris = new ArrayList<>();
for (Image image : nativeAd.getImages()) {
imageUris.add(image.getUri());
}
})
.build();
کنترل های محموله تصویر
برخی از تبلیغات دارای یک سری تصاویر هستند نه فقط یک. از این ویژگی برای نشان دادن اینکه آیا برنامه شما آماده نمایش همه تصاویر است یا فقط یک عکس استفاده کنید.
NativeAdOptions.Builder.setRequestMultipleImages()
را با یک مقدار boolean
فراخوانی کنید.کنترلهای بارگذاری تصویر بهطور پیشفرض غیرفعال هستند.
وقتی غیرفعال است، برنامه شما به SDK دستور میدهد که فقط اولین تصویر را برای هر دارایی حاوی یک سری ارائه دهد.
وقتی فعال باشد، برنامه شما نشان میدهد که آماده است تا تمام تصاویر را برای هر دارایی که بیش از یک دارد نمایش دهد.
مثال زیر به SDK دستور می دهد چندین دارایی تصویر را برگرداند.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setRequestMultipleImages(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
قرار دادن AdChoices
کنترل های موقعیت AdChoices
کنترلهای موقعیت AdChoices به شما امکان میدهد انتخاب کنید که کدام گوشه نماد AdChoices را ارائه کنید.
NativeAdOptions.Builder.setAdChoicesPlacement()
با مقدار NativeAdOption.AdChoicesPlacement
فراخوانی کنید.
اگر تنظیم نشود، موقعیت نماد AdChoices در سمت راست بالا تنظیم می شود.
در صورت تنظیم، AdChoices بر اساس درخواست در موقعیت سفارشی قرار می گیرد.
مثال زیر نحوه تنظیم موقعیت تصویر سفارشی AdChoices را نشان می دهد.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
نمای سفارشی AdChoices
ویژگی مشاهده سفارشی AdChoices به شما امکان می دهد نماد AdChoices را در یک مکان سفارشی قرار دهید. این با کنترل های موقعیت AdChoices متفاوت است، که فقط اجازه می دهد تا یکی از چهار گوشه را مشخص کنید.
NativeAdView.setAdChoicesView()
با مقدار AdChoicesView
فراخوانی کنید. مثال زیر نحوه تنظیم نمای AdChoices سفارشی را با نماد AdChoices در داخل AdChoicesView
نشان می دهد.
public void onNativeAdLoaded(NativeAd ad) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
کنترل های ویدیویی
رفتار بی صدا را شروع کنید
رفتار بیصدا شروع به شما امکان میدهد صدای شروع ویدیو را غیرفعال یا فعال کنید.
VideoOptions.Builder.setStartMuted()
با یک مقدار boolean
فراخوانی کنید.رفتار خاموش شروع به طور پیش فرض فعال است.
وقتی غیرفعال است، برنامه شما درخواست میکند که ویدیو با صدا شروع شود.
وقتی فعال است، برنامه شما درخواست میکند که ویدیو باید با صدای بیصدا شروع شود.
مثال زیر نشان میدهد که چگونه میتوان ویدیو را با صدای بیصدا شروع کرد.
VideoOptions videoOptions = new VideoOptions.Builder()
.setStartMuted(false)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
کنترل های پخش سفارشی
این به شما امکان میدهد برای پخش، توقف یا بیصدا کردن ویدیو، کنترلهای ورودی ویدیوی سفارشی را درخواست کنید.
VideoOptions.Builder.setCustomControlsRequested()
با یک مقدار boolean
فراخوانی کنید.کنترل پخش سفارشی به طور پیش فرض غیرفعال است.
وقتی غیرفعال باشد، ویدیوی شما کنترلهای ورودی ارائه شده از SDK را نشان میدهد.
- اگر آگهی دارای محتوای ویدیویی است و کنترلهای سفارشی فعال هستند، باید کنترلهای سفارشی خود را همراه با آگهی نمایش دهید، زیرا خود آگهی هیچ کنترلی را نشان نمیدهد. سپس کنترل ها می توانند روش های مربوطه را در
VideoController
فراخوانی کنند.
مثال زیر نحوه درخواست یک ویدیو با کنترل های پخش سفارشی را نشان می دهد.
VideoOptions videoOptions = new VideoOptions.Builder()
.setCustomControlsRequested(true)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
بررسی کنید که آیا کنترل های سفارشی فعال هستند یا خیر
از آنجایی که در زمان درخواست مشخص نیست که آیا آگهی بازگردانده شده اجازه کنترل ویدیوی سفارشی را میدهد یا خیر، باید بررسی کنید که آیا کنترلهای سفارشی فعال است یا خیر.
جاوا
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
کاتلین
NativeAd.OnNativeAdLoadedListener { ad ->
val mediaContent = ad.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
}
رندر کنترل های ویدئویی سفارشی
کنترل های ویدئویی سفارشی را با استفاده از بهترین شیوه های زیر ارائه دهید:
- نمای کنترلهای سفارشی را بهعنوان فرزند نمای آگهی بومی ارائه کنید. این رویکرد تضمین میکند که محاسبات قابلیت نمایش اندازهگیری باز، کنترلهای سفارشی را به عنوان یک مانع دوستانه در نظر میگیرند.
- از ارائه یک پوشش نامرئی بر روی کل نمای رسانه خودداری کنید. همپوشانیها، کلیکها را روی نمای رسانه مسدود میکنند و بر عملکرد تبلیغات بومی تأثیر منفی میگذارند. در عوض، یک روکش کوچک ایجاد کنید که به اندازه کافی بزرگ باشد تا کنترل ها را در خود جای دهد.
حرکات کلیک سفارشی
حرکات کلیک سفارشی یک ویژگی تبلیغاتی بومی است که امکان ثبت تند کشیدن روی بازدیدهای تبلیغاتی را به عنوان کلیک تبلیغاتی فراهم میکند. این برای کار با برنامههایی طراحی شده است که از حرکات کشیدن انگشت برای پیمایش محتوا استفاده میکنند. این راهنما نشان می دهد که چگونه می توان حرکات کلیک سفارشی را روی تبلیغات بومی خود فعال کرد.
NativeAdOptions.Builder.enableCustomClickGestureDirection()
را با NativeAdOptions.SwipeGestureDirection
و یک boolean
برای نشان دادن اینکه آیا می خواهید ضربه ها به عنوان کلیک مجاز باشد تماس بگیرید.
حرکات کلیک سفارشی به طور پیش فرض غیرفعال است.
وقتی غیرفعال باشد، برنامه شما از رفتار کلیک کردن معمولی پشتیبانی می کند.
وقتی فعال باشد، برنامه شما از حرکات کش رفتن سفارشی پشتیبانی می کند.
مثال زیر یک حرکت تند کشیدن سفارشی به سمت راست را پیادهسازی میکند و رفتار عادی برگه را حفظ میکند.
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(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.
AdLoader.Builder builder = new AdLoader
.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions);
به رویدادهای ژست کشیدن انگشت گوش دهید
هنگامی که یک کلیک حرکت تند کشیدن ضبط میشود، Google Mobile Ads SDK متد onAdSwipeGestureClicked()
را در AdListener
، علاوه بر روش onAdClicked()
موجود فراخوانی میکند.
AdLoader adLoader = builder
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
Log.d(TAG, "A swipe gesture click has occurred.")
}
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
@Override
public void onAdClicked() {
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
})
.build();
میانجیگری
حرکات کلیک سفارشی فقط روی تبلیغات بومی که Google Mobile Ads SDK ارائه میکند، کار میکند. منابع تبلیغاتی که برای ارائه به SDK های شخص ثالث نیاز دارند ، به تنظیمات سفارشی جهت کلیک پاسخ نمی دهند.