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 phải là mạng quảng cáo được hỗ trợ. Bạn có thể thực hiện việc 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 của chúng tôi.

Đ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 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 bài viết 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ụ: com.google.ads.mediation.sample.customevent.SampleCustomEvent. Tốt nhất là bạn nên sử dụng một lớp bộ chuyển đổi duy nhất cho tất cả các định dạng quảng cáo sự kiện tuỳ chỉnh.

Hãng nhạc

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

Thông số

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

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

Khi SDK Quảng cáo của Google trên thiết bị di động khởi chạy, initialize() sẽ được gọi trên tất cả các bộ chuyển đổi được hỗ trợ của bên thứ ba và các sự kiện tuỳ chỉnh được thiết lập cho ứng dụng trong AdMob giao diện người dùng. Hãy sử dụng phương thức này để thực hiện mọi hoạt động 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.

Java

package com.google.ads.mediation.sample.customevent;

import com.google.android.gms.ads.AdFormat;
import com.google.android.gms.ads.mediation.Adapter;
import com.google.android.gms.ads.mediation.InitializationCompleteCallback;
import com.google.android.gms.ads.mediation.MediationConfiguration;

public class SampleAdNetworkCustomEvent extends Adapter {
  private static final String SAMPLE_AD_UNIT_KEY = "parameter";

  @Override
  public void initialize(Context context,
      InitializationCompleteCallback initializationCompleteCallback,
      List<MediationConfiguration> mediationConfigurations) {
    // 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.
    initializationCompleteCallback.onInitializationSucceeded();
  }
}

Kotlin

package com.google.ads.mediation.sample.customevent

import com.google.android.gms.ads.AdFormat
import com.google.android.gms.ads.mediation.Adapter
import com.google.android.gms.ads.mediation.InitializationCompleteCallback
import com.google.android.gms.ads.mediation.MediationConfiguration

class SampleCustomEvent : Adapter() {
  private val SAMPLE_AD_UNIT_KEY = "parameter"

  override fun initialize(
    context: Context,
    initializationCompleteCallback: InitializationCompleteCallback,
    mediationConfigurations: List<MediationConfiguration>
  ) {
    // 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.
    initializationCompleteCallback.onInitializationSucceeded()
  }
}

Số phiên bản báo cáo

Tất cả các sự kiện tuỳ chỉnh phải báo cáo cho SDK Quảng cáo của Google trên thiết bị di động về cả phiên bản của chính 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. Các phiên bản được báo cáo dưới dạng đối tượng VersionInfo :

Java

package com.google.ads.mediation.sample.customevent;

public class SampleCustomEvent extends Adapter {

  @Override
  public VersionInfo getVersionInfo() {
    String versionString = new VersionInfo(1, 2, 3);
    String[] splits = versionString.split("\\.");

    if (splits.length >= 4) {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]) * 100 + Integer.parseInt(splits[3]);
      return new VersionInfo(major, minor, micro);
    }

    return new VersionInfo(0, 0, 0);
  }

  @Override
  public VersionInfo getSDKVersionInfo() {
    String versionString = SampleAdRequest.getSDKVersion();
    String[] splits = versionString.split("\\.");

    if (splits.length >= 3) {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]);
      return new VersionInfo(major, minor, micro);
    }

    return new VersionInfo(0, 0, 0);
  }
}

Kotlin

package com.google.ads.mediation.sample.customevent

class SampleCustomEvent : Adapter() {
  override fun getVersionInfo(): VersionInfo {
    val versionString = VersionInfo(1,2,3).toString()
    val splits: List<String> = versionString.split("\\.")

    if (splits.count() >= 4) {
      val major = splits[0].toInt()
      val minor = splits[1].toInt()
      val micro = (splits[2].toInt() * 100) + splits[3].toInt()
      return VersionInfo(major, minor, micro)
    }

    return VersionInfo(0, 0, 0)
  }

  override fun getSDKVersionInfo(): VersionInfo {
    val versionString = VersionInfo(1,2,3).toString()
    val splits: List<String> = versionString.split("\\.")

    if (splits.count() >= 3) {
      val major = splits[0].toInt()
      val minor = splits[1].toInt()
      val micro = splits[2].toInt()
      return VersionInfo(major, minor, micro)
    }

    return VersionInfo(0, 0, 0)
  }
}

Yêu cầu 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 dành riêng cho định dạng quảng cáo đó: