チュートリアル: AdMob、Google アナリティクス、Firebase を使用してハイブリッド型の収益化を最適化する

ステップ 3: Firebase Remote Config を設定して特定の広告エクスペリエンスを表示する


はじめに: ハイブリッドの最適化 AdMobGoogle Analytics、Firebase を使用した収益化
ステップ 1: AdMob を使用してディスプレイ用に新しい広告ユニットを作成する
ステップ 2: 設定 Google アナリティクス

ステップ 3: 設定 Firebase Remote Config(特定の広告エクスペリエンスを表示)


最後のステップでは、Google アナリティクスのオーディエンスについて学習しました。イン このステップでは、ブール値制御パラメータ Remote Config を作成します。 (ad_control_switch)の「購入ユーザー」を活用するできます。これから 次に、アプリのコードにロジックを追加して、アプリが そのパラメータの値を指定します

Firebase コンソールで Remote Config のパラメータと条件を設定する

  1. Firebase コンソールで次の操作を行います。 Firebase プロジェクトを開きます。

  2. 左側のペインで [エンゲージメント] セクションを開き、[ Remote Config:

  3. [設定を作成](使用していない場合は [パラメータを追加])をクリックします。 (その前は Remote Config)。

  4. [パラメータの作成] パネルで、次の手順を完了します。

    1. [Parameter name] フィールドに「ad_control_switch」と入力します。

    2. Data type プルダウン メニューから [ブール値] を選択します。

    3. [新規作成] をクリックし、[新しい条件を作成] を選択します。

  5. [新しい条件の定義] ダイアログで、次の手順を完了します。

    1. [Name] フィールドに「Purchasers Group」などのわかりやすい名前を入力します。 条件の識別可能な名前)。

    2. [適用する条件...] プルダウン メニューから [ユーザー オーディエンス] を選択します。

    3. [オーディエンスを選択] プルダウン メニューから [購入者] を選択します。

    4. [Save Condition] をクリックします。

  6. [パラメータの作成] パネルに戻り、次の手順を行います。

    1. [購入者グループ] の [] で [false] を選択します。

    2. [デフォルト値] で [true] を選択します。

  7. [保存]、[変更を公開] の順にクリックします。

この設定では、ユーザーが「購入者」レベルにあるかどうかが確認されます。オーディエンス (有料ユーザーの場合):

  • ユーザーが [購入者] リストに含まれている場合公開した場合、Remote Configad_control_switch パラメータに対して false の値を返します。

  • ユーザーが [購入者] に含まれていない場合オーディエンス、その後は Remote Config ad_control_switch パラメータに対して true の値を返します。

次の手順では、アプリに Remote Config を実装して、 これらのパラメータ値を処理します

アプリに Remote Config SDK を追加する

アプリケーション コードで Remote Config を使用する前に、 Remote Config SDK をアプリのコードベースに追加します。なお、 Google Mobile AdsAdMob)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 アナリティクスを設定する