گزینه های تبلیغات بومی

پلتفرم مورد نظر را انتخاب کنید: اندروید، iOS

تبلیغات بومی ویژگی‌های پیشرفته‌ی زیادی دارند که به شما امکان می‌دهد سفارشی‌سازی‌های بیشتری انجام دهید و بهترین تجربه‌ی تبلیغاتی ممکن را ایجاد کنید. این راهنما به شما نشان می‌دهد که چگونه از ویژگی‌های پیشرفته‌ی تبلیغات بومی استفاده کنید.

پیش‌نیازها

کنترل دارایی‌ها

این بخش جزئیات نحوه سفارشی‌سازی محتوای خلاقانه در تبلیغات بومی شما را شرح می‌دهد. شما می‌توانید نسبت ابعاد دلخواه را برای محتوای رسانه‌ای و نحوه دانلود و نمایش محتوای تصویری مشخص کنید.

کنترل‌های نسبت ابعاد رسانه ترجیحی

کنترل‌های نسبت ابعاد رسانه به شما امکان می‌دهند اولویتی را برای نسبت ابعاد تبلیغات مشخص کنید.

GADNativeAdMediaAdLoaderOptions mediaAspectRatio با GADMediaAspectRatio تنظیم کنید.

  • وقتی تنظیم نشده باشد، تبلیغ برگردانده شده می‌تواند هر نسبت ابعاد رسانه‌ای داشته باشد.

  • وقتی این تنظیم شد، می‌توانید با مشخص کردن نوع نسبت تصویر دلخواه، تجربه کاربری را بهبود بخشید.

مثال زیر به SDK دستور می‌دهد که تصویر یا ویدیوی برگشتی با نسبت ابعاد خاص را ترجیح دهد.

سویفت

let nativeOptions = NativeAdMediaAdLoaderOptions()
nativeOptions.mediaAspectRatio = .any

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

هدف-سی

GADNativeAdMediaAdLoaderOptions *nativeOptions = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOptions.mediaAspectRatio = GADMediaAspectRatioAny;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

nativeAdUnitID با شناسه واحد تبلیغاتی خود جایگزین کنید.

کنترل دانلود تصویر

کنترل دانلود تصویر به شما امکان می‌دهد تصمیم بگیرید که آیا فایل‌های تصویر یا فقط URIها توسط SDK بازگردانده شوند.

GADNativeAdImageAdLoaderOptions disableImageLoading با مقدار BOOL تنظیم کنید.

  • کنترل دانلود تصویر به طور پیش‌فرض غیرفعال است.

  • وقتی غیرفعال باشد، SDK تبلیغات موبایلی گوگل هم تصویر و هم URI را برای شما پر می‌کند.

  • وقتی این گزینه فعال باشد، SDK فقط URI را پر می‌کند و به شما امکان می‌دهد تصاویر واقعی را به دلخواه خود دانلود کنید.

مثال زیر به SDK دستور می‌دهد که فقط URI را برگرداند.

سویفت

let nativeOptions = NativeAdImageAdLoaderOptions()
nativeOptions.isImageLoadingDisabled = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

هدف-سی

GADNativeAdImageAdLoaderOptions *nativeOptions = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOptions.disableImageLoading = YES;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

کنترل‌های بارگذاری تصویر

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

  • کنترل‌های بارگذاری تصویر به طور پیش‌فرض غیرفعال هستند.

  • وقتی غیرفعال باشد، برنامه شما به SDK دستور می‌دهد که فقط اولین تصویر را برای هر فایلی که حاوی یک سری است، ارائه دهد.

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

مثال زیر به SDK دستور می‌دهد که چندین تصویر را برگرداند.

سویفت

let nativeOptions = NativeAdImageAdLoaderOptions()
nativeOptions.shouldRequestMultipleImages = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

هدف-سی

GADNativeAdImageAdLoaderOptions *nativeOptions = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOptions.shouldRequestMultipleImages = YES;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

جایگاه‌های AdChoices

این بخش جزئیات نحوه قرارگیری پوشش AdChoices را شرح می‌دهد. شما می‌توانید محل قرارگیری آن را در یکی از چهار گوشه تنظیم کنید یا آن را در یک نمای سفارشی نمایش دهید.

کنترل‌های موقعیت AdChoices

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

مقدار GADNativeAdViewAdOptions preferredAdChoicesPosition به GADAdChoicesPosition تغییر دهید.

  • اگر تنظیم نشده باشد، موقعیت آیکون AdChoices در بالا سمت راست تنظیم می‌شود.

  • در صورت تنظیم، AdChoices طبق درخواست در موقعیت سفارشی قرار می‌گیرد.

مثال زیر نحوه تنظیم موقعیت تصویر سفارشی AdChoices را نشان می‌دهد.

سویفت

let nativeOptions = NativeAdViewAdOptions()
nativeOptions.preferredAdChoicesPosition = .topRightCorner

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

هدف-سی

GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopRightCorner;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

نمای سفارشی AdChoices

ویژگی نمای سفارشی AdChoices به شما امکان می‌دهد آیکون AdChoices را در یک مکان سفارشی قرار دهید. این با کنترل‌های موقعیت AdChoices متفاوت است که فقط امکان تعیین یکی از چهار گوشه را فراهم می‌کند.

قبل از رندر کردن، ویژگی GADNativeAd.adChoicesView را با یک GADAdChoicesView تنظیم کنید و محتوای AdChoices درون GADAdChoicesView رندر می‌شود.

مثال زیر نحوه تنظیم یک نمای AdChoices سفارشی را نشان می‌دهد. آیکون AdChoices درون GADAdChoicesView رندر می‌شود:

سویفت

private func createAdChoicesView(nativeAdView: NativeAdView) {
  // Define a custom position for the AdChoices icon.
  let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
  let customAdChoicesView = AdChoicesView(frame: customRect)
  nativeAdView.addSubview(customAdChoicesView)
  nativeAdView.adChoicesView = customAdChoicesView
}

هدف-سی

- (void)createAdChoicesViewWithNativeAdView:(GADNativeAdView *)nativeAdView {
  // Define a custom position for the AdChoices icon.
  CGRect customRect = CGRectMake(100, 100, 15, 15);
  GADAdChoicesView *customAdChoicesView = [[GADAdChoicesView alloc] initWithFrame:customRect];
  [nativeAdView addSubview:customAdChoicesView];
  nativeAdView.adChoicesView = customAdChoicesView;
}

کنترل‌های ویدیویی

این بخش جزئیات نحوه سفارشی‌سازی تجربه پخش برای تبلیغات ویدیویی را شرح می‌دهد. شما می‌توانید حالت بی‌صدای اولیه را تنظیم کرده و کنترل‌های پخش سفارشی را پیاده‌سازی کنید.

شروع رفتار بی‌صدا

حالت بی‌صدا در شروع به شما امکان می‌دهد صدای شروع ویدیو را غیرفعال یا فعال کنید.

مقدار GADVideoOptions startMuted از نوع BOOL تنظیم کنید.

  • رفتار بی‌صدا کردنِ شروع به طور پیش‌فرض فعال است.

  • وقتی غیرفعال باشد، برنامه شما درخواست می‌کند که ویدیو با صدا شروع شود.

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

مثال زیر نحوه شروع ویدیو با صدای بدون صدا را نشان می‌دهد.

سویفت

let videoOptions = VideoOptions()
videoOptions.shouldStartMuted = false

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [videoOptions])

هدف-سی

GADVideoOptions *videoOptions = [[GADVideoOptions alloc] init];
videoOptions.startMuted = NO;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ videoOptions ]];

کنترل‌های پخش سفارشی

این به شما امکان می‌دهد کنترل‌های ورودی ویدیوی سفارشی را برای پخش، مکث یا بی‌صدا کردن ویدیو درخواست کنید.

مقدار BOOL را برای GADVideoOptions customControlsRequested تنظیم کنید.

  • کنترل پخش سفارشی به طور پیش‌فرض غیرفعال است.

  • وقتی غیرفعال باشد، ویدیوی شما کنترل‌های ورودی رندر شده توسط SDK را نشان می‌دهد.

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

GADVideoController

مثال زیر نحوه درخواست یک ویدیو با کنترل‌های پخش سفارشی را نشان می‌دهد.

سویفت

let videoOptions = VideoOptions()
videoOptions.areCustomControlsRequested = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [videoOptions])

هدف-سی

GADVideoOptions *videoOptions = [[GADVideoOptions alloc] init];
videoOptions.customControlsRequested = YES;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ videoOptions ]];

بررسی کنید که آیا کنترل‌های سفارشی فعال هستند یا خیر

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

سویفت

private func checkCustomControlsEnabled(nativeAd: NativeAd) -> Bool {
  let videoController = nativeAd.mediaContent.videoController
  return videoController.areCustomControlsEnabled
}

هدف-سی

- (BOOL)checkCustomControlsEnabledWithNativeAd:(GADNativeAd *)nativeAd {
  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  return videoController.customControlsEnabled;
}

کنترل‌های ویدیویی سفارشی را رندر کنید

کنترل‌های ویدیویی سفارشی را با استفاده از بهترین شیوه‌های زیر رندر کنید:

  1. نمای کنترل‌های سفارشی را به عنوان فرزند نمای تبلیغات بومی رندر کنید. این رویکرد به محاسبات قابلیت مشاهده اندازه‌گیری باز اجازه می‌دهد تا کنترل‌های سفارشی را به عنوان یک مانع دوستانه در نظر بگیرند.
  2. از ایجاد یک لایه نامرئی روی کل نمای رسانه خودداری کنید. لایه‌های اضافی مانع از کلیک روی نمای رسانه می‌شوند و بر عملکرد تبلیغات بومی تأثیر منفی می‌گذارند. در عوض، یک لایه کوچک ایجاد کنید که به اندازه کافی بزرگ باشد تا کنترل‌ها را در خود جای دهد.

حرکات کلیک سفارشی

حرکات کلیک سفارشی یک ویژگی تبلیغات بومی است که امکان می‌دهد کشیدن انگشت روی نمایش تبلیغات به عنوان کلیک تبلیغ ثبت شود. این ویژگی برای کار با برنامه‌هایی طراحی شده است که از حرکات کشیدن انگشت برای پیمایش محتوا استفاده می‌کنند. این راهنما نحوه فعال کردن حرکات کلیک سفارشی در تبلیغات بومی شما را نشان می‌دهد.

یک نمونه از GADNativeAdCustomClickGestureOptions را با جهت کشیدن انگشت انتخابی خود مقداردهی اولیه کنید. همچنین باید مشخص کنید که آیا می‌خواهید ضربه‌ها به عنوان کلیک در نظر گرفته شوند یا خیر.

  • حرکات کلیک سفارشی به طور پیش‌فرض غیرفعال است.

  • وقتی غیرفعال باشد، فقط ضربه‌ها به عنوان کلیک حساب می‌شوند.

  • وقتی فعال باشد، حرکات کشیدن انگشت به عنوان کلیک شمرده می‌شوند و می‌توانید مشخص کنید که آیا ضربه‌ها همچنان به عنوان کلیک محسوب می‌شوند یا خیر.

مثال زیر به شما نشان می‌دهد که چگونه یک حرکت کشیدن انگشت به سمت راست سفارشی را پیاده‌سازی کنید و رفتار ضربه زدن معمولی را حفظ کنید.

سویفت

let swipeGestureOptions = NativeAdCustomClickGestureOptions(
  swipeGestureDirection: .right,
  tapsAllowed: true)

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [swipeGestureOptions])

هدف-سی

GADNativeAdCustomClickGestureOptions *swipeGestureOptions =
    [[GADNativeAdCustomClickGestureOptions alloc]
        initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
                          tapsAllowed:YES];

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ swipeGestureOptions ]];

به رویدادهای ژست کشیدن انگشت گوش دهید

وقتی یک کلیک با حرکت کشیدن انگشت ثبت می‌شود، SDK تبلیغات موبایل گوگل، علاوه بر متد nativeAdDidRecordSwipeGestureClick: delegate موجود در GADNativeAdDelegate ، متد nativeAdDidRecordClick: delegate را نیز فراخوانی می‌کند.

سویفت

// Called when a swipe gesture click is recorded, as configured in
// NativeAdCustomClickGestureOptions.
func nativeAdDidRecordSwipeGestureClick(_ nativeAd: NativeAd) {
  print("A swipe gesture click has occurred.")
}

// Called when a swipe gesture click or a tap click is recorded.
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
  print("A swipe gesture click or tap click has occurred.")
}

هدف-سی

// Called when a swipe gesture click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click has occurred.");
}

// Called when a swipe gesture click or a tap click is recorded.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click or tap click has occurred.");
}

میانجیگری

حرکات کلیک سفارشی فقط روی تبلیغات بومی که SDK تبلیغات موبایل گوگل رندر می‌کند، کار می‌کنند. منابع تبلیغاتی که برای رندر به SDK های شخص ثالث نیاز دارند ، به تنظیمات مسیرهای کلیک سفارشی پاسخ نمی‌دهند.