Quảng cáo gốc là nội dung quảng cáo hiển thị cho người dùng thông qua các thành phần giao diện người dùng là nguồn gốc của nền tảng. Các ứng dụng đó sẽ xuất hiện bằng cách sử dụng cùng một lớp mà bạn đã sử dụng trong bảng phân cảnh của bạn và có thể được định dạng cho phù hợp với thiết kế trực quan của ứng dụng.
Khi một quảng cáo gốc tải, ứng dụng của bạn sẽ nhận được một đối tượng quảng cáo có chứa các thành phần của quảng cáo đó. và ứng dụng—thay vì SDK quảng cáo trên thiết bị di động của Google—khi đó chịu trách nhiệm hiển thị các quảng cáo đó.
Nói chung, có hai phần để triển khai thành công quảng cáo gốc: Tải quảng cáo bằng SDK, sau đó hiển thị nội dung quảng cáo trong ứng dụng của bạn.
Trang này cho biết cách sử dụng SDK để tải quảng cáo gốc.
Điều kiện tiên quyết
- Xem hết Hướng dẫn bắt đầu sử dụng.
Luôn thử nghiệm bằng quảng cáo thử nghiệm
Khi tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo thực tế.
Cách dễ nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành riêng cho quảng cáo gốc trên iOS:
ca-app-pub-3940256099942544/3986624511
Mã 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 nó trong ứng dụng của riêng bạn khi lập trình, thử nghiệm và gỡ lỗi. Hãy đảm bảo rằng bạn hãy thay thế mã này bằng mã đơn vị quảng cáo của riêng bạn 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 của Google trên thiết bị di động, hãy xem Quảng cáo thử nghiệm.
Tải quảng cáo
Quảng cáo gốc được tải bằng
GADAdLoader
để gửi thông báo cho người được uỷ quyền theo
GADAdLoaderDelegate
giao thức.
Khởi chạy trình tải quảng cáo
Trước khi có thể tải một quảng cáo, bạn phải khởi chạy trình tải quảng cáo.
Mã sau đây minh hoạ cách khởi chạy GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Bạn sẽ cần một mã đơn vị quảng cáo (có thể dùng mã thử nghiệm), các hằng số để truyền vào
Mảng adTypes
để chỉ định các định dạng gốc mà bạn muốn yêu cầu và bất kỳ
mà bạn muốn đặt trong thông số options
. Danh sách các lựa chọn có thể áp dụng
bạn có thể tìm thấy các giá trị cho thông số options
trong mục Đặt quảng cáo gốc
trang Tuỳ chọn.
Mảng adTypes
phải chứa
hằng số này :
Triển khai thực thể uỷ quyền của trình tải quảng cáo
Đại biểu của trình tải quảng cáo cần triển khai các giao thức dành riêng cho loại quảng cáo của bạn.
Đối với quảng cáo gốc, giao thức GADNativeAdLoaderDelegate
bao gồm một thông báo
được gửi tới đại biểu khi quảng cáo gốc đã tải.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Yêu cầu quảng cáo
Sau khi khởi động GADAdLoader
, hãy gọi phương thức loadRequest:
để
yêu cầu quảng cáo:
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Chiến lược phát hành đĩa đơn
loadRequest:
phương thức trong
GADAdLoader
chấp nhận tương tự
GADRequest
làm biểu ngữ và quảng cáo xen kẽ. Bạn có thể sử dụng các đối tượng yêu cầu để thêm thông tin nhắm mục tiêu, giống như cách bạn thực hiện với các loại quảng cáo khác.
Tải nhiều quảng cáo (không bắt buộc)
Để tải nhiều quảng cáo trong một yêu cầu, hãy đặt
GADMultipleAdsAdLoaderOptions
khi khởi tạo GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Số lượng quảng cáo cho mỗi yêu cầu được giới hạn là 5 và không thể đảm bảo rằng SDK sẽ trả về số lượng quảng cáo chính xác được yêu cầu.
Tất cả các quảng cáo Google được trả về sẽ khác nhau, mặc dù các quảng cáo từ khoảng không quảng cáo đặt trước hoặc người mua bên thứ ba không được đảm bảo là duy nhất.
Không sử dụng lớp GADMultipleAdsAdLoaderOptions
nếu bạn đang sử dụng tính năng dàn xếp,
vì yêu cầu cho nhiều quảng cáo gốc hiện không hoạt động đối với ID đơn vị quảng cáo
đã được định cấu hình cho dàn xếp.
Xác định thời điểm quá trình tải hoàn tất
Sau khi gọi loadRequest:
, một ứng dụng có thể nhận được kết quả của yêu cầu bằng cách sử dụng
cuộc gọi đến:
adLoader:didFailToReceiveAdWithError:
trongGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
trongGADNativeAdLoaderDelegate
Yêu cầu cho một quảng cáo sẽ dẫn đến một lệnh gọi đến một trong các phương thức đó.
Việc yêu cầu nhiều quảng cáo sẽ dẫn đến ít nhất một lệnh gọi lại đến lệnh trên nhưng không nhiều hơn số lượng quảng cáo tối đa được yêu cầu.
Ngoài ra, GADAdLoaderDelegate
còn cung cấp adLoaderDidFinishLoading
. Phương thức uỷ quyền này cho biết rằng một trình tải quảng cáo đã tải xong
và không có quảng cáo hoặc lỗi nào khác được báo cáo cho yêu cầu. Sau đây là một
ví dụ về cách sử dụng trình phân tích cú pháp khi tải nhiều quảng cáo gốc cùng một lúc:
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
Xử lý các yêu cầu không thành công
Các giao thức trên mở rộng giao thức GADAdLoaderDelegate
, giao thức này xác định một
thông báo được gửi khi quảng cáo không tải được.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Nhận thông báo về các sự kiện quảng cáo gốc
Để nhận thông báo về những sự kiện liên quan đến lượt tương tác với quảng cáo gốc, hãy đặt thực thể đại diện thuộc tính của quảng cáo gốc:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Sau đó, hãy triển khai
GADNativeAdDelegate
để nhận các lệnh gọi được uỷ quyền sau:
Swift
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Các phương pháp hay nhất
Hãy tuân thủ các quy tắc này khi tải quảng cáo.
Các ứng dụng sử dụng quảng cáo gốc trong một danh sách nên lưu trước danh sách quảng cáo đó vào bộ nhớ đệm.
Khi lưu quảng cáo vào bộ nhớ đệm, hãy xoá bộ nhớ đệm rồi tải lại sau một giờ.
Không gọi lại
loadRequest:
trênGADAdLoader
cho đến khi có yêu cầu trước đó tải xong, như được biểu thị bằngadLoaderDidFinishLoading:
.
Hiển thị quảng cáo của bạn
Sau khi bạn tải quảng cáo, việc còn lại là hiển thị quảng cáo đó cho người dùng. Chuyển đến Quảng cáo gốc nâng cao hướng dẫn để xem cách thực hiện.