โฆษณาคั่นระหว่างหน้าเป็นโฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนกว่าผู้ใช้จะปิด โฆษณาเหล่านี้มักแสดงที่จุดเปลี่ยนหน้าปกติในขณะที่ใช้งานแอป เช่น ระหว่างทํากิจกรรมต่างๆ หรือในช่วงหยุดชั่วคราวระหว่างเปลี่ยนด่านในเกม เมื่อแอปแสดงโฆษณาคั่นระหว่างหน้า ผู้ใช้จะมีตัวเลือกในการแตะโฆษณาและดําเนินการต่อไปยังปลายทาง หรือปิดและกลับมาที่แอป กรณีศึกษา
คู่มือนี้แสดงวิธีผสานรวมโฆษณาคั่นระหว่างหน้าลงในแอป iOS
สิ่งที่ต้องดำเนินการก่อน
- SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google เวอร์ชัน 8.0.0 ขึ้นไป
- ทําตามคู่มือเริ่มต้นใช้งานให้เสร็จสมบูรณ์
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป ให้ตรวจสอบว่าคุณใช้โฆษณาทดสอบแทนโฆษณาจริง มิเช่นนั้นอาจทําให้บัญชีถูกระงับ
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสําหรับโฆษณาคั่นระหว่างหน้าของ iOS โดยเฉพาะ
ca-app-pub-3940256099942544/4411468910
โปรเจ็กต์ได้รับการกําหนดค่าเป็นพิเศษให้แสดงโฆษณาทดสอบสําหรับคําขอทุกรายการ และคุณใช้งานได้ฟรีในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง อย่าลืม แทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทํางานของโฆษณาทดสอบของ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้ที่โฆษณาทดสอบ
การใช้งาน
ขั้นตอนหลักในการผสานรวมโฆษณาคั่นระหว่างหน้ามีดังนี้
- โหลดโฆษณา
- ลงทะเบียนสําหรับการติดต่อกลับ
- แสดงโฆษณาและจัดการกิจกรรมให้รางวัล
โหลดโฆษณา
การโหลดโฆษณาทําได้โดยใช้เมธอด 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
วิดีโอแนะนําเกี่ยวกับวิดีโอ Garage Mobile
เรื่องราวความสำเร็จ
ขั้นตอนถัดไป
- สร้างหน่วยโฆษณาคั่นระหว่างหน้าใน UI ของ AdMob หากยังไม่ได้สร้าง
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการกําหนดเป้าหมายโฆษณาและหลักเกณฑ์โฆษณาคั่นระหว่างหน้า *ดูข้อมูลเพิ่มเติมเกี่ยวกับความเป็นส่วนตัวของผู้ใช้