なぜShopify+GA4の標準設定では「リピート率」が正しく測れないのか

GA4はデフォルトで「ブラウザ単位」でユーザーを数える

GA4がユーザーを識別する基本の仕組みは、ブラウザに保存されるcookieです。同じ人が同じブラウザで同じデバイスからアクセスし続ける限りは「同一ユーザー」として追跡できますが、次のいずれかの条件が変わった時点で、GA4は「新規ユーザー」として別カウントします。

  • スマートフォンとPCを使い分けた
  • ブラウザを変更した(ChromeからSafariへ、など)
  • cookieを削除した
  • iOSのブラウザ追跡制限が働いた

リピーターが多いEC事業者ほど、同一顧客の「2回目以降の購入」がこの仕組みに引っかかりやすくなります。たとえばモバイルで商品を見て、PCで購入、というカスタマージャーニーは今や珍しくありません。このルートを通るだけで、GA4は「別々のユーザーによる新規購入」と記録します。

Shopify標準の「Google & YouTube」アプリで何が取れて、何が取れないのか

ShopifyにGA4を導入する標準的な方法は、Shopify公式の「Google & YouTube」アプリを使うことです。このアプリを入れると、purchase(購入完了)、add_to_cart(カート追加)、begin_checkout(チェックアウト開始)など、主要なeコマースイベントは自動で送信されます。

ただし、このアプリが自動で送ってくれるのは「イベント」であって、「誰が購入したか(顧客の同一性)」ではありません。購入イベントはGA4に届きますが、それが「初めての購入なのか、3回目の購入なのか」をGA4が正しく判断するための情報——顧客IDと、それをGA4に渡すための設定——は、標準の連携では含まれていません。この差分が、リピート率の計測精度を大きく落とす原因になっています。

リピート率の計測が狂う、GA4設定の3つの盲点

盲点1:cookieベースの計測は、リピーターを「新規」に変える

前述のとおり、GA4の標準識別はcookie(クライアントID)です。別デバイス・別ブラウザ・cookie削除で同一人物を別カウントしてしまうため、特にスマートフォン利用率が高いShopifyストアでは、GA4上の「新規ユーザー率」が実態より高く出る傾向があります。自分のストアで「GA4のユーザー数がShopifyの顧客数より明らかに多い」場合、この重複カウントが起きている可能性があります。

盲点2:customer_idはあるが、GA4のuser_idとして送られていない

Shopifyには顧客ごとに一意の customer_id が付与されています。ログイン済みの購入者であれば、この値はイベント取得時に利用可能です。

GA4には「user_id」という概念があり、これをセットすることでGA4はデバイスやブラウザをまたいで同一顧客を追跡できるようになります。ところが、Shopifyの customer_id とGA4の user_id は、標準設定では自動的に紐づきません。Shopify側に顧客IDがあり、GA4側にuser_idの受け口があるにもかかわらず、標準連携だけではその橋渡しが行われないのです。

盲点3:購入イベントと顧客IDが別々に存在し、結合されていない

GA4に届いている purchase イベントには金額・商品・注文IDは入っています。しかし、その購入者が「誰」なのかを示す情報(user_id)がセットされていなければ、GA4はその購入を特定の顧客と紐づけて分析することができません。「どの顧客が何回購入しているか」「どの顧客のLTVが高いか」という分析をGA4のレポートで見たい場合、購入イベントとuser_idが同時にGA4に送られている必要があります。これが欠けている状態では、GA4が持つリテンション分析やLTV分析は機能しません。

正しい顧客追跡フロー:Shopify標準機能 × GA4カスタムイベントの接続

考え方:ShopifyのcustomerオブジェクトをGA4のuser_idとして渡す

正しく繋ぐための設計の考え方はシンプルです。ログイン済みの顧客がShopifyのチェックアウトや購入完了ページにいる時、Shopifyは顧客情報(customer_id等)をJavaScript上で参照できる状態にします。このタイミングで、GA4の設定コマンドまたはイベント送信時に user_id パラメータとして顧客IDを渡すことで、GA4はそのセッションを「この顧客のアクション」として記録できるようになります。

Web Pixelsを使った実装の考え方

ShopifyはWeb Pixelsという仕組みを提供しています。これはストアのページや購入フロー上でカスタムのJavaScriptコードを動かすための仕組みで、Shopify管理画面の設定画面から適用できます(プランや時期によって画面の表記が異なる場合があります)。Web Pixelsを使った顧客追跡の流れを整理すると、次のようになります。

  • ログイン済みの顧客が購入完了ページに到達した時点で、Shopifyが顧客IDを提供する
  • Web Pixelsのコードがその顧客IDを受け取り、GA4の user_id パラメータとして送信する
  • GA4は受け取った user_id をもとに、この購入者を以前のセッションと同一人物として識別する

実装の詳細は環境によって異なり、ShopifyのAPIバージョンやGA4の設定状況によって変わることがあるため、本記事では設計の骨格を示すにとどめます。実装にあたっては、ShopifyのWeb Pixels開発者向けドキュメントと、GA4のuser_id設定ガイドを合わせて参照することをお勧めします。

user_idを設定した後にGA4で何が変わるか

user_idをGA4に送れるようになると、次の分析が実態に近づきます。

  • GA4の維持率レポートが、デバイスをまたいだ実際のリピート来店を反映するようになる
  • 探索レポートでユーザーレベルの購入回数やLTVに近い数値を集計できるようになる
  • 異なるデバイスからの訪問が同一顧客として結合され、新規ユーザー数の水増しが減る

ただし、この機能が有効に働くのは「ログイン済みの顧客」に限られます。ゲスト購入者は顧客IDが存在しないため、cookieベースの追跡に留まります。ゲスト購入が多いストアでは、効果は限定的になることがあります。

スプレッドシートでLTVとリピート率を自動集計する計測フロー

GA4レポートだけでは見えにくいものを、スプレッドシートで補う

user_idを設定してGA4の精度が上がっても、「顧客ごとの購入回数を一覧で見る」「月次でリピート率の推移を確認する」といった運用レベルの分析は、GA4のUI上だけでは取り回しが不便なことがあります。relmeaでは、楽天市場やYahoo!ショッピングの順位・レビュー情報をGASで日次集計してスプレッドシートに落とす自動化を運用していますが、Shopify×GA4のLTV計測も同じ思想で組むことができます。「毎朝、昨日時点のデータが揃っている状態をつくる」という設計です。

GASで組む計測フローの概要

スプレッドシートによるLTV・リピート率の自動集計フローは、大きく3つのデータソースと処理で構成されます。

データソース:Shopify Admin API
Shopifyは管理者向けAPIを提供しており、顧客ごとの注文履歴(注文回数・合計購入金額・初回購入日・最終購入日)を取得できます。GASから日次でこのAPIをコールし、スプレッドシートの顧客マスターシートに書き込みます。

補助データ:GA4 Data API(任意)
GA4の探索レポートでuser_idベースのデータをエクスポートするか、GA4 Data APIをGASから呼び出してセッション数・コンバージョン数を顧客単位で取得する方法もあります。ただし設定の難易度が上がるため、まずはShopify側のデータだけで計算するほうが現実的です。

集計ロジック
スプレッドシート上で次の計算列を設定します。

  • リピート購買フラグ:注文回数が2回以上の顧客を「リピーター」に分類
  • LTV(生涯購買金額):顧客マスターに記録された合計購入金額を参照
  • リピート率:全顧客数のうち2回以上購入した顧客の割合(月次スナップショットとして記録)
  • 直近リピート率:初回購入から90日以内に2回目を購入した顧客の割合(概算の目安として)

自動更新の仕組み

GASのトリガー機能を使い、毎朝決まった時刻にShopify APIをコールして前日分のデータをスプレッドシートに追記するよう設定します。スプレッドシート側の集計式は固定のため、データが追記されると自動的に最新の数値に更新されます。この仕組みを一度組んでしまえば、毎朝スプレッドシートを開くと前日時点のリピート率とLTV分布が確認できる状態が維持されます。GA4の管理画面を毎回操作する必要がなくなり、定期レビューの準備工数が大きく減ります。

つまずかない導入の順番

ステップ1:まず標準連携を正しく確認する

最初に確認すべきは、「Google & YouTube」アプリによる標準連携が正常に機能しているかどうかです。GA4のリアルタイムレポートでShopifyストアの購入イベントが届いているか、eコマース設定が有効になっているかを確認してください。標準連携が不完全なまま次のステップに進んでも、効果が出ません。

ステップ2:user_id連携を実装する

標準連携が問題なく動いていることを確認したら、Web Pixelsでuser_idを送る実装に進みます。実装後はGA4のDebugViewまたはリアルタイムレポートで、ログイン状態で購入を実行した際に user_id パラメータが届いているかどうかを確認します。この動作確認を省略すると、「実装したつもりでデータが来ていない」という状態に気づかないまま数週間が過ぎてしまいます。実装直後の確認は必ず行ってください。

ステップ3:スプレッドシート集計で定点観測を始める

user_id連携が安定したら、Shopify Admin APIからデータを取得するGASを組んでスプレッドシート集計に移行します。最初は手動実行で動作確認をしたうえで、トリガーで自動化してください。この3段階を順番に進めることで、「GA4が入っているのにリピート率がわからない」という状態から抜け出せます。どのステップも、一度設定が完了すれば継続的なメンテナンスは最小限で済むため、最初の投資コストに見合う効果が得られます。

リピート購買の実態を正しく把握することは、広告費の配分(新規獲得にいくら使うか)やCRM施策の優先順位を正しく判断するための前提条件です。計測が正確でなければ、施策の評価もできません。標準設定で止まっていたShopifyのGA4連携を、この機会に一段階引き上げてみてください。