Quảng cáo có tặng thưởng dạng video là quảng cáo dạng video toàn màn hình mà người dùng có tùy chọn xem toàn bộ video để đổi lấy các phần thưởng trong ứng dụng.
Tài liệu hướng dẫn này trình bày cách tích hợp quảng cáo dạng video có tặng thưởng từ AdMob vào ứng dụng iOS.
Điều kiện tiên quyết
- Nhập SDK quảng cáo trên thiết bị di động của Google (dưới dạng một SDK riêng hoặc một phần của Firebase).
Yêu cầu quảng cáo có tặng thưởng dạng video
GADRewardBasedVideoAd có thiết kế singleton, vì vậy, ví dụ sau sẽ cho thấy một yêu cầu tải quảng cáo đang được thực hiện cho bản sao đã chia sẻ:
Swift
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
Objective-C
[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
Để cho phép tải trước video, bạn nên thực hiện lệnh gọi yêu cầu tải
càng sớm càng tốt (ví dụ: trong phương thức
application:didFinishLaunchingWithOptions:
của đại biểu ứng dụng).
Luôn kiểm tra bằng quảng cáo thử nghiệm
Khi tạo và thử nghiệm ứng dụng, hãy đảm bảo rằng bạn sử dụng quảng cáo thử nghiệm thay vì quảng cáo đang chạy thực tế. Lý do là vì nếu sử dụng quảng cáo đang chạy thực tế, tài khoản của bạn có thể bị tạm ngưng.
Cách dễ nhất để tải quảng cáo thử nghiệm là sử dụng ID đơn vị quảng cáo thử nghiệm dành riêng cho video có tặng thưởng iOS:
ca-app-pub-3940256099942544/1712485313
Quảng cáo này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm cho mọi yêu cầu và bạn có thể sử dụng quảng cáo này trong ứng dụng của riêng mình khi viết mã, thử nghiệm và gỡ lỗi. Bạn chỉ cần nhớ thay thế mã này bằng mã đơn vị quảng cáo của mình trước khi xuất bản ứng dụng.
Để biết thêm thông tin về cách hoạt động của quảng cáo thử nghiệm của SDK quảng cáo trên thiết bị di động, hãy xem bài viết Quảng cáo thử nghiệm.
Thiết lập thông báo sự kiện
Để thiết lập thông báo sự kiện, hãy chèn dòng in đậm trước lệnh gọi yêu cầu tải của bạn:
Swift
GADRewardBasedVideoAd.sharedInstance().delegate = self GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
Objective-C
[GADRewardBasedVideoAd sharedInstance].delegate = self; [[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
GADRewardBasedVideoAdDelegate
sẽ thông báo cho bạn về các sự kiện trong vòng đời của quảng cáo có tặng thưởng dạng video.
Bạn phải đặt đại biểu trước khi tải một quảng cáo. Sự kiện quan trọng nhất
trong đại biểu này là
rewardBasedVideoAd:didRewardUserWithReward:
,
sự kiện này sẽ được gọi khi người dùng được thưởng vì đã xem hết video. Bạn có thể
tùy ý triển khai các phương thức khác trong đại biểu này.
Mẫu sau đây minh họa cách ghi nhật ký từng sự kiện có sẵn trong
GADRewardBasedVideoAdDelegate:
.
Swift
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) { print("Reward received with currency: \(reward.type), amount \(reward.amount).") } func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd:GADRewardBasedVideoAd) { print("Reward based video ad is received.") } func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Opened reward based video ad.") } func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad started playing.") } func rewardBasedVideoAdDidCompletePlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad has completed.") } func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad is closed.") } func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad will leave application.") } func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didFailToLoadWithError error: Error) { print("Reward based video ad failed to load.") }
Objective-C
- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd didRewardUserWithReward:(GADAdReward *)reward { NSString *rewardMessage = [NSString stringWithFormat:@"Reward received with currency %@ , amount %lf", reward.type, [reward.amount doubleValue]]; NSLog(rewardMessage); } - (void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad is received."); } - (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Opened reward based video ad."); } - (void)rewardBasedVideoAdDidStartPlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad started playing."); } - (void)rewardBasedVideoAdDidCompletePlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad has completed."); } - (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad is closed."); } - (void)rewardBasedVideoAdWillLeaveApplication:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad will leave application."); } - (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd didFailToLoadWithError:(NSError *)error { NSLog(@"Reward based video ad failed to load."); }
Hiển thị quảng cáo video có tặng thưởng
Đó là phương pháp hay nhất để đảm bảo rằng một quảng cáo có tặng thưởng dạng video đã tải xong trước khi thử hiển thị quảng cáo đó. Phương thức
isReady
cho biết rằng yêu cầu quảng cáo dạng video có tặng thưởng đã được thực hiện
thành công:
Swift
if GADRewardBasedVideoAd.sharedInstance().isReady == true { GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self) }
Objective-C
if ([[GADRewardBasedVideoAd sharedInstance] isReady]) { [[GADRewardBasedVideoAd sharedInstance] presentFromRootViewController:self]; }
Tải lại quảng cáo dạng video có tặng thưởng
rewardBasedVideoAdDidClose:
.
là vị trí thuận tiện để tải quảng cáo dạng video có tặng thưởng mới sau khi hiển thị quảng cáo trước đó.
Swift
func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313") }
Objective-C
- (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd { [[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"]; }
Các tài nguyên khác
Các mẫu quảng cáo video có tặng thưởng trên GitHub:
Video hướng dẫn về Trung tâm quảng cáo trên thiết bị di động
- Quy trình triển khai quảng cáo có tặng thưởng dạng video
- Quảng cáo có tặng thưởng dạng video trong Unity
Phòng thí nghiệm mã
Các bước tiếp theo
- Tạo đơn vị quảng cáo video có tặng thưởng riêng trong giao diện người dùng AdMob.
- Tìm hiểu cách hiển thị quảng cáo có tặng thưởng dạng video trong các trò chơi Unity.
- Hãy thử dùng định dạng quảng cáo khác: