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

OneSignal Snowflake統合の概要


概要

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

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

メッセージングパフォーマンスとエンゲージメントイベント(例:送信、開封、クリック)をSnowflakeに送信して:
  • カスタムダッシュボードとレポートを構築
  • チャネル全体で配信とエンゲージメントのトレンドを追跡
  • OneSignalデータを他のビジネスデータと組み合わせて分析
要件
  • OneSignal Professionalプラン(無料アプリでは利用できません)。
  • Snowflakeアカウント
  • SnowflakeアカウントにIMPORT SHAREおよびCREATE DATABASEロールがあることを確認してください。
    • 共有を受け入れるにはACCOUNTADMINロールの使用を推奨します。
セットアップ手順

1. サインアップ

Snowflake統合をアクティブ化するには、Message Events DataのOneSignal Marketplaceリスティング経由でアクセスをリクエストする必要があります。そこから、詳細情報を取得するためにチームに連絡します。

2. アカウント情報を提供

チームと接続したら、データを共有できるようにいくつかの詳細を提供する必要があります。Snowflake Account IDSnowflake Organization IDが必要です。その情報を取得する最も簡単な方法は、「Copy account identifier」ボタンをクリックすることです(以下に示すとおり)。
OneSignal Marketplaceリスティング経由で私たちと連絡を取る必要があります。ただし、アカウント情報の提供についてさらに質問がある場合は、snowflake-data-sharing@onesignal.comにメールでお問い合わせください

Snowflakeアカウント識別子のコピー

プログラムに受け入れられたら、次の項目に注意してください:
  • OneSignalからプログラムへようこそのメール
  • データ共有が完了したことを通知するSnowflakeからのメール

Snowflakeデータ共有通知メール

3. Snowflake内でデータ共有を受け入れる

データ共有が完了したことを通知するSnowflakeからのメールを受信したら、Snowflakeアプリにログインしてデータ共有を受け入れることができるはずです。 DataPrivate Sharingに移動すると、新しいPrivately Shared Listingが表示されます。Getをクリックすると、データがリージョンにレプリケートされ始めます。

Snowflakeプライベート共有インターフェース

Getボタンが利用できず、Requestボタンがある場合、共有を試みているロールの権限にCREATE DATABASEまたはIMPORT SHAREが含まれていません。ACCOUNTADMINロールに切り替えることをお勧めします。 データのレプリケートには時間がかかります。データが利用可能になると、Snowflakeから追加のメールが送信されます。次のようなダイアログが表示されるはずです

データレプリケーションステータスダイアログ

データが使用可能になると、リスティングに新しいGetボタンが表示されます。Getボタンをクリックすると、新しいダイアログが表示されます

データベース設定ダイアログ

データベースとデータベースロールの名前を好みに設定します。次にGetをクリックします

データ共有セットアップ完了

完了です!OneSignalからSnowflakeへのデータ同期が開始されました。同期の頻度は24時間に1回に設定されているため、初期データは翌日まで利用できない場合があります。

イベントとプロパティ

Snowflake Marketplaceで利用可能なデータの概要

メッセージイベントデータ

詳細については、イベントストリームを参照してください。 ユーザーが生成した各メッセージイベントには、次のメタデータがレコードに添付されます。
Column NameTypeDescriptionExample
event_idUUIDイベントを表す一意のIDdc76df03-287c-403a-aabd-b2d4fe44e5c6
event_kindstring発生したイベントのタイプ。イベントの種類のリストはこちらにあります。message.email.opened
event_impression_timestampunix_timestampOneSignalがイベントを処理する時刻1684951205
subscription_idUUIDデバイス/サブスクリプションを表す一意のID6e8b6978-75a4-4882-878c-2d15a78c2409
subscription_languagestringこのサブスクリプションの言語en
subscription_timezoneintegerこのサブスクリプションの指定されたタイムゾーン-25200
subscription_device_typestringこのサブスクリプションが使用するデバイスのタイプSMS
onesignal_idUUIDインプレッションを行ったユーザーのonesignal_iddc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstringインプレッションを行ったユーザーのexternal_idMyExternalId
message_idUUIDメッセージを表す一意のIDdc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestring通知/メッセージの人間が読める形式のIDCampaign 1
message_titlestring通知/メッセージのタイトル。現時点では英語のみBonus 50 coins when you play!
message_bodystringメッセージの本文。(切り捨て)現時点では英語のみPlay against your friends and earn an additional...

メッセージイベントの種類

詳細については、イベントストリームを参照してください。 メッセージイベントは、Snowflake Marketplaceで提供する最初のデータカテゴリです。追加のデータカテゴリのリクエストがある場合は、snowflake-data-sharing@onesignal.comまでお問い合わせください!

データ保持

OneSignalからSnowflake経由で共有されるデータは、30日間保持されます。この期間を超えてデータを保持するには、関連データを独自のテーブルにコピーすることをお勧めします。

Snowflakeからイベントをインポート

Snowflakeから行動イベントデータをOneSignalに送信して:
  • ユーザーアクティビティに基づいてJourneysをトリガー
  • 行動データに基づいてメッセージングをパーソナライズ
要件
  • アウトバウンドメッセージイベント用のEvent Streamsへのアクセス(プランの制限と超過料金が適用されます)
  • インバウンドイベント同期用のCustom Eventsへのアクセス(プランの制限と超過料金が適用されます)
  • 更新されたアカウントプラン(無料アプリでは利用できません)
  • ウェアハウスアクセスを持つSnowflakeアカウント
  • Snowflakeテーブルまたはビューに保存されたイベントデータ
  • OneSignalからSnowflakeインスタンスへのネットワーク接続
  • 適切な権限を持つユーザー認証情報
セットアップ手順
1

OneSignal用の専用ロールを作成

Snowflakeのベストプラクティスに従ってロール階層を作成します:
-- Create a role for the census user
CREATE ROLE CENSUS_ROLE;

-- Ensure the sysadmin role inherits any privileges the census role is granted
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

専用ウェアハウスを作成

OneSignal操作用のコスト最適化されたウェアハウスを作成します:
-- Create a warehouse for the census role, optimizing for cost over performance
CREATE WAREHOUSE CENSUS_WAREHOUSE WITH
    WAREHOUSE_SIZE = XSMALL
    AUTO_SUSPEND = 60
    AUTO_RESUME = TRUE
    INITIALLY_SUSPENDED = FALSE;

GRANT USAGE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT OPERATE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT MONITOR ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
3

ユーザーを作成して権限を付与

OneSignalユーザーを作成し、イベントデータへのアクセスを許可します:
-- Create the census user
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Grant access to your event data (replace with your actual database/schema)
GRANT USAGE ON DATABASE "<your-database>" TO ROLE CENSUS_ROLE;
GRANT USAGE ON SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
4

ブックキーピングデータベースを作成(Advanced Sync Engine)

OneSignalの同期状態管理用のプライベートデータベースを作成します:
-- Create a private bookkeeping database
CREATE DATABASE "CENSUS";
GRANT ALL PRIVILEGES ON DATABASE "CENSUS" TO ROLE CENSUS_ROLE;

CREATE SCHEMA "CENSUS"."CENSUS";
GRANT ALL PRIVILEGES ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
GRANT CREATE STAGE ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
Basic Sync Engineまたは読み取り専用モードを使用している場合は、この手順をスキップしてください。
5

認証を設定

セキュリティ強化のためにキーペア認証(推奨)を設定します:
  1. Snowflakeのドキュメントに従って公開鍵/秘密鍵ペアを生成します
  2. Snowflakeユーザーで公開鍵を設定します
  3. OneSignalの接続設定で秘密鍵を使用します
または、パスワード認証を使用することもできます(非推奨 - 2025年11月にブロックされます)。
6

OneSignalに接続

OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。Snowflakeを選択し、次の接続詳細を提供します:
  • Account Name: Snowflakeアカウント識別子(例:abc123.us-east-1
  • Warehouse: CENSUS_WAREHOUSE
  • User: CENSUS
  • Database: イベントデータデータベース名
  • Schema: イベントデータスキーマ名
  • Authentication: キーペア(秘密鍵とオプションのパスフレーズを提供)

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

をOneSignalのカスタムイベント形式にマッピングします:
OneSignalフィールド説明必須
nameevent_nameイベント識別子はい
external_iduser_idユーザー識別子はい
timestampevent_timestampイベントが発生した時刻いいえ
propertiesevent_dataいいえ

イベントテーブルスキーマの例

-- Example Snowflake event table
CREATE TABLE analytics.user_events (
    event_id STRING,
    event_name STRING NOT NULL,
    user_id STRING NOT NULL,
    event_timestamp TIMESTAMP_TZ DEFAULT CURRENT_TIMESTAMP(),
    event_properties VARIANT,
    session_id STRING,
    device_type STRING
);

SQLクエリモード

カスタムSQLクエリを記述してイベントデータを変換します:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
    AND event_properties:value::NUMBER > 100
ORDER BY event_timestamp DESC;

高度な設定

ウェアハウスコストの管理

  • コスト最適化のためにX-Smallウェアハウスサイズを使用
  • 自動一時停止(60秒)と自動再開を設定
  • オフピーク時間中に同期をスケジュール
  • 他のバッチ処理システムとウェアハウスを共有することを検討

ライブ同期のサポート

リアルタイムイベント処理のために、イベントテーブルで変更追跡を有効にします:
ALTER TABLE "analytics"."user_events" SET CHANGE_TRACKING = TRUE;

ネットワークセキュリティ

Snowflakeの許可されたIPネットワークポリシーを使用している場合は、OneSignalのIPアドレスを許可リストに追加してください。現在のIP範囲については、OneSignalサポートにお問い合わせください。

制限事項

  • 複雑な分析クエリは、ウェアハウスのパフォーマンスとコストに影響を与える可能性があります
  • ユーザー/パスワード認証は2025年11月に非推奨になります
  • CENSUSデータベースはOneSignal操作専用に予約されています

OneSignalとのデータ共有を切断

OneSignalとのデータ共有を無効化するには、snowflake-data-sharing@onesignal.comにメールでリクエストしてください。

FAQ

どの認証方法を使用すべきですか?

キーペア認証(推奨)を使用してください。ユーザー/パスワード認証は、2025年11月からSnowflakeによってブロックされます。

既存のウェアハウスを使用できますか?

はい、dbtやFivetranなどの他のバッチ処理システムとウェアハウスを共有して、コストを最適化できます。ウェアハウスがイベント処理のニーズに十分な容量があることを確認してください。

コストを最適化するにはどうすればよいですか?

  • X-Smallウェアハウスサイズを使用
  • 積極的な自動一時停止(60秒)を設定
  • オフピーク時間中に同期をスケジュール
  • 継続的な同期の代わりに時間単位/日単位の同期を使用