ステップ 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:
[設定を作成](使用していない場合は [パラメータを追加])をクリックします。 (その前は Remote Config)。
[パラメータの作成] パネルで、次の手順を完了します。
[Parameter name] フィールドに「
ad_control_switch
」と入力します。Data type
プルダウン メニューから [ブール値] を選択します。[新規作成] をクリックし、[新しい条件を作成] を選択します。
[新しい条件の定義] ダイアログで、次の手順を完了します。
[Name] フィールドに「
Purchasers Group
」などのわかりやすい名前を入力します。 条件の識別可能な名前)。[適用する条件...] プルダウン メニューから [ユーザー オーディエンス] を選択します。
[オーディエンスを選択] プルダウン メニューから [購入者] を選択します。
[Save Condition] をクリックします。
[パラメータの作成] パネルに戻り、次の手順を行います。
[購入者グループ] の [値] で [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 を追加してインストールします。
pod 'Firebase/RemoteConfig'
Android
build.gradle
ファイルに Remote Config ライブラリ依存関係を追加します。
implementation 'com.google.firebase:firebase-config:22.0.0'
フラッター
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 時間に 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);
フラッター
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();
}
});
フラッター
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 パラメータ値を使用する
プリフェッチされた Remote Config 値を loadAdUnit()
関数で使用して、以下を行います。
は、アプリ インスタンスが次のいずれかを行う必要があるかどうかを判断します。
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.
}
}
フラッター
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.
}
}
アプリをリリースする
広告を表示するかどうかのロジックはコードベース内にあるため、 このロジックを含むアプリの新しいバージョンをリリースする。
このチュートリアルの手順に沿って操作した場合、アプリはすぐに起動するはずです。 カスタマイズしたアプリ内広告エクスペリエンスをユーザーに提供できます。お客様の AdMob アカウントと Google アナリティクスの両方の広告収益 (Firebase コンソールまたは Google アナリティクスの UI で)確認できます。
これで完了です。ハイブリッド収益化を最適化するチュートリアルを完了しました AdMob、Google アナリティクス、Firebase を使用します。
関連資料
別のソリューション ガイドをご覧ください。
<ph type="x-smartling-placeholder"></ph> ステップ 2: Google アナリティクスを設定する