メインコンテンツへスキップ

概要

OneSignal + BigQuery統合は、2つの強力なデータパイプラインをサポートしています:
  • エクスポート:OneSignalからBigQueryにメッセージングイベントデータ(プッシュ、メール、SMS、アプリ内)を自動的に送信して、分析とレポート作成を行います。
  • インポート:BigQueryデータセットからOneSignalにカスタムユーザーイベントを同期して、自動化されたJourneysとパーソナライズされたメッセージングをトリガーします。
これらの統合により、ユーザーエンゲージメントデータを完全に制御でき、高度な分析とリアルタイムの行動駆動型メッセージングが可能になります。

OneSignalイベントをBigQueryにエクスポート

メッセージングパフォーマンスとエンゲージメントイベント(例:送信、開封、クリック)をBigQueryに送信して、次のことを行います:
  • カスタムダッシュボードとレポートを構築
  • チャネル全体の配信とエンゲージメントトレンドを追跡
  • OneSignalデータを他のビジネスデータと組み合わせて分析
要件
  • 課金が有効な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_kindDescription
Push Sentmessage.push.sentPush notification successfully sent.
Push Receivedmessage.push.receivedDelivered push (see Confirmed Delivery).
Push Clickedmessage.push.clickedUser clicked the push.
Push Failedmessage.push.failedDelivery failure. See message reports.
Push Unsubscribedmessage.push.unsubscribedUser unsubscribed from push.
In-App Impressionmessage.iam.displayedIn-App message shown.
In-App Clickedmessage.iam.clickedIn-App message clicked.
In-App Page Viewedmessage.iam.pagedisplayedIn-App page shown.
Email Sentmessage.email.sentEmail delivered.
Email Receivedmessage.email.receivedEmail accepted by recipient’s mail server.
Email Openedmessage.email.openedEmail opened. See Email Reports.
Email Link Clickedmessage.email.clickedLink in email clicked.
Email Unsubscribedmessage.email.unsubscribedRecipient unsubscribed.
Email Marked Spammessage.email.resporedasspamMarked as spam. See Email Deliverability.
Email Bouncedmessage.email.hardbouncedBounce due to permanent delivery failure.
Email Failedmessage.email.failedDelivery failed.
Email Suppressedmessage.email.supressedSuppressed due to suppression list.
SMS Sentmessage.sms.sentSMS sent.
SMS Deliveredmessage.sms.deliveredSMS successfully delivered.
SMS Failedmessage.sms.failedSMS failed to deliver.
SMS Undeliveredmessage.sms.undeliveredSMS rejected or unreachable.

Event data schema

For each message event generated by a user, the following metadata will be attached to the record.
Column NameTypeDescription
event_idUUIDUnique identifier for the event
event_timestampTimestampTime of event occurrence
event_kindStringThe Event Kind
subscription_device_typeStringDevice type (e.g., iOS, Android, Web, Email, SMS)
languageStringSubscription language code
versionStringIntegration version
device_osStringDevice operating system version
device_typeNumberNumeric device type
tokenStringPush token, phone number, or email
subscription_idUUIDSubscription ID
subscribedBooleanSubscription status
onesignal_idUUIDOneSignal user ID
last_activeStringLast active timestamp
sdkStringOneSignal SDK version
external_idStringExternal user ID that should match the integration user ID
app_idUUIDApp ID from OneSignal
template_idUUIDTemplate ID (if applicable)
message_idUUIDMessage batch/request ID
message_nameStringName of the message
message_titleStringMessage title (English only)
message_contentsStringTruncated message body (English only)
_created, _id, _index, _fivetran_syncedInternal useFivetran 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をトリガー
  • 行動データに基づいてメッセージングをパーソナライズ
要件
  • BigQueryとイベントデータテーブルを持つGCPプロジェクト
  • 読み取り権限を持つサービスアカウント
  • BigQueryデータセットに行動データを含むイベントデータテーブル
セットアップ手順
1

BigQueryサービスアカウントを作成

OneSignalは、接続を作成すると自動的にサービスアカウントを生成します。または、独自のサービスアカウントキーJSONファイルを提供することもできます。独自のサービスアカウントを作成する場合は、以下にリストされている必要な権限があることを確認してください。
2

必要な権限を付与

OneSignalサービスアカウントには、次のBigQuery IAMロールが必要です:
  • bigquery.dataViewer - イベントデータを含むデータセットとテーブルへの読み取りアクセス
  • bigquery.jobUser - データクエリのジョブを作成する権限
  • bigquery.metadataViewer - プロジェクトレベルのメタデータアクセス(推奨)
Google Cloud ConsoleまたはCLIを使用して権限を付与します:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member serviceAccount:ONESIGNAL_SERVICE_ACCOUNT_EMAIL \
  --role roles/bigquery.dataViewer

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member serviceAccount:ONESIGNAL_SERVICE_ACCOUNT_EMAIL \
  --role roles/bigquery.jobUser
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 FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

高度な構成

カスタムSQLクエリ

OneSignalに同期する前に、カスタムSQLを使用してイベントデータをフィルタリングまたは変換します:
SELECT
  event_name,
  user_id,
  event_timestamp,
  STRUCT(
    product_id,
    purchase_amount,
    category
  ) as payload
FROM `project.dataset.events`
WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)

クロスプロジェクトアクセス

イベントデータが複数のBigQueryプロジェクトにまたがる場合は、参照されるテーブルまたはビューを含む各プロジェクトへのアクセス権をOneSignalサービスアカウントに付与します。
最適なパフォーマンスを得るには、BigQuery接続リージョンが特定のテーブルリージョンと一致している必要があります。

FAQ

同じコンテンツに対して複数のメッセージIDが表示されるのはなぜですか?

これは通常、メッセージテンプレートが複数の送信またはトリガーフローで再利用される場合に発生します。

OneSignalはどのくらいの頻度でデータを同期しますか?

エクスポートとインポートの両方の統合は、最短で15分ごとに同期できます。

BigQueryビューを使用できますか?

はい。サービスアカウントがビュー内の参照されるすべてのテーブルにアクセスできることを確認してください。

関連リソース