โฆษณาวิดีโอเนทีฟ

ข้อกำหนดเบื้องต้น

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

Callback สําหรับเหตุการณ์วิดีโอ

หากต้องการจัดการเหตุการณ์วิดีโอที่เฉพาะเจาะจง คุณต้องเขียนคลาสที่ใช้โปรโตคอล GADVideoControllerDelegate วิธีการของโปรโตคอลทั้งหมดเป็นค่าที่ไม่บังคับ

ตัวอย่างต่อไปนี้แสดงวิธีใช้โปรโตคอลการมอบสิทธิ์

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

อ่านนโยบายและหลักเกณฑ์เกี่ยวกับโฆษณาเนทีฟเพื่อดูคําแนะนําเพิ่มเติมเกี่ยวกับวิธีแสดงโฆษณาเนทีฟ