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

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 sản phẩm.

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 thực thể đại diệ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 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 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ộ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 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 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 đạ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 tượng uỷ quyền khi quảng cáo mẫu tuỳ chỉnh đã tải xong.

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 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(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 đố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

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

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 đối với 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 đó.

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 theo 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ên GADAdLoader cho đến khi yêu cầu trước đó tải xong, như được chỉ định 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 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 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. Để 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.