Google Analytics 4をcPixelに接続する
GA4をcPixelに接続するにはどうすればよいですか?
Google AnalyticsでAdmin → Data collection and modification → Data streamsと進み、ウェブストリームを開いてG-で始まる測定IDをコピーします。同じ画面でMeasurement Protocol API secretsを開き、シークレットを作成します。両方をcPixelに貼り付けたら、実際に注文して確認してください。GA4は誤ったシークレットを何も警告せずに受け付けてしまうためです。
cPixelに貼り付ける
- cPixelで送信先を開き、プラットフォームを接続の下にあるGA4のアイコンをクリックします。Google Analytics 4を設定が開き、IDを貼り付けの画面が表示されます。
- 測定IDを測定IDに、シークレットをMeasurement ProtocolのAPIシークレット(任意)に貼り付けます。必要に応じてこのアカウントに名前を付ける(任意)でアカウント名を入力し、次へをクリックします。
- オプションを選択では、ブラウザからイベントを送信するとサーバーからイベントを送信するの両方をオンのままにします。このプロパティに他のツールが送信していない限り、いいえ — cPixelがGoogle Analytics 4を担当します(推奨)のままにしてください。名前とは裏腹に、はい — そのまま使い、cPixelはGoogle Analytics 4のサーバー送信を停止しますを選ぶと、cPixelからそのプロパティへのブラウザ送信とサーバー送信の両方が停止します。
- 詳細設定の下にあるデータの保管地域を使うと、サーバーサイドイベントをGoogleのEUエンドポイントに送信できます。変わるのはエンドポイントだけです。保存して次へをクリックします。テストを行うとGoogle Analytics 4を接続しましたと表示されます。
重要: ウィザードではシークレットは任意ですが、これがないとアカウントはブラウザーのみのままになります。閲覧イベントは届きますが、購入は届きません。
GA4 測定IDはどこで見つかりますか?
GA4のAdminにあるウェブストリームの詳細に表示されます。G-のあとに英数字(通常10文字)が続きます(Google)。
Google Analyticsでプロパティを選び、左下のAdminをクリックして、Data collection and modificationの下にあるData streamsをクリックします。
ストアのウェブストリームをクリックします。Measurement IDはStream detailsの最初の行にあります。横のコピーアイコンを使ってください。
注: Measurement IDは、同じ行にある単なる番号のStream IDやプロパティIDとは異なります。cPixelが必要とするのは
G-で始まるものです。
Measurement ProtocolのAPIシークレットはどうやって作成しますか?
同じストリームのパネルでMeasurement Protocol API secretsを開き、シークレットを作成して、約22文字の値をコピーします。Googleのガイド:Measurement Protocol for GA4。
Eventsブロックまでスクロールし、その最後の行にあるMeasurement Protocol API secretsをクリックします。既存のシークレットが一覧表示され、再利用することもできます。
CreateをクリックしてcPixelなどのニックネームを付け、もう一度Createをクリックして、Secret valueをコピーしてcPixelに貼り付けます。
Googleから先にユーザーデータ収集に関する規約への同意を求められることがあります(Google)。
GA4が誤ったシークレットについて警告しないのはなぜですか?
Measurement Protocolはエラーを一切報告しないためです。Googleは「イベントの形式が不正であってもHTTPエラーコードを返さない」としており、検証サーバーもAPIシークレットをチェックしません(Google)。
そのため、誤ったシークレットはどこでも成功しているように見えます。ライブには受理と表示され、アカウントは検証済みになり、アラートも発生しませんが、GA4側ではデータが破棄されています。接続をテストはGoogleの検証サーバーを使うため、ペイロードは確認できますが、シークレットは確認しません。
cPixelはGA4に何を、どこから送信しますか?
購入と返金はcPixelのサーバーから送信されます。それ以外はすべて買い物客のブラウザから送信され、ブラウザ側のコピーが端末から送信されなかった場合はサーバーから送信されます。
| 送信元 | イベント |
|---|---|
| ブラウザ:Shopifyのウェブピクセル、チェックアウトを含む全ページ | page_view、view_item、view_item_list、search、view_cart、add_to_cart、remove_from_cart、begin_checkout、add_shipping_info、add_payment_info |
| サーバー:Measurement Protocol | purchase(注文をトランザクションIDとして使用)、refund(注文を返金した場合) |
| サーバー、ブラウザから送信できなかった場合のみ | 買い物客の端末から送信されなかったブラウザイベント。ライブでは「ブロックされたブラウザイベントを再送」と表示される |
GA4はウェブストリーム上でトランザクションIDにより購入の重複排除を行いますが(Google)、他のイベントは対象外のため、cPixelはそれぞれを1回だけ送信します。ブロッカーがcPixel自身のリクエストも止めた場合、cPixelはそのイベントを復元できず、GA4がブラウザイベントを拒否したことを検知することもできません。
購入には、cPixelのピクセルがチェックアウト時に記録するブラウザセッションが必要です。ブロッカーがcPixelのリクエストを止めた場合など、それがないとライブには「この送信先のペイロードを組み立てるにはデータが足りません」と表示され、GA4には購入が届きません。
サーバーからの購入には、GA4のクライアントIDとセッションID、ハッシュ化されたメールアドレスと電話番号、そしてハッシュ化されていないShopifyの顧客ID(user_idとして)が含まれます。どちらの経路も買い物客のアナリティクス同意が必要です。
注: GA4がサーバーイベントに訪問のsource、medium、campaignを付与するのは、セッション開始から24時間以内に届いた場合だけです(Google)。設定の注文が発送されたときなどで後から送信された購入は、campaignの情報を失うことがあります。
ShopifyのGoogle & YouTubeアプリも、あなたのプロパティにページビューや購入を送信することがあるため、1つのピクセルにつき送信元は1つを守ってください。cPixelの日次スキャンは、テーマに貼り付けられたGA4タグを検出してフラグを立てます。
正しく動作しているかはどうやって確認しますか?
実際に注文し、cPixelのライブとGA4のRealtimeレポートで購入を確認します。テスト注文は既定でスキップされます。実際の支払い方法で支払うか、設定 → テスト注文のチェックを外してください。
- cPixelでライブを開き、セッションを開始をクリックして、別のタブで注文します。
- 購入のサーバー行を開きます。Google Analytics 4が受理と表示されますが、これはGoogleが応答しただけであることを意味します。
- GA4でRealtimeレポートを開き、購入を探します。Realtimeは通常数分、他のレポートは24〜48時間かかります(Google)。
DebugViewには表示されません。DebugViewはデバッグモードで送信されたイベントのみを表示しますが、cPixelの実際の送信はそれに該当しません(Google)。
うまくいかない場合は?
ほとんどの失敗はcPixelのライブに表示されますが、誤ったシークレットはどこにも表示されないため、GA4自体を確認する必要があります。
| 表示される内容 | 意味 | 対応方法 |
|---|---|---|
| ライブでは受理だが、48時間後もGA4に購入がない | シークレットまたは測定IDが誤っているか、別のストリームのものである | 同じストリームでシークレットを作成し、送信先のGoogle Analytics 4を管理の下に貼り付けて、次へと保存して次へをクリックする |
| 理由付きでスキップ | cPixelが送信しないと判断した(アナリティクスの同意がない、テスト注文など) | 実際に支払うか、テスト注文のチェックを外す |
| アカウントがブラウザーのみと表示される | シークレットが保存されていない | Google Analytics 4を管理の下で追加する |
| ページビューが2倍になるが、売上は正しい | Google & YouTubeアプリやテーマ内のタグなど、別の送信元がある | 1つのプロパティにつき送信元は1つにする |
Google Analytics 4を管理内の削除を押すと、そのアカウントへの送信が停止し、シークレットが削除されます。





