> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apache Kafka

> Apache KafkaトピックからOneSignalにカスタムイベントを同期して、リアルタイムのユーザー行動に基づいて自動化されたジャーニーとパーソナライズされたメッセージングキャンペーンをトリガーします。

export const PLATFORM_0 = "Kafka"

export const DATA_TYPE_0 = undefined

export const COLUMN_HEADER_0 = undefined

export const PROPERTIES_DESCRIPTION_0 = undefined

## 概要

OneSignal + Apache Kafka統合により、KafkaトピックからOneSignalのカスタムイベントAPIに直接カスタムイベントを自動同期できます。これにより、Kafkaインフラストラクチャを通じてストリーミングされるリアルタイムのユーザー行動に基づいて、自動化されたジャーニーとパーソナライズされたメッセージングキャンペーンをトリガーできます。

購入、商品閲覧、サブスクリプション変更、またはカスタムユーザーアクションなどのイベントを同期して、プッシュ通知、メール、アプリ内メッセージ、SMSを通じて、オンボーディングシーケンス、再エンゲージメントキャンペーン、トランザクションメッセージ、ターゲットプロモーションを自動的にトリガーできます。

***

## 要件

* アウトバウンドメッセージイベント用の[Event Streams](/docs/ja/event-streams)へのアクセス（プランの制限と超過料金が適用されます）
* インバウンドイベント同期用の[Custom Events](/docs/ja/custom-events)へのアクセス（プランの制限と超過料金が適用されます）
* [更新されたアカウントプラン](https://onesignal.com/pricing)（無料アプリでは利用できません）

### Apache Kafka

* **Kafkaクラスター**（Apache Kafka、Confluent、またはクラウドマネージド）
* イベントデータを含む**トピック**
* **認証資格情報**（SASL/SCRAM、SSL、またはAPIキー）
* Kafkaブローカーへの**ネットワークアクセス**
* JSON形式の**イベントデータ**

***

## セットアップ

### Kafka権限の設定

OneSignalはKafkaトピックからイベントを消費する必要があります。正確なセットアップはKafka構成によって異なります：

<Steps>
  <Step title="接続詳細を収集する">
    Kafkaクラスターに関する次の情報を収集します：

    * **ブートストラップサーバー**：Kafkaブローカーエンドポイント
    * **セキュリティプロトコル**：PLAINTEXT、SASL\_PLAINTEXT、SASL\_SSL、またはSSL
    * **認証**：ユーザー名/パスワード、証明書、またはAPIキー
    * **トピック名**：イベントデータを含むトピックのリスト
  </Step>

  <Step title="コンシューマー資格情報を作成する">
    OneSignalがKafkaトピックにアクセスするための資格情報を作成します：

    **SASL/SCRAM認証の場合：**

    ```bash theme={null}
    # Create a user with read access to event topics
    kafka-configs --bootstrap-server localhost:9092 \
      --alter --add-config 'SCRAM-SHA-256=[password=onesignal-password]' \
      --entity-type users --entity-name onesignal-consumer
    ```

    **ACLベースの承認の場合：**

    ```bash theme={null}
    # Grant read access to topics and consumer group
    kafka-acls --bootstrap-server localhost:9092 \
      --add --allow-principal User:onesignal-consumer \
      --operation Read --topic your-event-topic

    kafka-acls --bootstrap-server localhost:9092 \
      --add --allow-principal User:onesignal-consumer \
      --operation Read --group onesignal-consumer-group
    ```
  </Step>

  <Step title="トピックアクセスを検証する">
    OneSignalがイベントトピックにアクセスできることをテストします：

    ```bash theme={null}
    kafka-console-consumer --bootstrap-server localhost:9092 \
      --topic your-event-topic \
      --from-beginning \
      --max-messages 5
    ```
  </Step>
</Steps>

### OneSignal Kafka接続の設定

<Steps>
  <Step title="統合に移動する">
    OneSignalで、**Data > Integrations**に移動し、**Add Integration**をクリックします。
  </Step>

  <Step title="Apache Kafkaを選択する">
    利用可能な統合のリストから**Apache Kafka**を選択します。
  </Step>

  <Step title="接続詳細を入力する">
    Kafka接続情報を提供します：

    * **ブートストラップサーバー**：カンマ区切りのブローカーエンドポイント
    * **セキュリティプロトコル**：クラスターのセキュリティ構成
    * **ユーザー名/パスワード**：SASL資格情報（該当する場合）
    * **トピック名**：イベントデータを含むトピック
    * **コンシューマーグループ**：OneSignalの一意のグループID
  </Step>

  <Step title="接続をテストする">
    **接続をテスト**をクリックして、OneSignalがKafkaクラスターに接続してイベントを消費できることを確認します。
  </Step>
</Steps>

***

### イベントデータマッピング

{PLATFORM_0} {DATA_TYPE_0}をOneSignalのカスタムイベント形式にマッピングします：

| OneSignalフィールド | {COLUMN_HEADER_0} | 説明                         | 必須  |
| -------------- | ----------------- | -------------------------- | --- |
| `name`         | `event_name`      | イベント識別子                    | はい  |
| `external_id`  | `user_id`         | ユーザー識別子                    | はい  |
| `timestamp`    | `event_timestamp` | イベントが発生した時刻                | いいえ |
| `properties`   | `event_data`      | {PROPERTIES_DESCRIPTION_0} | いいえ |

***

## イベントデータスキーマ

Kafkaイベントメッセージは、JSON形式であり、OneSignalカスタムイベント構造にマップされるフィールドを含む必要があります：

| Kafkaイベントフィールド | OneSignalイベントフィールド | 説明 |
| -------------- | ------------------ | -- |
| `event_type`   |                    |    |
