가이드: 새로운 AdMob 광고 형식 채택 테스트

3단계: 앱 코드에서 원격 구성 매개변수 값 처리


소개: Firebase를 사용하여 새로운 AdMob 광고 형식 채택 테스트
1단계: AdMob을 사용하여 테스트를 위한 새 광고 단위 변형 만들기
2단계: Firebase 콘솔에서 A/B 테스트 설정

3단계: 앱 코드에서 원격 구성 매개변수 값 처리

4단계: A/B 테스트 시작 및 Firebase 콘솔에서 테스트 결과 검토
5단계: 새 광고 형식 출시 여부 결정


마지막 단계가 끝나면 원격 구성 매개변수( SHOW_NEW_AD_KEY )를 만들었습니다. 이 단계에서는 true (새 광고 표시) 대 false (새 광고 표시 함) 매개변수의 값을 기반으로 앱이 표시해야 하는 항목에 대한 논리를 앱 코드에 추가합니다.

필요한 SDK 추가

애플리케이션 코드에서 원격 구성을 사용하기 전에 원격 구성 SDK와 Google 애널리틱스용 Firebase SDK를 모두 프로젝트 빌드 파일에 추가하세요.

빠른

podfile에 다음 포드를 추가하고 설치합니다.

pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'

오브젝티브-C

podfile에 다음 포드를 추가하고 설치합니다.

pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'

Java

build.gradle 파일에 다음 라이브러리 종속성을 추가합니다.

implementation 'com.google.android.gms:play-services-ads:21.0.0'
implementation 'com.google.firebase:firebase-analytics:21.0.0'
implementation 'com.google.firebase:firebase-config:21.1.0'

Kotlin+KTX

build.gradle 파일에 다음 라이브러리 종속성을 추가합니다.

implementation 'com.google.android.gms:play-services-ads:21.0.0'
implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
implementation 'com.google.firebase:firebase-config-ktx:21.1.0'

단일성

Firebase Unity SDK를 다운로드하여 설치한 후 프로젝트에 다음 Unity 패키지를 추가합니다.

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

원격 구성 인스턴스 구성

원격 구성 매개변수 값을 사용하려면 원격 구성 인스턴스를 구성하여 클라이언트 앱 인스턴스에 대한 새 값을 가져오도록 설정합니다.

이 예에서 원격 구성은 매시간 새 매개변수 값을 확인하도록 구성됩니다.

빠른

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

오브젝티브-C

self.remoteConfig = [FIRRemoteConfig remoteConfig];
FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
remoteConfigSettings.minimumFetchInterval = 3600;
self.remoteConfig.configSettings = remoteConfigSettings;

Java

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin+KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

단일성

var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
var configSettings = new ConfigSettings {
  MinimumFetchInternalInMilliseconds =
        (ulong)(new TimeSpan(1, 0, 0).TotalMilliseconds)
};
remoteConfig.SetConfigSettingsAsync(configSettings)
        .ContinueWithOnMainThread(task => {
          Debug.Log("Config settings confirmed");
}

원격 구성 가져오기 및 활성화

새 매개변수 값을 사용할 수 있도록 원격 구성 매개변수를 가져와 활성화합니다.

이 호출은 비동기식이며 앱이 광고를 표시할지 여부를 알 수 있도록 미리 가져온 원격 구성 값이 필요하기 때문에 앱 로드 단계에서 가능한 한 빨리 이 호출을 수행하는 것이 좋습니다.

빠른

remoteConfig.fetch() { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate() { (changed, error) in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.loadAdUnit()
}

오브젝티브-C

[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self loadAdUnit];
}];

Java

mFirebaseRemoteConfig.fetchAndActivate()
        .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
            @Override
            public void onComplete(@NonNull Task<Boolean> task) {
                if (task.isSuccessful()) {
                    boolean updated = task.getResult();
                    Log.d(TAG, "Config params updated: " + updated);
                } else {
                    Log.d(TAG, "Config params failed to update");
                }
                loadAdUnit();
            }
        });

Kotlin+KTX

remoteConfig.fetchAndActivate()
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                val updated = task.result
                Log.d(TAG, "Config params updated: $updated")
            } else {
                Log.d(TAG, "Config params failed to update")
            }
            loadAdUnit()
        }

단일성

remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
  if (task.IsFaulted) {
    Debug.LogWarning("Config params failed to update");
  } else {
    Debug.Log("Config params updated: " + task.Result);
  }
  LoadAdUnit();
});

이제 앱은 이 자습서의 앞부분에서 설정한 A/B 테스트 중에 생성한 원격 구성 매개변수를 처리할 준비가 되었습니다.

원격 구성 매개변수 값 사용

loadAdUnit() 함수에서 미리 가져온 원격 구성 값을 사용하여 앱 인스턴스가 새로운 보상형 전면 광고 단위를 표시해야 하는지(매개변수 값 true ) 표시 하지 않아야 하는지(매개변수 값 false ) 결정합니다.

빠른

private func loadAdUnit() {
  let showNewAdFormat = remoteConfig["users"].boolValue
  if showNewAdFormat {
      // Load Rewarded Interstitial Ad.
      // This should load your new implemented ad unit
      // as per AdMob instructions (the first step of this tutorial).
  } else {
    // Show the existing ad unit.
  }
}

오브젝티브-C

- (void)loadAdUnit {
    BOOL showAds = self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
    if (showAds) {
      // Load Rewarded Interstitial Ad.
      // This should load your new implemented ad unit
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Show the existing ad unit.
    }
}

Java

private void loadAdUnit() {
    boolean showNewAdFormat =
      mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY);

    if (showNewAdFormat) {
      // Load Rewarded Interstitial Ad.
      // This should load your new implemented ad unit
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Show the existing ad unit.
    }
}

Kotlin+KTX

private fun loadAdUnit() {
  var showNewAdFormat = remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

  if (showNewAdFormat) {
      // Load Rewarded Interstitial Ad.
      // This should load your new implemented ad unit
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Show the existing ad unit.
    }
}

단일성

void LoadAdUnit() {
  bool showNewAdFormat =
      remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue;

  if (showNewAdFormat) {
    // Load Rewarded Interstitial Ad (new implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Show the existing ad unit.
  }
}

매개변수 값에 대한 다른 검사 추가

로드할 광고 경험을 지정하기 위해 이 원격 구성 매개변수의 값을 확인해야 하는 애플리케이션 코드의 다른 영역이 있습니다. 예를 들어 사용자가 현재 광고를 본 후 광고를 다시 로드할지 여부를 결정할 수 있습니다.

예를 들어 새 실험을 종료하거나 만들기로 결정한 경우 매개변수 값 변경을 가져오려면 가져오기 및 활성화 호출을 먼저 수행해야 합니다.

여기에서 다음 호출을 사용하여 항상 매개변수 값을 확인할 수 있습니다.

빠른

remoteConfig["showNewAdKey"].boolValue

오브젝티브-C

self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

단일성

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

이전 호출에서 가져와 활성화된 Firebase 콘솔에서 변경 사항이 적용되지 않는 한 이러한 호출은 앱 인스턴스가 제어 그룹에 배치되었는지 또는 새 광고 변형 그룹에 배치되었는지에 따라 앱 인스턴스에 대해 항상 동일한 값을 반환합니다.




2단계 : Firebase 콘솔에서 A/B 테스트 설정 4단계 : A/B 테스트 시작 및 테스트 결과 검토