Firebaseを使う準備
まずは下サイトで新しいプロジェクトを作成します。
プロジェクトを作成すると以下のような画面になるのでiOS アプリに Firebase を追加
を選びます。
情報を入力してアプリを追加します。
次画面に移動するとGoogleService-Info.plist
というファイルのダウンロードが開始します。
このファイルは後で使います。
次はXcodeでプロジェクトを作成します。
SingleViewApplicationを選択します。
次にFirebaseをインストールします。
Podsファイルを作成して以下のように修正して下さい。
platform :ios, ’10.0’ target 'MyApp' do use_frameworks! pod 'Firebase/Core' pod 'Firebase/RemoteConfig' end
先程ダウンロードしたGoogleService-Info.plist
をプロジェクトに追加します。
最後にAppDelegate.swift
へFirebase初期化処理を追加します。
これでFirebaseを使えるようになりました。
import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { FIRApp.configure() return true } }
FirebaseRemoteConfigを使ってみる
続けてFirebaseRemoteConfigを使ってみます。
Firebaseの管理画面に戻り、左メニューのRemote Configを選択します。
そのページで最初のパラメータを追加
ボタンを押してキーと値を追加します。
最後に変更を公開
ボタンを押して追加したパラメータを有効化します。
設定したパラメータの取得方法は以下の通りです。
import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let remoteConfig = FIRRemoteConfig.remoteConfig() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { FIRApp.configure() remoteConfig.fetch { [weak self] status, error in print(status.rawValue) print(error) self?.remoteConfig.activateFetched() // これでパラメータを取得できる print(self?.remoteConfig["test_key"].stringValue) // → "test_value" } return true } }
FirebaseRemoteConfigでA/Bテストをする
最後にFirebaseRemoteConfigを使ったA/Bテストの方法を見ていきます。
まず管理画面上の条件を追加
ボタンから条件を追加します。
条件はUser in random percentile
にして、好きな割合を入力します。
保存すると、2種類の値を設定できるようになります。
これらは先程設定した割合に応じて出しわけられます。
余談ですが、条件は推定地域などを選ぶ事ができます。
国に応じて出し分けをしたい場合などに有効そうです。
最後にFirebaseAnalyticsの設定を行います。
サイドメニューのAnalyticsタブのユーザープロパティーを選択して下さい。
新しいユーザーのプロパティー
ボタンからプロパティーをセットします。
次はXcode上でユーザーのプロパティーをセットします。
FIRAnalytics.setUserPropertyString
を使ってプロパティーのセットを行って下さい。
import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let remoteConfig = FIRRemoteConfig.remoteConfig() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { FIRApp.configure() remoteConfig.fetch { [weak self] status, error in self?.remoteConfig.activateFetched() FIRAnalytics.setUserPropertyString(self?.remoteConfig["test_key"].stringValue, forName: "my_property") } return true } }
これで実装は完了です。
Analytics上でプロパティー毎の数字を見る事ができるので、これを使って値の出し分けの成果を見ます。
その他
FirebaseRemoteConfigはとてもおもしろかったのですが、コホート分析でプロパティーによるフィルターが使えないのが少し痛かったです。
アクティブ率をKPIにする事が多いので、ここでA/Bテストを多用したかったです。
この辺りはGoogleAnalyticsのカスタムディメンションを使ったほうがうまくいくかもしれません。
GoogleAnalyticsだと下のように見ることができます。