概要
OneSignal + BigQuery統合は、2つの強力なデータパイプラインをサポートしています:- エクスポート:OneSignalからBigQueryにメッセージングイベントデータ(プッシュ、メール、SMS、アプリ内)を自動的に送信して、分析とレポート作成を行います。
- インポート:BigQueryデータセットからOneSignalにカスタムユーザーイベントを同期して、自動化されたJourneysとパーソナライズされたメッセージングをトリガーします。
OneSignalイベントをBigQueryにエクスポート
メッセージングパフォーマンスとエンゲージメントイベント(例:送信、開封、クリック)をBigQueryに送信して、次のことを行います:- カスタムダッシュボードとレポートを構築
- チャネル全体の配信とエンゲージメントトレンドを追跡
- OneSignalデータを他のビジネスデータと組み合わせて分析
- Access to Event Streams for outbound message events (Plan limitations and overages apply)
- Access to Custom Events for inbound event syncing (Plan limitations and overages apply)
- Updated Account Plan (not available on free apps)
- 課金が有効なGoogle Cloud Platformプロジェクト
- GCPプロジェクトでBigQueryが有効
- BigQuery書き込み権限を持つサービスアカウント
1. サービスアカウントを作成
1
Google Cloud Platformアカウントにログイン
ログイン後、適切なプロジェクトが選択されていることを確認してください。

2
サービスアカウントを作成
サービスアカウント作成ページにアクセスし、Create Service Accountをクリックします。

3
フィールドに入力
任意の名前とサービスアカウントIDを指定します。

4
'BigQuery User'ロールを割り当て
サービスアカウントに「BigQuery User」ロールを付与します。

5
このアカウントのJSONキーを作成
新しいサービスアカウント > Keys > Add Key > Create new key > JSONを選択します。ファイルを保存します。
統合を有効にするために、このJSONキーファイルの全内容をOneSignalに貼り付けます。
2. OneSignalで統合を有効化
1
OneSignal > Data > Integrations > BigQueryに移動
2
サービスアカウントのJSONキーを貼り付け
3
設定を構成
- Sync Frequency:最短で15分ごと
- Dataset/Table Names:小文字、数字、アンダースコアのみを含み、数字で始めることはできません。
- Event Types:特定のメッセージイベント(例:送信済み、開封、クリック)を選択
- **注意:**複数のイベントタイプを選択するか、後で選択したイベントを更新できます。
4
Saveをクリックして確認を待つ
初期データ同期がBigQueryに表示されるまで15〜30分かかる場合があります。待っている間に、プッシュ、メール、アプリ内、またはSMS経由でメッセージを送信して、選択したイベントをトリガーします。
3. BigQueryでデータを表示
BigQueryコンソールを開き、データセット(例:onesignal_events_<app-id>)を見つけて、同期されたメッセージイベントを探索します。

エクスポートされたメッセージイベントを含むBigQueryデータセット
Message events and properties
Message event kinds
Property:event_kind
Type: String
The kind of message and event (e.g. message.push.received, message.push.sent).
| Message Event (OneSignal) | event_kind | Description |
|---|---|---|
| Push Sent | message.push.sent | Push notification successfully sent. |
| Push Received | message.push.received | Delivered push (see Confirmed Delivery). |
| Push Clicked | message.push.clicked | User clicked the push. |
| Push Failed | message.push.failed | Delivery failure. See message reports. |
| Push Unsubscribed | message.push.unsubscribed | User unsubscribed from push. |
| In-App Impression | message.iam.displayed | In-App message shown. |
| In-App Clicked | message.iam.clicked | In-App message clicked. |
| In-App Page Viewed | message.iam.pagedisplayed | In-App page shown. |
| Email Sent | message.email.sent | Email delivered. |
| Email Received | message.email.received | Email accepted by recipient’s mail server. |
| Email Opened | message.email.opened | Email opened. See Email Reports. |
| Email Link Clicked | message.email.clicked | Link in email clicked. |
| Email Unsubscribed | message.email.unsubscribed | Recipient unsubscribed. |
| Email Marked Spam | message.email.resporedasspam | Marked as spam. See Email Deliverability. |
| Email Bounced | message.email.hardbounced | Bounce due to permanent delivery failure. |
| Email Failed | message.email.failed | Delivery failed. |
| Email Suppressed | message.email.supressed | Suppressed due to suppression list. |
| SMS Sent | message.sms.sent | SMS sent. |
| SMS Delivered | message.sms.delivered | SMS successfully delivered. |
| SMS Failed | message.sms.failed | SMS failed to deliver. |
| SMS Undelivered | message.sms.undelivered | SMS rejected or unreachable. |
Event data schema
For each message event generated by a user, the following metadata will be attached to the record.| Column Name | Type | Description |
|---|---|---|
event_id | UUID | Unique identifier for the event |
event_timestamp | Timestamp | Time of event occurrence |
event_kind | String | The Event Kind |
subscription_device_type | String | Device type (e.g., iOS, Android, Web, Email, SMS) |
language | String | Subscription language code |
version | String | Integration version |
device_os | String | Device operating system version |
device_type | Number | Numeric device type |
token | String | Push token, phone number, or email |
subscription_id | UUID | Subscription ID |
subscribed | Boolean | Subscription status |
onesignal_id | UUID | OneSignal user ID |
last_active | String | Last active timestamp |
sdk | String | OneSignal SDK version |
external_id | String | External user ID that should match the integration user ID |
app_id | UUID | App ID from OneSignal |
template_id | UUID | Template ID (if applicable) |
message_id | UUID | Message batch/request ID |
message_name | String | Name of the message |
message_title | String | Message title (English only) |
message_contents | String | Truncated message body (English only) |
_created, _id, _index, _fivetran_synced | Internal use | Fivetran sync metadata |
Notes
- Syncs after saving/activating may take an additional 15-30 minutes to complete.
- Deactivating may still result in one final sync after deactivation.
- To ensure efficient data synchronization, our system automatically creates and manages staging datasets. These datasets, named with a pattern like
fivetran_{two random words}_staging, temporarily store data during processing before it’s integrated into your main schema. These staging datasets are essential for maintaining a streamlined workflow and should not be deleted, as they will be automatically recreated.
BigQueryからイベントをインポート
BigQueryからOneSignalに行動イベントデータを送信して、次のことを行います:- ユーザーアクティビティに基づいてJourneysをトリガー
- 行動データに基づいてメッセージングをパーソナライズ
- Access to Event Streams for outbound message events (Plan limitations and overages apply)
- Access to Custom Events for inbound event syncing (Plan limitations and overages apply)
- Updated Account Plan (not available on free apps)
- BigQueryとイベントデータテーブルを持つGCPプロジェクト
- 読み取り権限を持つサービスアカウント
- BigQueryデータセットに行動データを含むイベントデータテーブル
1
BigQueryサービスアカウントを作成
OneSignalは、接続を作成すると自動的にサービスアカウントを生成します。または、独自のサービスアカウントキーJSONファイルを提供することもできます。独自のサービスアカウントを作成する場合は、以下にリストされている必要な権限があることを確認してください。
2
必要な権限を付与
OneSignalサービスアカウントには、次のBigQuery IAMロールが必要です:
bigquery.dataViewer- イベントデータを含むデータセットとテーブルへの読み取りアクセスbigquery.jobUser- データクエリのジョブを作成する権限bigquery.metadataViewer- プロジェクトレベルのメタデータアクセス(推奨)
3
OneSignalで統合を追加
In OneSignal, go to Data > Integrations and click Add Integration.Google BigQueryを選択し、次を提供します:
- Google Cloud Project ID:BigQueryデータセットを含むGCPプロジェクト
- Dataset Region:BigQueryデータセットが保存されている場所
- Service Account Key(オプション):独自のサービスアカウントを使用する場合はJSONキーファイル
4
イベントデータソースを設定
イベントデータを含むBigQueryデータセットとテーブルを指定します:
- Dataset:BigQueryデータセット名(例:
analytics_events) - Table/View:イベントレコードを含むテーブルまたはビュー
- Event Query:イベントデータをフィルタリングまたは変換するためのオプションのSQLクエリ
- イベント名/タイプ
- ユーザー識別子
- イベントタイムスタンプ
- 追加のイベントプロパティ
5
接続をテスト
Test Connectionをクリックして、OneSignalがBigQueryプロジェクトにアクセスしてイベントデータを読み取れることを確認します。
Event data mapping
Map your to OneSignal’s custom events format:| OneSignal Field | Description | Required | |
|---|---|---|---|
name | event_name | Event identifier | Yes |
external_id | user_id | User identifier | Yes |
timestamp | event_timestamp | When event occurred | No |
properties | event_data | No |
高度な構成
カスタムSQLクエリ
OneSignalに同期する前に、カスタムSQLを使用してイベントデータをフィルタリングまたは変換します:クロスプロジェクトアクセス
イベントデータが複数のBigQueryプロジェクトにまたがる場合は、参照されるテーブルまたはビューを含む各プロジェクトへのアクセス権をOneSignalサービスアカウントに付与します。最適なパフォーマンスを得るには、BigQuery接続リージョンが特定のテーブルリージョンと一致している必要があります。