# Firebase Cloud Messaging Export Integration

Firebaseは、より豊かなアプリ体験を提供するのに役立つモバイルおよびWebアプリケーション開発プラットフォームです。Firebase Cloud Messagingを通じて、モバイルアプリやWebサイトに直接通知を送信できます。

Realtime DatabaseとCloud Firestoreは、ドキュメント構造のデータを保存し、データ変換が発生するたびに対応するアプリをミリ秒単位で同期できます。アプリとデータベースは相互にリッスンし合い、顧客により反応性の高いアプリ体験を提供します。Firebase **Cloud Functions**を使用すると、サーバーを管理することなく、Firebaseプラットフォームで発生するイベントに応答するバックエンドコードを記述できます。

## 前提条件

- [TD Toolbelt](https://toolbelt.treasuredata.com/)を含むTreasure Dataの基礎知識。
- Google Firebaseプロジェクト。
- 置換の場合、NULL値は""(空文字列)に切り詰められます。数値列への置換の場合、警告が表示され、レコードはスキップされます。
- メッセージは個別に送信されるため、セッション全体はロールバックされません。エラーメッセージはTreasure コンソールに記録されますが、ジョブは続行されます。
- Firebaseメッセージテンプレート構造についての十分な知識。


## Treasure コンソールを使用して接続を作成する

### 新しい接続を作成する

データ連携を設定する場合、統合にアクセスするための認証を提供します。Treasure Dataでは、認証を設定してからソース情報を指定します。

1. Treasure コンソールを開きます。
2. Integrations Hub > Catalogに移動します。
3. Firebaseを検索して選択します。


![](/assets/image-20200519-215903.52e326f47355487197798de2bf799b978ede99fd43793a96f2bf4f3963567dfb.0991c1f0.png)

次のダイアログが開きます。

![](/assets/image-20200519-220112.b3533425c4b5b067b33da54249c7783ede22ec31f9adcac96cf169b3a4617631.0991c1f0.png)
4. [Google Developer Consoleサービスアカウント](https://firebase.google.com/docs/cloud-messaging/auth-server)から取得した認証情報を入力または貼り付けます。

![](/assets/image-20200608-200049.7b4d29c1032bfd3d5b58712d5bdaaa6e1fab724027656cd2a19f8f3d48307243.0991c1f0.png)

1. **Done**を選択します。


- 新しいサービスアカウントキーを作成するには、[Firebaseドキュメント](https://firebase.google.com/docs/admin/setup#:~:text=To%20authenticate%20a%20service%20account,confirm%20by%20clicking%20Generate%20Key)を参照してください。


## データ連携でエクスポート結果を設定する

このステップでは、クエリを作成または再利用します。クエリ内で、データ連携を設定します。

### パラメータを指定して接続を設定する

1. Treasure コンソールを開きます。
2. **Data Workbench** > **Queries**に移動します。
3. データのエクスポートに使用する予定のクエリを選択します。
4. クエリエディタの上部にある**Export Results**を選択します。Choose Integrationダイアログが開きます。結果のエクスポートに使用する接続を選択する際には、既存の接続を使用するか、新しい接続を作成するかの2つのオプションがあります。


![](/assets/image-20200605-093602.2443bc93d261fe564b0e947b2b2acd38be82163c057edda478c09aea5fda086d.0991c1f0.png)
5. 既存の接続を使用する

1. 検索ボックスに接続名を入力してフィルタリングします。
2. 接続を選択します
3. エクスポートの詳細を指定します。


![](/assets/image-20200623-143430.add8062f0f004dba41178f8e97657c7c3123612a52ebc7b68215fbc4e3da6ebb.0991c1f0.png)

- **Project Id:** Firebaseプロジェクトのプロジェクト ID。
- **Message Template:** コネクタは、テンプレート内のすべての置換列とエイリアス(___column_name___)を、Firebaseメッセージに送信する個別のメッセージに置き換えます。すべての置換列とエイリアスは、エクスポートデータに存在する必要があります。
- **Fast Mode:** 検証、エラーログ、リトライなしで並列実行を有効にします。Default: false.
- **Connection Timeout in Seconds:** HTTP接続/読み取り/書き込みのタイムアウト秒数 (Default: 30, Min: 10, Max: 300).
- **Max retries (オプション):** システムが諦めるまでのリトライ回数。Default: 7.
- **Initial retry time wait in milliseconds (オプション):** 最初と2回目の試行の間の時間 (ミリ秒)。Default: 500 (0.5秒に相当).
- **Max retry wait in milliseconds (オプション):** 2回目以降のすべての試行の間の時間 (ミリ秒)。Default: 300000 (5分に相当).


以下はテンプレート設定のサンプルです:


```json
{
	"message": {
		"notification": {
			"title": "___title___",
			"body": "___body___"
		},
		"topic": "weather"
	}
}
```

![](/assets/image-20200623-144229.ff804776278f933981cc42f8a32c5537339dba469ea75ad3e62ef36ed0126ad7.0991c1f0.png)

### Firebaseにデータを投入するクエリの例

Treasure Dataから次のクエリを実行し、Firebase用の接続に結果をエクスポートします:


```SQL
Select 'test_body' as body, 'test_title' as title
```

### オプション: エクスポート用のScheduled Jobsを使用する

Result Exportと共にScheduled Jobsを使用して、指定した宛先に定期的に出力結果を書き込むことができます。

## Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

1. **Audience Studio** に移動します。
2. parent segment を選択します。
3. ターゲット segment を開き、右クリックして、**Create Activation** を選択します。
4. **Details** パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
5. **Output Mapping** パネルで activation 出力をカスタマイズします。


![](/assets/ouput.b2c7f1d909c4f98ed10f5300df858a4b19f71a3b0834df952f5fb24018a5ea78.8ebdf569.png)

- Attribute Columns
  - **Export All Columns** を選択すると、変更を加えずにすべての列をエクスポートできます。
  - **+ Add Columns** を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。**+ Add Columns** を選択し続けて、activation 出力用の新しい列を追加します。
- String Builder
  - **+ Add string** を選択して、エクスポート用の文字列を作成します。次の値から選択します:
    - String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
    - Timestamp: エクスポートの日時。
    - Segment Id: segment ID 番号。
    - Segment Name: segment 名。
    - Audience Id: parent segment 番号。


1. **Schedule** を設定します。


![](/assets/snippet-output-connector-on-audience-studio-2024-08-28.a99525173709da1eb537f839019fa7876ffae95045154c8f2941b030022f792c.8ebdf569.png)

- スケジュールを定義する値を選択し、オプションでメール通知を含めます。


1. **Create** を選択します。


batch journey の activation を作成する必要がある場合は、[Creating a Batch Journey Activation](/products/customer-data-platform/journey-orchestration/batch/creating-a-batch-journey-activation) を参照してください。

i

## オプション: Workflowでエクスポート結果を設定する

Treasure ワークフロー内で、このデータコネクタを使用してデータをエクスポートすることを指定できます。


```yaml
timezone: UTC

_export:
  td:
 database: sample_datasets

+td-result-into-firebase:
  td>: queries/sample.sql
  result_connection: your_connections_name
  result_settings:
    service_account_json: '{"type":"service_account","project_id":"project_id","private_key_id":"####"}'
    project_id: project_id
    message_template: {"message":{"notification":{"title":"___title___","body":"___body___"},"topic":"weather"}}
    fast_mode: true
    connection_timeout_seconds: 30
    retry_count: 7
    retry_initial_wait_millis: 500
    max_retry_wait_millis: 300000
```

オプションとして、[workflowでデータコネクタを使用してデータをエクスポートする](/ja/int/treasure-data-data-exchange-export-integration)方法について詳しくお読みください。