الرد على أحداث الفيديو

اختيار النظام الأساسي: Android iOS Android (قديم)

المتطلبات الأساسية

GADMediaContent

تتيح "الإعلانات المدمجة مع المحتوى" الوصول إلى فئة GADMediaContent تُستخدَم للحصول على معلومات عن محتوى الوسائط الذي يمكن أن يكون فيديو أو صورة. ويتم استخدامها أيضًا للتحكّم في تشغيل إعلانات الفيديو والاستماع إلى أحداث التشغيل. يمكنك الوصول إلى عنصر محتوى الوسائط من خلال السمة .mediaContent في الإعلان.

يحتوي العنصر GADMediaContent على معلومات مثل نسبة العرض إلى الارتفاع ومدة الفيديو. يوضّح المقتطف أدناه كيفية الحصول على نسبة العرض إلى الارتفاع ومدة "الإعلان المدمج مع المحتوى".

Swift

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

Objective-C

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

GADVideoController

يحتوي عنصر GADMediaContent على مرجع لعنصر GADVideoController. يتيح عنصر 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(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.
  }
}

Objective-C

@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

اطّلِع على سياسات وإرشادات "الإعلانات المدمجة مع المحتوى" لمزيد من الإرشادات حول كيفية عرض "الإعلانات المدمجة مع المحتوى".