Thiết lập

Sự kiện tuỳ chỉnh cho phép bạn thêm chế độ dàn xếp kiểu thác nước cho một mạng quảng cáo không thuộc danh sách mạng quảng cáo được hỗ trợ. Bạn có thể thêm chế độ dàn xếp này bằng cách triển khai bộ chuyển đổi sự kiện tuỳ chỉnh cho mạng quảng cáo mà bạn muốn tích hợp.

Bạn có thể tìm thấy một dự án sự kiện tuỳ chỉnh mẫu đầy đủ trong kho lưu trữ GitHub.

Điều kiện tiên quyết

Để có thể tạo sự kiện tuỳ chỉnh, trước tiên bạn phải tích hợp một trong các định dạng quảng cáo sau đây vào ứng dụng của mình:

Tạo sự kiện tuỳ chỉnh trong giao diện người dùng

Trước tiên, bạn phải tạo một sự kiện tuỳ chỉnh trong giao diện người dùng AdMob. Hãy xem hướng dẫn trong phần Thêm sự kiện tuỳ chỉnh.

Bạn cần phải cung cấp các thông tin sau:

Tên lớp

Tên đủ điều kiện của lớp triển khai bộ chuyển đổi sự kiện tuỳ chỉnh – ví dụ: SampleCustomEvent; hoặc nếu lớp của bạn được triển khai trong Swift, MediationExample.SampleCustomEventSwift.

Bạn phải nhập tên mục tiêu nếu có nhiều mục tiêu trong dự án hoặc nếu tên dự án khác với tên mục tiêu. Tên mục tiêu sẽ giống như sau: appName_targetName.className. Ngoài ra, hãy nhớ thay thế mọi ký tự không phải chữ-số (ví dụ như thay thế dấu gạch ngang bằng dấu gạch dưới). Ví dụ.

Nhãn

Tên duy nhất để xác định nguồn quảng cáo.

Tham số

Một đối số chuỗi không bắt buộc được truyền đến bộ chuyển đổi sự kiện tuỳ chỉnh.

Triển khai GADMediationAdapter

Để tạo sự kiện tuỳ chỉnh, trước tiên, bạn cần triển khai giao thức GADMediationAdapter như hiển thị bởi lớp SampleCustomEvent trong ví dụ của chúng tôi.

Lớp này có trách nhiệm nhận thông báo từ AdMob và uỷ quyền tạo định dạng quảng cáo chính xác.

Khởi chạy bộ chuyển đổi

Khi SDK quảng cáo trên thiết bị di động của Google khởi chạy, setUpWithConfiguration:completionHandler: sẽ được gọi trên tất cả các sự kiện tuỳ chỉnh và bộ chuyển đổi bên thứ ba được hỗ trợ đã định cấu hình cho ứng dụng đó trong giao diện người dùng AdMob. Hãy sử dụng phương thức này để thực hiện mọi thao tác thiết lập hoặc khởi chạy cần thiết trên SDK bắt buộc của bên thứ ba cho sự kiện tuỳ chỉnh của bạn.

Swift

import GoogleMobileAds

class SampleCustomEvent: NSObject, GADMediationAdapter {

  static func setUpWith(
    _ configuration: GADMediationServerConfiguration,
    completionHandler: @escaping GADMediationAdapterSetUpCompletionBlock
  ) {
    // This is where you will initialize the SDK that this custom event is built
    // for. Upon finishing the SDK initialization, call the completion handler
    // with success.
    completionHandler(nil)
  }
}

Objective-C

#import "SampleCustomEvent.h"

@implementation SampleCustomEvent
...

+ (void)setUpWithConfiguration:(nonnull GADMediationServerConfiguration *)configuration
             completionHandler:(nonnull GADMediationAdapterSetUpCompletionBlock)completionHandler {
  // This is where you initialize the SDK that this custom event is built
  // for. Upon finishing the SDK initialization, call the completion handler
  // with success.
  completionHandler(nil);
}

Báo cáo số phiên bản

Tất cả sự kiện tuỳ chỉnh phải báo cáo cho SDK quảng cáo trên thiết bị di động của Google thông tin về cả phiên bản của bộ chuyển đổi sự kiện tuỳ chỉnh và phiên bản SDK của bên thứ ba mà sự kiện tuỳ chỉnh liên kết đến. Các phiên bản được báo cáo dưới dạng đối tượng GADVersionNumber :

Swift

static func adSDKVersion() -> GADVersionNumber {
  let versionComponents = String(SampleSDKVersion).components(
    separatedBy: ".")

  if versionComponents.count >= 3 {
    let majorVersion = Int(versionComponents[0]) ?? 0
    let minorVersion = Int(versionComponents[1]) ?? 0
    let patchVersion = Int(versionComponents[2]) ?? 0

    return GADVersionNumber(
      majorVersion: majorVersion, minorVersion: minorVersion, patchVersion: patchVersion)
  }

  return GADVersionNumber()
}

static func adapterVersion() -> GADVersionNumber {
  let versionComponents = String(SampleAdSDK.SampleAdSDKVersionNumber).components(
    separatedBy: ".")
  var version = GADVersionNumber()
  if versionComponents.count == 4 {
    version.majorVersion = Int(versionComponents[0]) ?? 0
    version.minorVersion = Int(versionComponents[1]) ?? 0
    version.patchVersion = Int(versionComponents[2]) * 100 + Int(versionComponents[3])
  }
  return version
}

Objective-C

+ (GADVersionNumber)adSDKVersion {
  NSArray *versionComponents =
      [SampleSDKVersion componentsSeparatedByString:@"."];
  GADVersionNumber version = {0};
  if (versionComponents.count >= 3) {
    version.majorVersion = [versionComponents[0] integerValue];
    version.minorVersion = [versionComponents[1] integerValue];
    version.patchVersion = [versionComponents[2] integerValue];
  }
  return version;
}

+ (GADVersionNumber)adapterVersion {
  NSArray *versionComponents =
      [SampleCustomEventAdapterVersion componentsSeparatedByString:@"."];
  GADVersionNumber version = {0};
  if (versionComponents.count == 4) {
    version.majorVersion = [versionComponents[0] integerValue];
    version.minorVersion = [versionComponents[1] integerValue];
    version.patchVersion = [versionComponents[2] integerValue] * 100 +
                           [versionComponents[3] integerValue];
  }
  return version;
}

Yêu cầu hiển thị quảng cáo

Để yêu cầu hiển thị một quảng cáo, hãy tham khảo hướng dẫn cụ thể cho định dạng quảng cáo đó: