Quảng cáo gốc là thành phần 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 vốn có của nền tảng. Quảng cáo này hiển thị bằng cách sử dụng chính các lớp mà bạn đã dùng trong bảng phân cảnh, và có thể được định dạng để phù hợp với kiểu thiết kế trực quan của ứng dụng.
Khi 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 chứa các thành phần của quảng cáo đó, và sau đó, ứng dụng (chứ không phải Google Mobile Ads SDK) sẽ chịu trách nhiệm hiển thị các thành phần đó.
Nói chung, có 2 bước để 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 hướng dẫn cách sử dụng SDK để tải quảng cáo gốc.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy thiết lập Google Mobile Ads SDK.
Luôn thử nghiệm bằng quảng cáo thử nghiệm
Khi bạn 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 đang chạy trong 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 mã này trong ứng dụng của mình khi lập trình, chạy 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ông tin chi tiết về quảng cáo thử nghiệm Google Mobile Ads SDK, hãy xem bài viết Bật quảng cáo thử nghiệm.
Tải quảng cáo
Quảng cáo gốc được tải bằng lớp
GADAdLoader.
Lớp này sẽ gửi thông báo đến thực thể đại diện theo giao thức
GADAdLoaderDelegate.
Khởi chạy trình tải quảng cáo
Trước khi có thể tải 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
Thay thế nativeAdUnitID bằng mã đơn vị quảng cáo của bạn.
Objective-C
Thay thế kNativeAdUnitID bằng mã đơn vị quảng cáo của bạn.
Bạn sẽ cần một mã đơn vị quảng cáo (bạn có thể sử dụng mã thử nghiệm), các hằng số để truyền vào mảng adTypes nhằm chỉ định định dạng gốc mà bạn muốn yêu cầu và mọi tuỳ chọn mà bạn muốn đặt trong tham số options. Bạn có thể xem danh sách các giá trị có thể có cho tham số options trong trang Đặt tuỳ chọn quảng cáo gốc.
Mảng adTypes phải chứa hằng số này :
Triển khai trình uỷ quyền của trình tải quảng cáo
Đối tượng uỷ quyền 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 đến thực thể đại diện khi quảng cáo gốc đã tải.
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self
// TODO: Display the native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self;
// TODO: Display the native ad.
}
Yêu cầu quảng cáo
Sau khi khởi chạy GADAdLoader, hãy gọi phương thức loadRequest: để yêu cầu quảng cáo:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Phương thức loadRequest: trong GADAdLoader chấp nhận các đối tượng GADRequest giống như biểu ngữ và quảng cáo xen kẽ. Bạn có thể sử dụng đố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 làm 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 đối tượng GADMultipleAdsAdLoaderOptions khi khởi chạy GADAdLoader.
Swift
Objective-C
Số lượng quảng cáo cho mỗi yêu cầu được giới hạn ở mức 5 và không có gì đảm bảo rằng SDK sẽ trả về chính xác số lượng quảng cáo được yêu cầu.
Quảng cáo do Google phân phát được trả về sẽ khác nhau, mặc dù 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.
Đừng sử dụng lớp GADMultipleAdsAdLoaderOptions nếu bạn đang sử dụng tính năng dàn xếp, vì các yêu cầu cho nhiều quảng cáo gốc không hoạt động đối với những mã đơn vị quảng cáo đã được định cấu hình cho tính năng dàn xếp.
Xác định thời điểm tải xong
Sau khi gọi loadRequest:, ứng dụng có thể nhận được kết quả của yêu cầu bằng cách gọi đến:
adLoader:didFailToReceiveAdWithError:trongGADAdLoaderDelegateadLoader:didReceiveNativeAd:trongGADNativeAdLoaderDelegate
Việc yêu cầu một quảng cáo sẽ tạo ra một lệnh gọi đến một trong những phương thức đó.
Việc yêu cầu nhiều quảng cáo sẽ tạo ra ít nhất một lệnh gọi lại đến các phương thức nêu trên, nhưng không vượt quá số lượng quảng cáo tối đa được yêu cầu.
Ngoài ra, GADAdLoaderDelegate còn cung cấp lệnh gọi lại adLoaderDidFinishLoading. Phương thức uỷ quyền này cho biết rằng trình tải quảng cáo đã tải xong
quảng cáo và sẽ 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. Dưới đây là ví dụ về cách sử dụng khi tải nhiều quảng cáo gốc cùng một lúc:
Swift
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
Objective-C
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
Xử lý các yêu cầu không thành công
Các giao thức này 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
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
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 có liên quan đến các lượt tương tác với quảng cáo gốc, hãy đặt thuộc tính uỷ quyền 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 uỷ quyền sau:
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// 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.
Những ứng dụng sử dụng quảng cáo gốc trong danh sách nên lưu trước danh sách quảng cáo vào bộ nhớ đệm.
Khi lưu trước quảng cáo vào bộ nhớ đệm, hãy xoá bộ nhớ đệm và tải lại sau một giờ.
Đừng gọi lại
loadRequest:trênGADAdLoadercho đến khi yêu cầu trước đó tải xong, như được chỉ định bởiadLoaderDidFinishLoading:.Chỉ lưu quảng cáo gốc vào bộ nhớ đệm khi cần thiết. Ví dụ: khi lưu trước vào bộ nhớ đệm, chỉ lưu những quảng cáo xuất hiện ngay trên màn hình vào bộ nhớ đệm. Quảng cáo gốc có mức sử dụng bộ nhớ lớn và việc lưu quảng cáo gốc vào bộ nhớ đệm mà không huỷ quảng cáo gốc sẽ dẫn đến việc sử dụng bộ nhớ quá mức.
Huỷ quảng cáo gốc khi không còn sử dụng.
Hiển thị quảng cáo của bạn
Sau khi tải quảng cáo, bạn chỉ cần hiển thị quảng cáo đó cho người dùng. Để biết thêm thông tin, hãy xem bài viết Quảng cáo gốc nâng cao hoặc Quảng cáo gốc toàn màn hình.