とある施策を実行したいけど、全員にやるのは怖いので、一部のユーザで試しながら少しずつ増やしていきたい、もしくは反応がヤバかったら即中止したい、という事があると思います。
FirebaseのRemoteConfigを使って、そんな一部のユーザにだけ施策を実行する方法を解説していきます。
今回は、一部のユーザにだけ全画面インタースティシャル広告(全画面広告)を試す、というユースケースで解説していきます。
RemoteConfigで条件を追加
まず、Firebaseを開き「実行」欄にある「Remote Config」を選んだら「条件」タブを選び「条件を追加」を押します。
そして、適当に「名前」を入れた後、「適用する条件」で「ユーザー(ランダム%)」を選び、その右隣に施策を試したいユーザの割合を指定(今回は全ユーザーの10%とします)したら右下の青い「条件を作成」ボタンを押します。
パラメータを追加
次に実際に施策を実行するかどうかをアプリ内で判定するためのフラグ変数となる「パラメータ」を設定していきます。
「パラメータ」タブを選んだら「パラメータを追加」を押します。
アプリ内で参照するフラグ変数名となる「パラメータ名」を適当に決め、今回は「データ型」は「ブール値」、「Default value」はfalseとした後、「新たに追加」ボタンを押すと…
リストが表示されるので「条件値」を押し、先程作成した条件「show interstitial ads」を選びます。
すると、指定した条件の場合の値を指定する欄が表示されるので、「Value」でtrueを選んで「保存」を押します。
最後に「変更を公開」を押せば、Firebaseでの設定は完了です。
アプリでRemoteConfigを参照して処理を分岐させる
今回はiOSのネイティブ開発環境で、Swiftを使って実装する場合を紹介します。
cocoapodsなどでRemoteConfigライブラリを追加しておくのを忘れずに。
pod 'Firebase/RemoteConfig'
まずは、RemoteConfigのパラメータを取得する初期化処理をすべての処理の最初の方に書いておきます。AppDelegateとか。
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 0
remoteConfig.configSettings = settings
remoteConfig.fetch { (status, error) -> Void in
if status == .success {
remoteConfig.activate { changed, error in
// RemoteConfigパラメータの取得成功
}
} else {
// RemoteConfigパラメータの取得失敗
}
}
後は、処理をRemoteConfigで分岐したい場所で次の様なコードを書いて分岐させたら完了です。
import FirebaseRemoteConfig
...
if (RemoteConfig.remoteConfig()["try_interstitial_ads"].boolValue) {
// インタースティシャル広告を表示する。
}
これで、FirebaseのRemoteConfigの条件欄に最初に追加した「条件」の対象ユーザーの割合を変更すればアプリ側にすぐ反映されるので、アプリの再リリース無しに自由に施策の対象範囲を変更できるようになります。