پاسخ دادن به رویدادهای ویدیو

پلاتفرم را انتخاب کنید: Android iOS Android (قدیمی)

پیش‌نیازها

GADMediaContent

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

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

Swift

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;
}

GADVideoController

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

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

فراخوانی‌های برگشتی برای رویدادهای ویدیویی

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

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

Swift

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(Request())

  }

  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:[GADRequest 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

برای راهنمایی بیشتر درباره نحوه ارائه آگهی‌های بومی، خط‌مشی‌ها و رهنمودهای آگهی‌های بومی را بخوانید.