보안 처리된 신호 어댑터 개발

실시간 입찰 (RTB) 신호를 생성하는 신호 제공업체 SDK가 있는 경우 보안 처리된 신호 어댑터를 개발하여 Google Mobile Ads SDK가 SDK에서 신호를 수집하도록 할 수 있습니다.

Google Mobile Ads SDK는 선택한 참여 Authorized Buyers공개 입찰 구매자에게 신호를 전달합니다.

다음 다이어그램은 보안 신호 수집의 요청-응답 수명 주기를 보여줍니다.

보안 처리된 신호 어댑터는 어댑터 초기화와 신호 수집을 담당합니다.

보안 처리된 신호 어댑터 구현

Google Mobile Ads SDK용 보안 처리된 신호 어댑터를 구현하여 SDK에서 신호를 수집합니다.

이 가이드에서는 RtbAdapter 추상 클래스를 확장하여 보안 처리된 신호 어댑터를 구현하는 방법을 설명합니다.

다음 예시에서는 RtbAdapter 추상 클래스를 확장합니다.

자바

public class SampleAdapterSnippets extends RtbAdapter {

어댑터 초기화

Google Mobile Ads SDKGoogle Mobile Ads SDK가 보안 처리된 신호 어댑터를 인스턴스화할 때 initialize() 메서드를 호출합니다. 이 메서드를 사용하여 SDK를 초기화합니다.

SDK가 완전히 초기화되고 Google Mobile Ads SDK가 신호를 수집할 준비가 되면 InitializationCompleteCallback 콜백을 호출합니다.

보안 신호 어댑터가 콜백하지 않으면 Google Mobile Ads SDK가 보안 신호 어댑터에서 신호를 수집하지 않습니다.

다음 예에서는 완료 콜백을 호출하여 SDK가 성공적으로 초기화되었음을 Google Mobile Ads SDK에 알립니다.

자바

@Override
public void initialize(
    Context context,
    InitializationCompleteCallback initializationCompleteCallback,
    List<MediationConfiguration> configurations) {

  // Add your SDK initialization logic here.

  // Invoke the InitializationCompleteCallback once initialization completes.
  initializationCompleteCallback.onInitializationSucceeded();
}

어댑터 및 SDK 버전 보고

보안 처리된 신호 어댑터는 어댑터 버전과 SDK 버전을 모두 보고해야 합니다. Google Mobile Ads SDK은 보고 및 문제 해결에 이러한 버전을 사용합니다.

SDK가 동일한 바이너리에서 이 어댑터를 구현하는 경우 어댑터 버전과 SDK 버전 모두에 동일한 버전을 반환할 수 있습니다.

다음 예시는 보안 처리된 신호 어댑터의 버전을 반환합니다.

자바

@Override
public VersionInfo getVersionInfo() {
  // If your SDK implements this adapter in the same binary, return
  // the same version as your SDK.
  // return getSDKVersionInfo();

  // If you built a separate binary for this adapter, return
  // the adapter's version here.
  int major = 4;
  int minor = 5;
  int micro = 6;
  return new VersionInfo(major, minor, micro);
}

다음 예에서는 보안 신호 어댑터가 상호작용하는 SDK 버전을 반환합니다.

자바

@Override
public VersionInfo getSDKVersionInfo() {

  // Return your SDK's version string here.
  String versionString = SDK_VERSION_STRING;
  String[] splits = versionString.split("\\.");
  if (splits.length >= 3) {
    try {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]);
      return new VersionInfo(major, minor, micro);
    } catch (NumberFormatException e) {
      // Fall through to log warning and return 0.0.0.
    }
  }

  Log.w(
      TAG,
      String.format(
          "Unexpected SDK version format: %s. Returning 0.0.0 for SDK version.", versionString));
  return new VersionInfo(0, 0, 0);
}

SDK_VERSION_STRING을 SDK 버전 문자열로 바꿉니다.

신호 수집

Google Mobile Ads SDK는 모든 광고 요청에서 백그라운드 스레드의 모든 어댑터로부터 동시에 신호를 수집합니다.

다음 예에서는 SignalCallbacks.onSuccess() 메서드를 호출하여 Google Mobile Ads SDK에 신호를 수집하고 반환합니다.

자바

@Override
public void collectSignals(RtbSignalData rtbSignalData, SignalCallbacks signalCallbacks) {

  // Add your signal collection logic here.
  String signals = SAMPLE_SIGNAL_PLACEHOLDER;

  // Return the signals as a string to the Google Mobile Ads SDK.
  signalCallbacks.onSuccess(signals);
}

SAMPLE_SIGNAL_PLACEHOLDER을 안전한 신호 문자열로 바꿉니다.

신호 수집은 1초 이내에 완료되어야 합니다. 신호 수집에 1초 이상 걸리는 경우 어댑터를 초기화할 때 보안 처리된 신호 어댑터 또는 SDK에 신호를 캐싱하는 것이 좋습니다.

보안 처리된 신호 어댑터가 신호를 수집하지 못하면 signalCallbacks.onFailure() 메서드에 오류를 전달합니다.

신호 난독화

입찰자 및 큐레이션 파트너와 보안 처리된 신호를 공유하는 경우 신호를 난독화해야 합니다.