דרישות מוקדמות
- מטמיעים את פורמט המודעות המותאמות.
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
של Google. השיטות של הפרוטוקול הן אופציונליות.
בדוגמה הבאה אפשר לראות איך מטמיעים את פרוטוקול הענקת הגישה:
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
לקרוא את המדיניות בנושא מודעות מותאמות קווים מנחים נוספים. כדי לעבד את המודעות המותאמות.