なおさんのブログ

iOSエンジニアのブログのはずがいろいろ書いてます。

Firebaseでいろいろな条件を使ってPush通知をする

はじめに

普段Firebaseを使ってPush通知を実現していますが、全員宛のPush通知を使うばかりでした。 調べてみるといろいろ条件を指定することができるのがわかったのでちょっと調べてみました。

すでにFirebaseを実装済みの前提で話を進めます。

基本的な導入方法は公式ドキュメントを見てください firebase.google.com

準備

今回はイベントとユーザープロパティを使った条件を試すので、アプリにイベントとプロパティを送信するための実装を追加します

Swift
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // Firebaseの初期化処理
        FirebaseApp.configure()
        
        // ユーザープロパティの送信
        Analytics.setUserProperty("test_male", forName: "test_gender")

        return true
    }
 :
 :
    @IBAction func eventTapped(_ sender: AnyObject) {
        // イベントの送信
        Analytics.logEvent("test_event", parameters: nil)
    }

イベントを条件としたPush通知の方法

さきほどのコードのtest_eventを送ったユーザーに対してPush通知を送信してみます。 イベントを条件にするにはオーディエンスを作成してそれを条件に指定します。

  1. Firebase管理画面からAudiences画面を表示します f:id:naohirotk:20210615092132p:plain
  2. オーディエンスボタンを選択し、カスタムオーディエンスを作成するを選択します f:id:naohirotk:20210615092155p:plain
  3. 条件を指定します。イベントからtest_eventを選択します。 有効期間は今回は30日を選択します f:id:naohirotk:20210615092215p:plain
  4. 無題のオーディエンスtest_audienceと名称を入力して保存を選択します Audiences画面に追加されました。 注意:オーディエンスのユーザーの反映はリアルタイムではなく24時間〜48時間かかります。 f:id:naohirotk:20210615092314p:plain
  5. あとはPush通知を送信するときのターゲットとしてユーザーオーディエンスtest_audienceを指定して送信します。 f:id:naohirotk:20210615112417p:plain

ユーザープロパティを条件としたPush通知の方法

test_gendertest_maleのユーザーを対象にPush通知を送信してみます。

  1. Push通知を送信するときのターゲットとしてユーザープロパティのtest_gendertest_maleを含む場合を条件にして送信します。 f:id:naohirotk:20210615115352p:plain

休眠ユーザーを条件としたPush通知の方法

一定期間アプリを起動していないいわゆる休眠ユーザーにPush通知を送信してみます。 前回のアプリエンゲージメントを条件にすることで実現できます

  1. Push通知を送信するときのターゲットとして前回のアプリエンゲージメントを選択し日数を指定して送信します。 f:id:naohirotk:20210615114110p:plain

最後に

今回の内容以外にもいろいろな条件を指定することができます。そういったものを利用するとPush通知の利用の幅が広がります。有効に使っていきたいと思います

参考資料

qiita.com