前提条件
始める前に、以下が揃っていることを確認してください:- VendoアプリがインストールされたShopifyストア
- OneSignalアカウントとアプリ(Webプラットフォーム)
- OneSignalのApp ID(必須)
- OneSignalのREST API Key(注文同期やユーザータグ付けなどのサーバーサイドイベントに必要)
OneSignalの設定
OneSignalアプリを作成する
onesignal.comにログインし、アプリを作成または選択します。プラットフォームとしてWebを選択し、統合タイプとしてCustom Codeを選択します。
Webプッシュ設定を構成する
OneSignalアプリで、Settings > Push & In-App > Web Settingsに移動するか、Webプッシュ設定ガイドに従ってください。サイト設定
- Site Name:ストア名。デフォルトの通知タイトルとして使用されます。
- Site URL:Shopifyストアの公開アクセス可能なURL(例:
https://yourstore.com)。- サイトの正確なオリジンである必要があります。
- 顧客が
https://your-site.com/のようなカスタムドメインからサイトにアクセスする場合は、https://your-site.myshopify.com/を使用しないでください。
- Default Icon URL:通知プロンプトとメッセージ用の256x256pxの正方形PNG またはJPG画像をアップロードします。設定されていない場合はベルアイコンが使用されます。
Service Workerパスを設定する
Shopifyはサイトのルートからファイルを配信できないため、VendoがService Workerファイルを配信する場所をOneSignalに伝える必要があります。OneSignalで、Settings > Push & In-App > Web Settingsに移動し、Advanced Push Settingsまでスクロールして次のように設定します:

Vendoは
| 設定 | 値 |
|---|---|
| Service Worker Path | /apps/vendo/ |
| Service Worker Filename | OneSignalSDKWorker.js |
| Updater Filename | OneSignalSDKWorker.js |
| Service Worker Registration Scope | /apps/vendo/ |

https://yourstore.myshopify.com/apps/vendo/OneSignalSDKWorker.jsに必要なOneSignalSDKWorker.jsファイルを自動的に配信します — 手動でのファイルアップロードは不要です。Updater FilenameとService Worker Filenameは同じファイルです。OneSignal v16+は両方の目的に単一のService Workerを使用します。
認証情報をコピーする
OneSignalで、Settings > Keys & IDsに移動し、App IDとREST API Keyをコピーします。これらをVendoに入力します。
Vendoの設定
OneSignal統合を追加する
Vendoで、Integrations > Add Integration > OneSignal(またはDestinations > OneSignal)に移動します。

Vendoテーマブロックを有効にする
VendoテーマブロックはストアフロントにOneSignal SDKを読み込みます。これがないとプッシュプロンプトが表示されず、クライアントサイドのトラッキングも機能しません。
- Shopify管理者で、Online Store > Themes > Customizeに移動します。
- App embeds(左サイドバーのパズルピースアイコン)をクリックします。
- Vendoをオンにします。
- Saveをクリックします。
同期するイベントを選択する
VendoアプリのOneSignal > Eventsで、OneSignalに送信したいクライアントサイドとサーバーサイドのイベントを有効にします。イベントの完全なリストについては、以下のトラッキングをご覧ください。
トラッキング
ユーザー識別
Vendoは識別済みユーザーのみのアプローチを使用します — 匿名の訪問者はOneSignalでトラッキングされません。イベントが送信される前に、ユーザーは4つの方法のいずれかで識別される必要があります。これにより重複ユーザーを防ぎ、クリーンで実用的なデータを確保します。| 方法 | 仕組み | 使用される識別子 |
|---|---|---|
| Webプッシュ購読 | 訪問者がプッシュプロンプトで「許可」をクリックします。OneSignalが自動的にユーザーを作成し、VendoがOneSignal IDをキャプチャします。 | OneSignal ID |
| ニュースレター登録 | 訪問者がニュースレターまたはメールフォームを送信します。Vendoがメールをキャプチャし、OneSignal.login(email)を呼び出します。 | |
| 顧客ログイン | 顧客がShopifyアカウントにログインします。Vendoがこれを検出し、設定された識別子でOneSignal.login()を呼び出します。 | Shopify Customer ID またはEmail |
| 購入完了 | 顧客が購入を完了します。Vendoが識別子を保存し、OneSignal.login()を呼び出します。 | Shopify Customer ID またはEmail |
アイデンティティのマージ
プッシュ購読者(OneSignal IDで識別)が後でログインしたり購入を完了した場合、VendoはそのShopify Customer IDまたはメールでOneSignal.login()を呼び出します。OneSignalはプッシュ購読を識別済みユーザーにリンクします — 重複ユーザーは作成されません。過去のすべてのプッシュ購読が保持され、サーバーサイドイベント(注文、履行)が正しいユーザープロファイルに届きます。
顧客タグ
Vendoはセグメンテーションのために顧客プロパティをOneSignalのタグとして同期します。すべての値は文字列として保存されます(OneSignalのネイティブフォーマット)。| タグ | 説明 |
|---|---|
email | 顧客のメールアドレス |
first_name | 名 |
last_name | 姓 |
total_spent | 生涯購入金額 |
order_count | 総注文数 |
verified_email | "true" または "false" |
tax_exempt | "true" または "false" |
marketing_state | マーケティング同意状態 |
first_order_date | 初回注文日(ISO 8601) |
last_order_date | 最新注文日(ISO 8601) |
customer_created_at | 顧客作成日 |
customer_tags | カンマ区切りのShopifyタグ |
email_marketing_consent | マーケティングオプトイン状態 |
クライアントサイドイベント
VendoはShopify Web Pixelを通じてストアフロントのクライアントサイドカスタムイベントをトラッキングし、OneSignalに送信します。これらのイベントはユーザーが識別された後にのみ送信されます。| イベント | 説明 |
|---|---|
page_viewed | 顧客がページを訪問(ストアフロント、チェックアウト、または注文状態) |
product_viewed | 顧客が商品詳細ページを表示 |
collection_viewed | 顧客が商品コレクションページを表示 |
search_submitted | 顧客がストアフロントで検索を実行 |
product_added_to_cart | 商品がカートに追加された |
product_removed_from_cart | 商品がカートから削除された |
cart_viewed | 顧客がカートページを表示 |
checkout_started | 顧客がチェックアウトを開始 |
checkout_contact_info_submitted | 連絡先情報ステップが送信された |
checkout_address_info_submitted | 住所情報ステップが送信された |
checkout_shipping_info_submitted | 配送方法が選択された |
payment_info_submitted | 支払い詳細が送信された |
checkout_completed | チェックアウトが正常に完了 |

サーバーサイドイベント
ShopifyのコマースイベントはVendoパイプラインを通じてエクスポートされ、OneSignalに転送されます。これらは常にShopify Customer IDをexternal_idとして使用します。
| イベント | 説明 |
|---|---|
received_orders | 新しい注文が作成された |
fulfilled_orders | 注文が履行/発送された |
delivered_orders | 注文が配達された |
refunded_orders | 注文が全額返金された |
partially_refunded_orders | 注文が一部返金された |
abandoned_checkouts | チェックアウトが放棄された |

共通イベントプロパティ
すべてのイベントには以下のプロパティが含まれます(文字列として):| プロパティ | 説明 |
|---|---|
order_id | 表示注文識別子 |
shopify_order_id | Shopify内部注文ID |
email | 顧客のメールアドレス |
currency | 注文通貨 |
source | イベントソース |
version | 統合バージョン |
データ同期頻度
| データタイプ | 同期頻度 |
|---|---|
| 顧客タグ | 4〜6時間ごと |
| 注文イベント | ほぼリアルタイム(数分以内) |
| 放棄カート | 1〜2時間ごと |
| 履行イベント | ほぼリアルタイム |
プラットフォーム詳細
| 設定 | 値 |
|---|---|
| 同期方法 | Vendo経由のクライアント + サーバーサイド |
| アイデンティティ | Shopify Customer ID、Email、またはOneSignal ID |
| 重複排除 | イベントごとのUUID v5ハッシュ |
| バッチサイズ | リクエストあたり1,000イベント |
| データフォーマット | すべての値を文字列として保存 |
ユースケース
放棄カート回収
abandoned_checkoutsイベントでトリガーされるJourneyを作成します。放棄から1時間待って、checkout_urlプロパティを使用した回収リンク付きのプッシュ通知を送信します。
注文状態の更新
fulfilled_ordersとdelivered_ordersのJourneyを作成し、注文が発送・配達された際に追跡情報を含む即時プッシュ通知を送信します。
VIP顧客のエンゲージメント
total_spentがしきい値を超えるセグメントを作成し、first_nameタグでパーソナライズされた限定オファーを送信します。
再エンゲージメントキャンペーン
last_order_dateが90日以上前のセグメントを作成して非アクティブな顧客をターゲットにし、ウィンバックキャンペーンを送信します。
対応ソース
OneSignalは以下のVendoデータソースに対応しています:| ソース | イベント | ユーザータグ | オーディエンス |
|---|---|---|---|
| Shopify | あり | あり | あり |
| Stripe | あり | あり | あり |
| Mixpanel | — | — | あり |
| Segment | — | — | あり |
| Amplitude | — | — | あり |
テスト
Service Workerを確認する
ブラウザーで
https://yourstore.myshopify.com/apps/vendo/OneSignalSDKWorker.jsにアクセスします。JavaScriptコードが表示されるはずです。404が表示された場合は、Vendoアプリがインストールされているか確認してください。ブラウザーのDevTools(F12)を開き、Application > Service Workersに移動して、OneSignalSDKWorker.jsがスコープ/apps/vendo/で登録されていることを確認することもできます。OneSignalでユーザーデータを確認する
Audience > Subscriptionsに移動し、テスト購読が表示されていることを確認します。識別済みユーザーのユーザータグ(メール、名前など)が同期されているか確認します。
トラブルシューティング
Service Workerが404を返す
Service Workerは/apps/vendo/OneSignalSDKWorker.jsに存在する必要があります。ルートパス(/OneSignalSDKWorker.js)で404エラーが表示される場合、Service WorkerパスがOneSignalに設定されていません — Service Worker設定ステップに従ってください。/apps/vendo/パスで404が表示される場合は、Vendoアプリがインストールされておりテーマブロックが有効になっていることを確認してください。
プッシュプロンプトが表示されない
App embedsでVendoテーマブロックが有効になっているか確認してください。ブラウザーが通知を許可しているか確認してください(アドレスバーの錠前アイコンをクリック)。以前にプロンプトが拒否されていた場合に備えて、シークレット/プライベートウィンドウを試してください。タグがOneSignalに表示されない
タグは識別済みユーザーにのみ同期されます — 匿名の訪問者はトラッキングされません。ユーザーがプッシュ購読、ログイン、ニュースレター登録、またはチェックアウトで識別されていることを確認してください。初期タグ同期には数時間かかる場合があります。イベントがトリガーされない
VendoアプリのOneSignal > Eventsでイベントが有効になっていることを確認してください。クライアントサイドイベントにはShopify Web Pixelがアクティブで、ユーザーが識別されている必要があります。サーバーサイドイベントにはREST API Keyが設定されている必要があります。通知は「配信済み」と表示されるが表示されない
統合は正常に機能しています — 問題はブラウザーまたはOSの通知設定にあります。ブラウザーのOSの通知設定を確認し、おやすみモード/集中モードがオフになっていることを確認し、ブラウザーレベルの通知権限を確認してください。FAQ
セットアップ後に顧客識別子を変更できますか?
はい。VendoアプリのSettings > Customer Identifierで設定を更新します。既存のユーザーがすでに以前の方法で識別されていた場合、識別子を変更すると別々のユーザープロファイルが作成される可能性があります。Vendo統合はモバイルアプリをサポートしますか?
Vendo統合はShopifyストアフロントとWebプッシュに特化しています。モバイルアプリも持っている場合は、ユーザープロファイルを一貫させるために、Vendoで選択する識別子がモバイルアプリで使用するものと一致することを確認してください。訪問者が識別されなかった場合はどうなりますか?
識別されていない訪問者のイベントはOneSignalに送信されません。訪問者が自己を識別すると(プッシュ購読、ログイン、ニュースレター登録、またはチェックアウト完了)、Vendoはイベントの送信を開始します。この識別済みユーザーのみのアプローチにより、重複ユーザーを防ぎ、クリーンなデータを確保します。VendoはなぜIdentified-Onlyアプローチを使用するのですか?
以前のバージョンはShopifyのセッションクッキーを識別子として使用して匿名訪問者をトラッキングしていました。これにより適切にマージできない重複OneSignalユーザーが作成され、ユーザー数の水増しとデータの断片化につながりました。Identified-Onlyアプローチにより、すべてのOneSignalユーザーが実在し、実用的であることを保証します。関連ページ
Keys & IDs
OneSignalのApp IDとREST APIキーを確認します。
カスタムイベント
ユーザー行動をトラッキングし、Shopifyイベントに基づいて自動化をトリガーします。
Webプッシュ設定
ShopifyストアのWebプッシュ通知を設定します。
Web権限プロンプト
訪問者にWebプッシュ許可を求める方法とタイミングを設定します。
