Tải quảng cáo gốc

Quảng cáo gốc là thành phần quảng cáo được trình bày 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 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 chứa các thành phần của quảng cáo đó, 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 rồi 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

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:

/21775744923/example/native

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 các đối tượng uỷ quyền theo giao thức GADAdLoaderDelegate.

Ngoài định dạng gốc do hệ thống xác định, bạn cũng có thể tạo định dạng quảng cáo gốc tuỳ chỉnh của riêng mình để sử dụng cho quảng cáo gốc được bán trực tiếp. Định dạng quảng cáo gốc tuỳ chỉnh cho phép bạn chuyển dữ liệu có cấu trúc tuỳ ý đến ứng dụng của mình. Các quảng cáo này được biểu thị bằng lớp GADCustomNativeAd.

Khởi chạy trình tải quảng cáo

Trước khi 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 tạo GADAdLoader:

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

Thay thế nativeAdUnitID bằng mã đơn vị quảng cáo của bạn.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

Thay thế kNativeAdUnitID bằng mã đơn vị quảng cáo của bạn.

Bạn sẽ cần mã đơn vị quảng cáo (bạn có thể 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 lựa chọn 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 trên trang Đặt các lựa chọn cho quảng cáo gốc.

Mảng adTypes phải chứa một hoặc nhiều hằng số sau:

Triển khai uỷ quyền trình tải quảng cáo

Uỷ quyền 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 đại biểu 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.
}

Giao thức GADCustomNativeAdLoaderDelegate bao gồm một thông báo được gửi đến đại biểu khi một quảng cáo mẫu tuỳ chỉnh đã tải.

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

Yêu cầu quảng cáo

Sau khi GADAdLoader được khởi chạy, hãy gọi phương thức loadRequest: để yêu cầu một quảng cáo:

Swift

adLoader.load(AdManagerRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

Phương thức loadRequest: trong GADAdLoader chấp nhận các đối tượng GAMRequest giống như 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 đối tượng GADMultipleAdsAdLoaderOptions khi khởi chạy GADAdLoader.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

Số lượng quảng cáo trên mỗi yêu cầu bị giới hạn ở mức 5 và không đả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.

Tất cả quảng cáo do Google trả về sẽ khác nhau, mặc dù quảng cáo từ khoảng không quảng cáo được đặ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ì 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 hoạt độ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 sử dụng các lệnh gọi đến:

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 đó.

Một yêu cầu cho nhiều quảng cáo sẽ dẫn đến ít nhất một lệnh gọi lại cho các phương thức 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 lệnh gọi lại 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 đã hoàn tất quá trình tải quảng cáo và không có lỗi hoặc quảng cáo nào khác được báo cáo cho yêu cầu. Sau đây là ví dụ về cách sử dụng phương thức này 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, 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 sau 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 vào bộ nhớ đệm danh sách quảng cáo.

  • 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ên GADAdLoader cho đến khi yêu cầu trước đó hoàn tất quá trình tải, như được chỉ ra bởi adLoaderDidFinishLoading:.

  • Giới hạn việc lưu vào bộ nhớ đệm quảng cáo gốc chỉ ở những gì cần thiết. Ví dụ: khi lưu vào bộ nhớ đệm trước, chỉ lưu vào bộ nhớ đệm những quảng cáo xuất hiện ngay trên màn hình. Quảng cáo gốc có mức sử dụng bộ nhớ lớn và việc lưu vào bộ nhớ đệm quảng cáo gốc mà không hủy chúng sẽ dẫn đến việc sử dụng quá nhiều bộ nhớ.

  • Huỷ quảng cáo gốc khi không còn sử dụng nữa.

Hiển thị quảng cáo của bạn

Sau khi bạn tải một quảng cáo, tất cả những gì còn lại là hiển thị quảng cáo đó cho người dùng. Hãy xem Hướng dẫn về Quảng cáo gốc nâng cao của chúng tôi để biết cách thực hiện.