3단계: 특정 광고 경험을 표시하도록 Firebase Remote Config 설정
소개: 하이브리드 최적화 AdMob, Google Analytics, Firebase를 사용한 수익 창출 |
1단계: AdMob을(를) 사용하여 새 디스플레이용 광고 단위 만들기 |
2단계: 설정 Google 애널리틱스 |
3단계: 설정 특정 광고 경험을 표시하려면 Firebase Remote Config |
마지막 단계가 끝나면 Google 애널리틱스 잠재고객에 대해 알아보았습니다. 포함
이 단계에서는 Remote Config 부울 제어 매개변수를 만듭니다.
'구매자' 데이터를 활용하는 (ad_control_switch
라고 함) 잠재고객입니다. 사용자는
그런 다음 앱이 표시할 콘텐츠에 관한 로직을 앱 코드에
해당 매개변수의 값입니다.
Firebase 콘솔에서 Remote Config 매개변수 및 조건 설정
Firebase 콘솔에서 Firebase 프로젝트를 엽니다
왼쪽 창에서 참여 섹션을 펼친 다음 원격 구성.
구성 만들기 (또는 다음을 사용한 경우 매개변수 추가)를 클릭합니다. Remote Config 전).
매개변수 만들기 패널에서 다음 단계를 완료합니다.
매개변수 이름 필드에
ad_control_switch
를 입력합니다.Data type
드롭다운 메뉴에서 불리언을 선택합니다.새로 만들기를 클릭한 다음 새 조건 만들기를 선택합니다.
새 조건 정의 대화상자에서 다음 단계를 완료합니다.
Name 필드에
Purchasers Group
(또는 기타 조건의 식별 가능한 이름).적용 조건... 드롭다운 메뉴에서 사용자 잠재고객을 선택합니다.
잠재고객 선택 드롭다운 메뉴에서 구매자를 선택합니다.
조건 저장을 클릭합니다.
매개변수 만들기 패널로 돌아가서 다음 단계를 완료합니다.
구매자 그룹의 값에서 false를 선택합니다.
기본값에 true를 선택합니다.
저장과 변경사항 게시를 차례로 클릭합니다.
이 구성에서 사용자가 '구매자'에 있는지 확인합니다. 잠재고객 (즉, 유료 사용자인 경우)
사용자가 '구매자' 없는 경우 Remote Config은(는)
ad_control_switch
매개변수에false
값을 반환합니다.사용자가 '구매자' 목록에 없는 경우 이후 Remote Config
ad_control_switch
매개변수에true
의 값을 반환합니다.
다음 단계에서는 앱에 Remote Config를 구현하여 다음을 수행합니다. 처리할 수 있습니다.
앱에 Remote Config SDK 추가
애플리케이션 코드에서 Remote Config를 사용하기 전에 다음을 추가합니다. Remote Config SDK를 앱의 코드베이스에 추가합니다. 앱이 이미 Google Mobile Ads (AdMob) SDK 및 이 튜토리얼의 이전 단계에서 생성한 Firebase용 Google 애널리틱스 SDK입니다.
Swift
Podfile에 Remote Config 포드를 추가하고 설치합니다.
pod 'Firebase/RemoteConfig'
Android
build.gradle
파일에 Remote Config 라이브러리 종속 항목을 추가합니다.
implementation 'com.google.firebase:firebase-config:22.0.0'
Flutter
Flutter 프로젝트의 루트에서 다음 명령어를 실행하여 설치합니다. Remote Config 플러그인:
flutter pub add firebase_remote_config
Unity
최신 버전 다운로드 및 설치
Firebase Unity SDK를 설치한 다음
Remote Config 패키지를 프로젝트에 추가합니다.
FirebaseRemoteConfig.unitypackage
Remote Config 인스턴스 구성
앱에서 Remote Config 매개변수 값을 사용할 수 있도록 클라이언트 앱의 새 값을 가져올 수 있는 Remote Config 인스턴스 인스턴스를 만들 수 있습니다
이 예에서 Remote Config는 새 매개변수를 확인하도록 구성되어 있습니다. 1시간마다 한 번씩 값을 반환합니다.
Swift
remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
Kotlin+KTX
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
Java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Flutter
remoteConfig = FirebaseRemoteConfig.instance;
final configSettings = FirebaseRemoteConfigSettings(
minimumFetchInterval: Duration(hours: 1),
);
await remoteConfig.setConfigSettings(configSettings);
// Use the `onConfigUpdated` callback to listen for changes to the config settings.
remoteConfig.onConfigUpdated.listen((_) {
print('Config settings confirmed');
});
Unity
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");
}
Remote Config 가져오기 및 활성화
사용을 시작할 수 있도록 Remote Config 매개변수를 가져오고 활성화합니다. 새 매개변수 값을 가져옵니다.
앱 로드 단계에서 가능한 한 빨리 이 호출을 하는 것이 좋습니다. 이 호출이 비동기식이며 Remote Config 값이 필요하기 때문입니다. 미리 가져온 후 앱에서 광고 게재 여부를 알 수 있습니다.
Swift
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()
}
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()
}
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();
}
});
Flutter
remoteConfig = FirebaseRemoteConfig.instance;
// Fetch and activate the latest Remote Config values.
final updated = await remoteConfig.fetchAndActivate();
// Check if the config params were updated successfully.
if (updated) {
print('Config params updated');
} else {
print('Config params failed to update');
}
// Load the ad unit.
_loadAdUnit();
Unity
remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
if (task.IsFaulted) {
Debug.LogWarning("Config params failed to update");
} else {
Debug.Log("Config params updated: " + task.Result);
}
LoadAdUnit();
});
이제 앱이 Remote Config 매개변수를 처리하도록 구성되었습니다. 만들 수 있습니다
Remote Config 매개변수 값 사용
loadAdUnit()
함수에서 미리 가져온 Remote Config 값을 사용하여
앱 인스턴스에서 다음 중 하나를 실행해야 하는지 여부를 결정합니다.
ad_control_switch
매개변수 값이true
로 확인됩니다. 다음을 참고하세요. 전면 광고 (사용자가 무료 사용자이기 때문)ad_control_switch
매개변수 값이false
로 확인됩니다. (사용자가 유료 사용자이기 때문)
Swift
private func loadAdUnit() {
let showAds = remoteConfig["ad_control_switch"].boolValue
if showAds {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Kotlin+KTX
private fun loadAdUnit() {
var showAds = remoteConfig.getBoolean(ad_control_switch)
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Java
private void loadAdUnit() {
boolean showAds =
mFirebaseRemoteConfig.getBoolean(ad_control_switch);
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Flutter
void _loadAdUnit() {
bool showAds = remoteConfig.getBool(ad_control_switch);
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Unity
void LoadAdUnit() {
bool showAds =
remoteConfig.GetValue("ad_control_switch").BooleanValue;
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
앱 출시
광고 표시 여부를 결정하는 로직은 코드베이스 내에 있으므로 이 로직이 포함된 앱의 새 버전 출시
이 튜토리얼의 단계를 따랐다면 앱이 즉시 시작되어야 합니다. 개인 맞춤 인앱 광고 경험을 제공할 수 있습니다. GCP 콘솔에서 AdMob 계정과 Google 애널리틱스의 광고 수익 (Firebase 콘솔 또는 Google 애널리틱스 UI)
이제 모든 작업이 완료되었습니다. 하이브리드 수익 창출 최적화를 위한 튜토리얼을 완료했습니다. AdMob, Google 애널리틱스, Firebase 사용
관련 리소스
다른 솔루션 가이드를 확인하세요.
동영상 시리즈 보기: Firebase 및 AdMob
<ph type="x-smartling-placeholder"></ph> 2단계: Google 애널리틱스 설정