تبلیغات ویدیویی بومی

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

پیش‌نیازها

محتوای GADMedia

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

شیء GADMediaContent حاوی اطلاعاتی مانند نسبت ابعاد و مدت زمان ویدیو است. قطعه کد زیر نحوه دریافت نسبت ابعاد و مدت زمان یک تبلیغ همسان را نشان می‌دهد.

سویفت

if myNativeAd.mediaContent.hasVideoContent {
  let mediaAspectRatio = CGFloat(myNativeAd.mediaContent.aspectRatio)
  let duration = myNativeAd.mediaContent.duration
}

هدف-سی

if(myNativeAd.mediaContent.hasVideoContent) {
  CGFloat mediaAspectRatio = myNativeAd.mediaContent.aspectRatio;
  NSTimeInterval duration = myNativeAd.mediaContent.duration;
}

کنترل‌کننده‌ی ویدئوی GAD

شیء GADMediaContent به یک شیء GADVideoController ارجاع می‌دهد. شیء GADVideoController به ناشران اجازه می‌دهد تا به رویدادهای ویدیویی پاسخ دهند.

تبلیغاتی که از طریق آیتم‌های خطی نمایش داده می‌شوند را می‌توان با GADVideoController نیز کنترل کرد.

این شیء GADVideoController را می‌توان با فراخوانی GADMediaContent.videoController به دست آورد.

فراخوانی‌های مجدد برای رویدادهای ویدیویی

برای مدیریت رویدادهای ویدیویی خاص، باید کلاسی بنویسید که پروتکل GADVideoControllerDelegate را پیاده‌سازی کند. متدهای این پروتکل همگی اختیاری هستند.

مثال زیر نحوه پیاده‌سازی پروتکل delegate را نشان می‌دهد:

سویفت

class ViewController: NativeAdLoaderDelegate, VideoControllerDelegate {
  private var adLoader: AdLoader?

  func viewDidLoad() {
    super.viewDidLoad()

    let videoOptions = VideoOptions()
    videoOptions.customControlsRequested = true
    adLoader = AdLoader(
        adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [.native],
        options: [videoOptions])
    adLoader?.delegate = self
    adLoader?.load(AdManagerRequest())

  }

  func adLoader(
      _ adLoader: AdLoader?,
      didReceive nativeAd: NativeAd?
  ) {
    // Set the videoController's delegate to be notified of video events.
    nativeAd?.mediaContent.videoController.delegate = self
  }

  // VideoControllerDelegate methods
  func videoControllerDidPlayVideo(_ videoController: VideoController) {
    // Implement this method to receive a notification when the video controller
    // begins playing the ad.
  }

  func videoControllerDidPauseVideo(_ videoController: VideoController) {
    // Implement this method to receive a notification when the video controller
    // pauses the ad.
  }

  func videoControllerDidEndVideoPlayback(_ videoController: VideoController) {
    // Implement this method to receive a notification when the video controller
    // stops playing the ad.
  }

  func videoControllerDidMuteVideo(_ videoController: VideoController) {
    // Implement this method to receive a notification when the video controller
    // mutes the ad.
  }

  func videoControllerDidUnmuteVideo(_ videoController: VideoController) {
    // Implement this method to receive a notification when the video controller
    // unmutes the ad.
  }
}

هدف-سی

@interface ViewController () <GADNativeAdLoaderDelegate,
    GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];

  GADVideoOptions *videoOptions = [[GADVideoOptions alloc] init];
  videoOptions.customControlsRequested = YES;
  self.adLoader =
      [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                         rootViewController:self
                                    adTypes:@[ GADAdLoaderAdTypeNative ]
                                    options:@[ videoOptions ]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GAMRequest request]];

}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the videoController's delegate to be notified of video events.
  nativeAd.mediaContent.videoController.delegate = self;
}

// GADVideoControllerDelegate methods
- (void)videoControllerDidPlayVideo:(nonnull GADVideoController *)videoController {
  // Implement this method to receive a notification when the video controller
  // begins playing the ad.
}

- (void)videoControllerDidPauseVideo:(nonnull GADVideoController *)videoController {
  // Implement this method to receive a notification when the video controller
  // pauses the ad.
}

- (void)videoControllerDidEndVideoPlayback:(nonnull GADVideoController *)videoController {
  // Implement this method to receive a notification when the video controller
  // stops playing the ad.
}

- (void)videoControllerDidMuteVideo:(nonnull GADVideoController *)videoController {
  // Implement this method to receive a notification when the video controller
  // mutes the ad.
}

- (void)videoControllerDidUnmuteVideo:(nonnull GADVideoController *)videoController {
  // Implement this method to receive a notification when the video controller
  // unmutes the ad.
}

@end

برای راهنمایی بیشتر در مورد نحوه ارائه تبلیغات بومی خود ، سیاست‌ها و دستورالعمل‌های تبلیغات بومی را مطالعه کنید.