Vorbereitung
- Integrieren Sie das Format für native Anzeigen.
GADMediaContent
Native Anzeigen bieten Zugriff auf eine GADMediaContent
-Klasse, mit der Informationen zu Medieninhalten abgerufen werden. Es kann sich dabei um ein Video oder ein Bild handeln. Außerdem wird das Objekt verwendet, um die Wiedergabe von Videoanzeigen zu steuern und auf Wiedergabeereignisse zu warten. Sie können über die .mediaContent
-Property der Anzeige auf das Media-Inhaltsobjekt zugreifen.
Das Objekt GADMediaContent
enthält Informationen wie das Seitenverhältnis und die Dauer des Videos. Im folgenden Snippet sehen Sie, wie das Seitenverhältnis und die Dauer einer nativen Anzeige abgerufen werden.
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
Das GADMediaContent
-Objekt enthält einen Verweis auf ein GADVideoController
-Objekt. Mit dem GADVideoController
-Objekt können Publisher auf Videoereignisse reagieren.
Anzeigen, die über Werbebuchungen ausgeliefert werden, können auch mit dem GADVideoController
gesteuert werden.
Dieses GADVideoController
-Objekt kann durch Aufrufen von GADMediaContent.videoController
abgerufen werden.
Callbacks für Videoereignisse
Wenn Sie bestimmte Videoereignisse verarbeiten möchten, müssen Sie eine Klasse schreiben, die das GADVideoControllerDelegate
-Protokoll implementiert. Die Methoden des Protokolls sind alle optional.
Das folgende Beispiel zeigt, wie das Delegatenprotokoll implementiert wird:
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
Weitere Informationen zum Rendern nativer Anzeigen finden Sie in den Richtlinien für native Anzeigen.