Vorbereitung
- Natives Anzeigenformat einbinden
GADMediaContent
Native Anzeigen bieten Zugriff auf eine GADMediaContent
-Klasse, mit der Informationen zu Medieninhalten abgerufen werden können, z. B. zu Videos oder Bildern. Außerdem wird es verwendet, um die Wiedergabe von Videoanzeigen zu steuern und auf Wiedergabeereignisse zu achten. Sie können über die .mediaContent
-Property in der Anzeige auf das Objekt mit den Medieninhalten zugreifen.
Das GADMediaContent
-Objekt enthält Informationen wie das Seitenverhältnis und die Dauer des Videos. Im folgenden Snippet wird gezeigt, wie Sie das Seitenverhältnis und die Dauer einer nativen Anzeige abrufen.
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 über die GADVideoController
gesteuert werden.
Dieses GADVideoController
-Objekt kann durch Aufrufen von GADMediaContent.videoController
abgerufen werden.
Callbacks für Videoereignisse
Wenn du bestimmte Videoereignisse verarbeiten möchtest, musst du eine Klasse schreiben, die das Protokoll GADVideoControllerDelegate
implementiert. Die Methoden des Protokolls sind alle optional.
Das folgende Beispiel zeigt, wie das Delegate-Protokoll implementiert wird:
Swift
class ViewController: GADNativeAdLoaderDelegate, GADVideoControllerDelegate { private var adLoader: GADAdLoader? func viewDidLoad() { super.viewDidLoad() let videoOptions = GADVideoOptions() videoOptions.customControlsRequested = true adLoader = GADAdLoader( adUnitID: "ca-app-pub-3940256099942544/3986624511", rootViewController: self, adTypes: [GADAdLoaderAdTypeNative], options: [videoOptions]) adLoader?.delegate = self adLoader?.load(GADRequest()) } func adLoader( _ adLoader: GADAdLoader?, didReceive nativeAd: GADNativeAd? ) { // Set the videoController's delegate to be notified of video events. nativeAd?.mediaContent.videoController.delegate = self } // GADVideoControllerDelegate methods func videoControllerDidPlayVideo(_ videoController: GADVideoController) { // Implement this method to receive a notification when the video controller // begins playing the ad. } func videoControllerDidPauseVideo(_ videoController: GADVideoController) { // Implement this method to receive a notification when the video controller // pauses the ad. } func videoControllerDidEndVideoPlayback(_ videoController: GADVideoController) { // Implement this method to receive a notification when the video controller // stops playing the ad. } func videoControllerDidMuteVideo(_ videoController: GADVideoController) { // Implement this method to receive a notification when the video controller // mutes the ad. } func videoControllerDidUnmuteVideo(_ videoController: GADVideoController) { // 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.