概要
OneSignal + Elasticsearch統合により、ElasticsearchクラスターからOneSignalへのカスタムイベントの自動同期が可能になります。これにより、検索および分析エンジンに保存されたユーザー行動データに基づいて、自動化されたJourneyとパーソナライズされたメッセージングキャンペーンをトリガーできます。要件
- アウトバウンドメッセージイベント用のEvent Streamsへのアクセス(プランの制限と超過料金が適用されます)
- インバウンドイベント同期用のCustom Eventsへのアクセス(プランの制限と超過料金が適用されます)
- 更新されたアカウントプラン(無料アプリでは利用できません)
Elasticsearch
- Elasticsearchクラスター(バージョン7.0以上を推奨)
- 認証資格情報(APIキー、ユーザー名/パスワード、または証明書)
- 適切なドキュメント構造を持つ行動データを含むイベントインデックス
- OneSignalからElasticsearchクラスターへのネットワークアクセス
セットアップ
1
Elasticsearchアクセスを構成する
OneSignalがElasticsearchクラスターに接続できることを確認します:Elasticsearch Cloudの場合:
- Elasticsearch CloudコンソールのSecurityに移動します
- イベントインデックスの読み取り権限を持つAPIキーを作成します
- Cloud IDとAPI Keyをメモします
- 認証を構成します(基本認証またはAPIキー)
- OneSignalのIPアドレスからクラスターにアクセスできることを確認します
- クラスターのエンドポイントURLと資格情報をメモします
2
専用ユーザーを作成する(推奨)
イベントインデックスへの読み取り専用アクセスを持つOneSignal専用ユーザーを作成します:
3
OneSignalで統合を追加する
OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。Elasticsearchを選択し、次を提供します:
- Cluster URL:Elasticsearchエンドポイント(例:
https://your-cluster.es.amazonaws.com) - Authentication Method:APIキー、基本認証、または証明書
- Username/PasswordまたはAPI Key:認証資格情報
- Cloud ID(Elasticsearch Cloudを使用している場合):デプロイメントのCloud ID
4
イベントデータソースを構成する
イベントデータを含むElasticsearchインデックスを指定します:
- Index Pattern:イベントを含むインデックスまたはインデックスパターン(例:
events-*) - Event Query:イベントドキュメントをフィルタリングするためのオプションのElasticsearch Query DSL
- Time Field:時間ベースのフィルタリングのためのタイムスタンプフィールド(例:
@timestamp)
- イベント名/タイプ(String)
- ユーザー識別子(String)
- イベントタイムスタンプ(Date)
- 追加のイベントプロパティ(Object)
5
接続をテストする
Test Connectionをクリックして、OneSignalがElasticsearchクラスターにアクセスし、イベントデータを読み取れることを確認します。
イベントデータマッピング
をOneSignalのカスタムイベント形式にマッピングします:| OneSignalフィールド | 説明 | 必須 | |
|---|---|---|---|
name | event_name | イベント識別子 | はい |
external_id | user_id | ユーザー識別子 | はい |
timestamp | event_timestamp | イベントが発生した時刻 | いいえ |
properties | event_data | いいえ |
高度な構成
Query DSLフィルタリング
OneSignalに同期する前に、Elasticsearch Query DSLを使用してイベントデータをフィルタリングおよび変換します:インデックスパターン構成
複数のインデックス全体を効率的にクエリします:- 時間ベースのインデックス:時間分割データには
events-2024-*のようなパターンを使用します - ルーティング:ユーザーベースのクエリに対して一貫したルーティングを確保します
- エイリアス:簡素化された管理のためにインデックスエイリアスを使用します
パフォーマンスの最適化
大量のイベントボリュームに対してクエリを最適化します:- フィールドフィルタリング:必要なフィールドのみを取得するために
_sourceフィルタリングを使用します - Scroll API:大きな結果セットの場合、OneSignalはスクロールページネーションを使用します
- 日付計算:効率的な時間ベースのフィルタリングにはElasticsearch日付計算を使用します
Elasticsearchクラスターが、クラスターを使用している他のアプリケーションに影響を与えることなく、OneSignalのクエリを処理するのに十分なリソースを持っていることを確認してください。
FAQ
OneSignalはElasticsearchからどのくらいの頻度でイベントを同期しますか?
OneSignalは、構成されたスケジュールに基づいてイベントデータを同期し、最小間隔は15分です。複数のElasticsearchインデックスからイベントを同期できますか?
はい。インデックスパターン(例:events-*)を使用して複数のインデックス全体をクエリするか、異なるインデックスグループに対して複数の統合を作成できます。