しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

FirebaseのIn-App Messagingでアプリ内にアラートを出す

今回は下URLを参考にFirebaseのIn-App Messagingを使ってアプリ内にアラートを出してみました。

【iOS】Firebase In-App Messaging を使ってアプリ内メッセージを送ってみた | DevelopersIO

まずはCocoaPodsでFirebaseをインストールします。

target 'MyApp' do
  use_frameworks!

  pod 'Firebase'
  pod 'FirebaseInAppMessaging', '~> 10.11.0-beta'
end

FirebaseInAppMessagingのバージョンはbetaがついているのでバージョン指定をしないと古いものをインストールすることになります。
こちら下URLを参考にしました。

Firebase In-App MessagingをCocoaPodsで導入するとビルドエラーになる | anz blog

次はFirebaseの初期設定を行います。
FirebaseのConsoleからプロジェクトを追加していきます。

プロジェクトの作成が終わったらiOSボタンからiOSアプリを追加していきます。

設定中にダウンロードしたGoogleService-Info.plistはプロジェクトに追加しておきます。

設定が終わったらAppDelegate.swiftにFirebaseの初期化処理を入れます。

import UIKit
import Firebase

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure()
        
        return true
    }
}

これでアプリを起動するとFirebaseにイベントが来ます。

Firebaseの設定が終わったので次はIn-App Messagingを動かしていきます。

まずはメッセージを送るためにデバイスのIDを取得します。
Edit Schemeスキーマ編集画面に移動してArguments Passed On Launch-FIRDebugEnabledを追加します。

これでアプリを起動するとInstallation IDが取得できるので保存しておきます。

次はFirebase上でアラートを作っていきます。
まずはGoogle CloudでFirebase In-App Messaging APIを有効にします。

次にFirebaseのサイドメニューからMessaging画面に移動してIn-Appメッセージを作ります。

最初の画面でデザインやボタンのアクションの設定をします。

この画面の右側の「デバイスでテスト」に先程取得したInstallation IDを入れる事でテストする事ができます。

実際にテストをすると下のようにアプリ立ち上げるだけでアラートを表示できます。

アラートは他に表示条件も設定する事ができます。

他には表示のトリガーのイベントの設定やコンバージョンの設定など必要な設定が一通り選べるようになっています。
今回はTestEventというイベントが発生した時にアラートが出る設定にしてみました。

アプリ側では下のようにボタンを押したらTestEventを送れるようにしました。

import UIKit
import FirebaseAnalytics

class ViewController: UIViewController {
    @IBAction func tapButton() {
        Analytics.logEvent("TestEvent", parameters: nil)
    }
}

ボタンを押したら下のようにアラートを表示する事ができました。

In-App Messaging試してみたのですがアプリアップデートなしで手軽にアラート出せるのが良さそうです。
ただ表示回数は1人あたり1回/1日のようなのでそこは注意が必要そうです。