Skip to content
Last updated

Mobile Pushセットアップ

概要

Engage StudioからMobile Pushキャンペーンを送信する前に、Firebase Cloud Messaging (FCM) を設定し、Treasure Dataと統合する必要があります。このガイドでは、AndroidとiOSの両プラットフォームの完全なセットアッププロセスを説明します。

必要要件

  • Firebaseプロジェクト: Cloud Messagingが有効なFirebaseプロジェクト
  • Apple Developer Account: iOSプッシュ通知 (APNs) に必要
  • Treasure Dataアカウント: 統合を設定するための適切な権限

アーキテクチャ概要

Engage StudioのMobile Push通知は次のフローで動作します:

  1. キャンペーン作成: Engage Studioでターゲットオーディエンスとコンテンツを含むキャンペーンを作成
  2. 配信パイプライン: Engage StudioがデバイストークンとペイロードをFirebase Cloud Messagingに送信
  3. FCM/APNs: FirebaseがAndroid (FCM経由) とiOS (APNs経由) に通知を配信
  4. モバイルアプリ: アプリが通知を受信し、ユーザーアクションをトラッキング
  5. イベントトラッキング: アプリがイベントをTreasure Dataに送り返して分析
┌─────────────────┐
│ Engage Studio   │
│   Campaign      │
└────────┬────────┘


┌─────────────────┐
│  Firebase       │
│  Cloud          │
│  Messaging      │
└────────┬────────┘

    ┌────┴────┐
    │         │
    ▼         ▼
┌────────┐ ┌────────┐
│ FCM    │ │ APNs   │
│Android │ │  iOS   │
└───┬────┘ └───┬────┘
    │          │
    ▼          ▼
┌──────────────────┐
│   Mobile App     │
│ (Customer-built) │
└────────┬─────────┘


┌─────────────────┐
│ Treasure Data   │
│  (Event Logs)   │
└─────────────────┘

ステップ1: Firebaseプロジェクトのセットアップ

1.1 Firebaseプロジェクトを作成または選択

  1. Firebase Consoleにアクセス
  2. プロジェクトを追加をクリックするか、既存のプロジェクトを選択
  3. ウィザードに従ってプロジェクト作成を完了

1.2 Androidアプリを登録

  1. Firebase ConsoleでAndroidアイコンをクリック
  2. Androidパッケージ名を入力 (例: com.example.myapp)
    • これはbuild.gradleファイルのapplicationIdと一致する必要があります
  3. オプションでアプリのニックネームとSHA-1証明書を入力
  4. アプリを登録をクリック
  5. google-services.jsonファイルをダウンロード
    • このファイルをAndroidアプリのapp/ディレクトリに配置
  6. SDKセットアップ手順に従う(Android開発者ガイドで説明)

1.3 iOSアプリを登録

  1. Firebase ConsoleでiOSアイコンをクリック
  2. iOSバンドルIDを入力 (例: com.example.myapp)
    • これはXcodeのBundle Identifierと一致する必要があります
  3. オプションでアプリのニックネームとApp Store IDを入力
  4. アプリを登録をクリック
  5. GoogleService-Info.plistファイルをダウンロード
    • このファイルをXcodeプロジェクトルートに追加
  6. SDKセットアップ手順に従う(iOS開発者ガイドで説明)

ステップ2: Apple Push Notification Service (APNs) の設定

このステップはiOSプッシュ通知に必須です。AndroidはFCMを直接使用するため、APNsは不要です。

2.1 APNs認証キーを作成

  1. Apple Developer Portalにログイン
  2. Certificates, Identifiers & Profiles > Keysに移動
  3. **+**ボタンをクリックして新しいキーを作成
  4. キー名を入力 (例: "My App APNs Key")
  5. **Apple Push Notifications service (APNs)**にチェック
  6. Continueをクリックし、次にRegisterをクリック
  7. .p8キーファイルをダウンロード
    • 重要: このファイルを安全に保存してください — ダウンロードは1回のみ可能です

2.2 APNsキーをFirebaseにアップロード

  1. Firebase ConsoleでProject Settings > Cloud Messagingに移動
  2. Apple app configurationの下でUploadをクリック
  3. 次の情報を提供:
    • APNs Authentication Key: .p8ファイルをアップロード
    • Key ID: Apple Developer PortalのKeysで確認
    • Team ID: Apple Developer PortalのMembershipで確認
  4. Uploadをクリック

ステップ3: Integration Hubの設定

Engage Studioからプッシュ通知を送信するには、Treasure DataのIntegration HubでFirebase統合を設定する必要があります。

3.1 Firebase Streaming Connectorを登録

  1. Treasure Data Consoleにログイン
  2. Integration Hub > Catalogに移動
  3. Firebase Cloud Messaging (Streaming Egress Connector) を検索
  4. Create Authenticationをクリック
  5. 認証を設定:
フィールド説明
Authentication Nameこの設定の説明的な名前fcm-production
Firebase Project IDFirebase ConsoleからのFirebaseプロジェクトIDmy-app-12345
Service Account JSONFirebase Consoleからのサービスアカウント鍵ファイル (Settings > Service Accounts > Generate new private key)ダウンロードしたJSONファイルをアップロード
  1. Saveをクリック

3.2 Treasure Engage Connectorを設定

Treasure Engage Connectorは、Engage Studioからのキャンペーン配信を認証するために使用されます。

  1. Integration Hub > Catalogに移動
  2. Treasure Engageを検索
  3. Create Authenticationをクリック
  4. 認証を設定:
フィールド説明
Authentication Nameこのコネクタの説明的な名前 例: engage-master-key
Master API KeyTreasure Data Master API Key セキュリティ注意: このキーはアカウント全体へのアクセス権を持ちます。安全に保存し、定期的にローテーションしてください。
  1. Saveをクリック

ステップ4: 設定を確認

4.1 Firebase接続をテスト

次の手順でFirebaseセットアップを確認できます:

  1. Firebase ConsoleでCloud Messagingに移動
  2. Send your first messageをクリック
  3. 通知のタイトルとテキストを入力
  4. Send test messageをクリック
  5. デバイスFCMトークンを入力(開発者ガイド実装後、アプリログから取得可能)
  6. デバイスに通知が表示されることを確認

4.2 Integration Hub認証を確認

Treasure Data Consoleで:

  1. Integration Hub > Authenticationsに移動
  2. 両方の認証がリストに表示されることを確認:
    • Firebase Cloud Messaging (Streaming Egress)
    • Treasure Engage
  3. ステータスがActiveと表示されていることを確認

ステップ5: モバイルアプリの実装

この時点で、FirebaseとTreasure Dataの統合が設定されました。次のステップは、モバイルアプリでプッシュ通知処理を実装することです。

開発者による実装が必要

一部のマーケティングプラットフォームとは異なり、Treasure Dataはモバイルプッシュ通知用の事前構築SDKを提供していません。開発チームは、AndroidおよびiOSアプリに次の機能を実装する必要があります:

  1. FCM/APNsトークン登録: デバイストークンを取得し、Treasure Dataに送信
  2. 通知表示: 受信したプッシュ通知を処理
  3. ユーザーアクショントラッキング: 配信、開封、削除、リンク/ディープリンクイベントをトラッキング
  4. イベントアップロード: イベントデータをTreasure Data Ingest APIに送信

詳細な実装手順については、次を参照してください:

セキュリティベストプラクティス

APIキー管理

  • APIキーをソースコントロールにコミットしない: 環境変数またはセキュアなキー管理サービスを使用
  • 定期的にキーをローテーション: Master API KeyとFirebaseサービスアカウントキーを定期的に変更
  • 開発と本番で別々のキーを使用: 各環境に対して異なるFirebaseプロジェクトとTreasure Data書き込みキーを作成
  • キー権限を制限: アプリ側のイベントトラッキングには書き込み専用キーを使用

Firebaseサービスアカウントの権限

Firebaseサービスアカウント鍵を生成する際:

  1. Firebase Console > Project Settings > Service Accountsに移動
  2. Generate new private keyをクリック
  3. ダウンロードしたJSONファイルを安全に保存
  4. サービスアカウントに最小限の必要な権限のみがあることを確認:
    • Firebase Cloud Messaging API: 有効
    • 不要なロールを削除

トラブルシューティング

問題: iOSで通知が受信されない

考えられる原因:

  • APNsキーがFirebaseにアップロードされていない
  • XcodeとFirebase間のBundle IDの不一致
  • デバイスで通知権限が許可されていない
  • アプリがリモート通知用に正しく登録されていない

解決策:

  1. APNsキーがFirebase Consoleに正しくアップロードされていることを確認
  2. Bundle IDが完全に一致することを確認(大文字小文字を区別)
  3. iOS設定 > 通知で通知権限ステータスを確認
  4. iOS開発者ガイドで実装を確認

問題: Androidで通知が受信されない

考えられる原因:

  • google-services.jsonがプロジェクトに追加されていない
  • パッケージ名の不一致
  • Firebase Cloud Messagingが有効になっていない
  • デバイスがオフラインまたはFCMトークンが期限切れ

解決策:

  1. google-services.jsonapp/ディレクトリにあることを確認
  2. build.gradleのパッケージ名がFirebase登録と一致することを確認
  3. Firebase ConsoleでFCMが有効になっていることを確認
  4. デバイスから新しいFCMトークンをリクエスト
  5. Android開発者ガイドで実装を確認

問題: Integration Hubで認証に失敗

考えられる原因:

  • Master API Keyが正しくない
  • Firebaseサービスアカウント鍵が無効または期限切れ
  • Firebase Project IDが正しくない

解決策:

  1. Master API Keyが正しくアクティブであることを確認
  2. Firebase Consoleから新しいサービスアカウントキーを生成
  3. Firebase Project IDを再確認(Firebase Console > Project Settingsで確認)

次のステップ

このセットアップが完了したら:

  1. モバイルアプリ機能を実装:

  2. 最初のキャンペーンを作成:

  3. イベントトラッキングをセットアップ:

追加リソース