โฆษณาคั่นระหว่างหน้า

โฆษณาคั่นระหว่างหน้าเป็นโฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนกว่าผู้ใช้จะปิด โฆษณาเหล่านี้มักแสดงที่จุดเปลี่ยนหน้าปกติในขณะที่ใช้งานแอป เช่น ระหว่างทํากิจกรรมต่างๆ หรือในช่วงหยุดชั่วคราวระหว่างเปลี่ยนด่านในเกม เมื่อแอปแสดงโฆษณาคั่นระหว่างหน้า ผู้ใช้จะมีตัวเลือกในการแตะโฆษณาและดําเนินการต่อไปยังปลายทาง หรือปิดและกลับมาที่แอป กรณีศึกษา

คู่มือนี้แสดงวิธีผสานรวมโฆษณาคั่นระหว่างหน้าลงในแอป iOS

สิ่งที่ต้องดำเนินการก่อน

ทดสอบด้วยโฆษณาทดสอบเสมอ

เมื่อสร้างและทดสอบแอป ให้ตรวจสอบว่าคุณใช้โฆษณาทดสอบแทนโฆษณาจริง มิเช่นนั้นอาจทําให้บัญชีถูกระงับ

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสําหรับโฆษณาคั่นระหว่างหน้าของ iOS โดยเฉพาะ
ca-app-pub-3940256099942544/4411468910

โปรเจ็กต์ได้รับการกําหนดค่าเป็นพิเศษให้แสดงโฆษณาทดสอบสําหรับคําขอทุกรายการ และคุณใช้งานได้ฟรีในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง อย่าลืม แทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทํางานของโฆษณาทดสอบของ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้ที่โฆษณาทดสอบ

การใช้งาน

ขั้นตอนหลักในการผสานรวมโฆษณาคั่นระหว่างหน้ามีดังนี้

  1. โหลดโฆษณา
  2. ลงทะเบียนสําหรับการติดต่อกลับ
  3. แสดงโฆษณาและจัดการกิจกรรมให้รางวัล

โหลดโฆษณา

การโหลดโฆษณาทําได้โดยใช้เมธอด loadWithAdUnitID:request:completionHandler: แบบคงที่ในชั้นเรียน GADInterstitialAd วิธีการโหลดกําหนดให้ใช้รหัสหน่วยโฆษณา ออบเจ็กต์ GADRequest และเครื่องจัดการจนเสร็จสมบูรณ์ ซึ่งระบบจะเรียกใช้เมื่อโหลดโฆษณาสําเร็จหรือไม่สําเร็จ ออบเจ็กต์ GADInterstitialAd ที่โหลดไว้ให้เป็นพารามิเตอร์ในเครื่องจัดการจนเสร็จสมบูรณ์ ตัวอย่างด้านล่างแสดงวิธีโหลด GADInterstitialAd ในชั้นเรียน ViewController

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

ลงทะเบียนสําหรับการติดต่อกลับ

หากต้องการรับการแจ้งเตือนสําหรับเหตุการณ์งานนําเสนอ คุณต้องใช้โปรโตคอล GADFullScreenContentDelegate และกําหนดให้กับพร็อพเพอร์ตี้ fullScreenContentDelegate ของโฆษณาที่แสดงผล โปรโตคอล GADFullScreenContentDelegate จะจัดการการเรียกกลับสําหรับโฆษณาที่แสดงสําเร็จหรือไม่สําเร็จ และเมื่อมีการปิดโฆษณา โค้ดต่อไปนี้แสดงวิธีใช้โปรโตคอลและกําหนดให้กับโฆษณา

Swift

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
   NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd เป็นออบเจ็กต์แบบใช้ครั้งเดียว ซึ่งหมายความว่าเมื่อโฆษณาคั่นระหว่างหน้าแสดงขึ้นแล้ว จะไม่แสดงอีก แนวทางปฏิบัติแนะนําคือการโหลดโฆษณาคั่นระหว่างหน้าอีกรายการหนึ่งโดยใช้เมธอด adDidDismissFullScreenContent: ใน GADFullScreenContentDelegate เพื่อให้โฆษณาคั่นระหว่างหน้าถัดไปเริ่มโหลดทันทีที่ปิดโฆษณาก่อนหน้า

แสดงโฆษณา

โฆษณาคั่นระหว่างหน้าควรแสดงระหว่างการหยุดแสดงแอปตามปกติ การใช้ด่านต่างๆ ของเกมเป็นตัวอย่างที่ดีมากหรือหลังจากที่ผู้ใช้ทํางานเสร็จ นี่คือตัวอย่างของวิธีดําเนินการในวิธีUIViewController

Swift

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

Objective-C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

แนวทางปฏิบัติแนะนำ

พิจารณาว่าโฆษณาคั่นระหว่างหน้าเป็นประเภทโฆษณาที่เหมาะสมกับแอปของคุณหรือไม่
โฆษณาคั่นระหว่างหน้าทํางานได้ดีที่สุดในแอปที่มีจุดเปลี่ยนที่เป็นธรรมชาติ การสรุปงานภายในแอป เช่น การแชร์รูปภาพหรือการเล่นเกมจบด่าน ทําให้เกิดจุดนั้นๆ เนื่องจากผู้ใช้คาดหวังว่าจะหยุดพัก จึงทําให้ง่ายต่อการแสดงโฆษณาคั่นระหว่างหน้าโดยไม่รบกวนประสบการณ์ของผู้ใช้ ตรวจสอบว่าคุณพิจารณาว่าจุดใดในเวิร์กโฟลว์ของแอปที่จะแสดงโฆษณาคั่นระหว่างหน้าและวิธีที่ผู้ใช้มีแนวโน้มที่จะตอบสนอง
อย่าลืมหยุดการดําเนินการชั่วคราวเมื่อแสดงโฆษณาคั่นระหว่างหน้า
โฆษณาคั่นระหว่างหน้ามีหลายประเภท เช่น ข้อความ รูปภาพ วิดีโอ และอื่นๆ โปรดทราบว่าเมื่อแอปแสดงโฆษณาคั่นระหว่างหน้า แอปก็จะระงับการใช้ทรัพยากรบางอย่างเพื่อให้โฆษณานั้นๆ ใช้ประโยชน์จากโฆษณาดังกล่าวได้ เช่น เมื่อคุณโทรออกเพื่อแสดงโฆษณาคั่นระหว่างหน้า อย่าลืมหยุดเอาต์พุตเสียงที่แอปสร้างขึ้นไว้ชั่วคราว คุณสามารถเล่นเสียงต่อได้ในเครื่องจัดการเหตุการณ์ adDidDismissFullScreenContent: ซึ่งระบบจะเรียกใช้เมื่อผู้ใช้โต้ตอบกับโฆษณาเสร็จแล้ว นอกจากนี้ ให้พิจารณาหยุดงานคํานวณอย่างหนักหน่วง ชั่วคราว (เช่น การวนซ้ําเกม) ขณะแสดงโฆษณา ซึ่งจะทําให้มั่นใจได้ว่าผู้ใช้ไม่เห็นกราฟิกที่ช้าหรือไม่ตอบสนอง หรือวิดีโอกระตุก
เผื่อเวลาโหลดให้เพียงพอ
คุณควรตรวจสอบว่าโฆษณาคั่นระหว่างหน้าแสดงในเวลาที่เหมาะสม สิ่งสําคัญคือต้องตรวจสอบว่าผู้ใช้ไม่ต้องรอให้โหลด การโหลดโฆษณาล่วงหน้าก่อนที่คุณจะแสดง จะช่วยให้แน่ใจว่าแอปมีโฆษณาคั่นระหว่างหน้าพร้อมโหลดพร้อมแล้วเมื่อถึงเวลาแสดงโฆษณา
อย่าแสดงโฆษณาต่อผู้ใช้มากเกินไป
แม้ว่าการเพิ่มความถี่ของโฆษณาคั่นระหว่างหน้าในแอปอาจดูเป็นวิธีที่ดีในการเพิ่มรายได้ แต่ก็อาจลดประสบการณ์ของผู้ใช้และทําให้อัตราการคลิกผ่านลดลงด้วย ตรวจสอบว่าไม่ได้มีการรบกวนผู้ใช้บ่อยเกินไปจนทําให้ไม่สามารถใช้แอปได้อีกต่อไป
อย่าใช้การเรียกกลับเพื่อโหลดจนเสร็จสมบูรณ์เพื่อแสดงโฆษณาคั่นระหว่างหน้า
อาจทําให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี แต่ให้โหลดโฆษณาล่วงหน้าก่อนที่จะแสดง จากนั้นตรวจสอบเมธอด canPresentFromRootViewController:error: ใน GADInterstitialAd เพื่อดูว่าพร้อมแสดงหรือไม่

แหล่งข้อมูลเพิ่มเติม

ตัวอย่างใน GitHub

  • ตัวอย่างโฆษณาคั่นระหว่างหน้า เช่น Swift | Object--C

วิดีโอแนะนําเกี่ยวกับวิดีโอ Garage Mobile

เรื่องราวความสำเร็จ

ขั้นตอนถัดไป