AnalyticsCORE← トップページ
Manual

コンバージョンAPI — 注文の実額をサーバーから送る

最終更新: 2026年8月25日

この機能が必要な方・必要ない方

  • 必要な方 … ネットショップ・会員サービスを運営していて、注文ごとの金額を成果に載せたい方。 サーバー側のプログラム(WordPressのテーマやプラグイン、自作アプリ)に数行足せる方、または制作を頼める方。
  • 必要ない方 … ブログ・アフィリエイト・お問い合わせが目標のサイト。「目標(成果・CV)」の設定だけで成果は数えられます。この機能は使わなくて構いません。

この機能は、注文の確定を知っているのがあなたのサーバーだけだから必要になります (ブラウザの計測タグは「買ったこと」は分かっても「いくらだったか」を確実には知りません)。

できること

注文が確定したとき、あなたのサーバーからAnalytics CORE に金額を送ると、その注文が実額で成果に載ります。 タグで数える成果は「1件の価値」×件数の概算ですが、こちらは注文ごとの本当の金額です。

買い手のIPアドレスとブラウザ情報を一緒に送ると、同じ日にサイトを見た訪問と自動で結びつき、 どの経路(検索・SNS・AI…)の、どの入口ページから生まれた売上かまで分かります。 Cookieもクリック用のIDも要りません。

  • 広告ブロッカーで計測タグが止められた訪問の注文も、サーバーからなら届く
  • 決済完了ページを閉じられても、サーバーの確定処理から送れる
  • キャンセル・返金は同じ order_id で金額を送り直すだけ(0円なら取り消し)

準備(1分)

  1. 設定画面(左メニューの「設定」)を開き、「コンバージョンAPI」のカードまでスクロールする
  2. [トークンを発行] を押す。表示されたトークンを控える
  3. [疎通を確認する] を押して「確認できました」と出れば、受け口の準備は完了です(成果としては記録されません)
  4. 注文が確定する処理の最後に送る。WordPress(WooCommerce)なら下の貼るだけの例が使えます。 それ以外は次の項目の形式で送ってください

トークンはサーバー側だけに保存してください(ブラウザのJavaScriptや公開リポジトリに置くと、 誰でも偽の成果を送れてしまいます)。

送り方

POST https://analyticscore.jp/api/cv
Authorization: Bearer <トークン>
Content-Type: application/json

{
  "order_id":  "ord_123",                   // 必須。注文ごとに一意(再送は上書き)
  "value_jpy": 4980,                        // 金額(円・整数)。取り消しは 0
  "goal":      "purchase",                  // 目標の名前。目標画面の名前と同じにすると一覧が繋がる
  "buyer_ip":  "203.0.113.7",               // 買い手のIP(結びつけ用・保存しません)
  "buyer_ua":  "Mozilla/5.0 ...",           // 買い手のブラウザ情報(同上)
  "url":       "https://example.com/thanks" // 任意
}

注文が確定した直後に送るなら、時刻の指定は要りません(受信した時刻を使います)。 あとからまとめて送る場合だけ occurred_at に確定時刻をISO 8601形式 (例 2026-08-25T12:34:56Z)で入れてください。★未来の時刻は受け付けませんので、 サンプルの日時をそのまま貼らないでください。

buyer_ip と buyer_ua は、あなたのサーバーが受け取ったリクエストの 接続元IPと User-Agent ヘッダをそのまま入れてください。結びつけの計算にだけ使い、保存しません。

WordPress(WooCommerce)の例 — これを貼るだけ

使っているテーマの functions.php(推奨は子テーマ、またはコードスニペット系プラグイン)に貼り付け、 1行目のトークンだけご自分のものに置き換えてください。注文が「支払い済み」になったときに自動で送られます。

<?php
// Analytics CORE — 注文の実額を送る(WooCommerce)
add_action( 'woocommerce_payment_complete', function ( $order_id ) {
    $token = 'ここにトークンを貼る';   // 設定画面 → コンバージョンAPI で発行したもの

    $order = wc_get_order( $order_id );
    if ( ! $order ) { return; }

    wp_remote_post( 'https://analyticscore.jp/api/cv', array(
        'timeout'  => 5,
        'blocking' => false,              // 注文処理を遅くしない(応答を待たない)
        'headers'  => array(
            'Authorization' => 'Bearer ' . $token,
            'Content-Type'  => 'application/json',
        ),
        'body' => wp_json_encode( array(
            'order_id'  => (string) $order_id,
            'value_jpy' => (int) $order->get_total(),
            'goal'      => 'purchase',
            'buyer_ip'  => $order->get_customer_ip_address(),
            'buyer_ua'  => $order->get_customer_user_agent(),
            'url'       => $order->get_checkout_order_received_url(),
        ) ),
    ) );
} );
  • 返金したときも送りたい場合は、同じ形で woocommerce_order_refunded にも足し、value_jpy を返金後の金額にしてください
  • blocking => false にしているので、送信が遅くてもお客様の注文完了画面は待たされません
  • 目標名(goal)を「目標(成果・CV)」画面の名前と同じにすると、一覧の同じ行にまとまります

応答の読み方

{ "ok": true, "order_id": "ord_123", "matched": true,  "reason": null }
{ "ok": true, "order_id": "ord_124", "matched": false, "reason": "late",
  "hint": "当日(UTC)内の注文だけ訪問と突合できます。台帳には件数と金額が残ります。" }
  • matched: true … 同じ日の訪問と結びつきました。経路別・入口ページ別の成果に載ります
  • matched: false … 結びつきませんでした。それでも件数と金額は設定画面の「未照合」に残ります(黙って捨てません)
  • reason は3種類: late(当日外)/ no_visit(同じ日の訪問が無い)/ no_identity(IPかブラウザ情報が無い)
  • エラー(ok: false)は error.message に直し方が書いてあります

結びつく条件と限界

  • 結びつくのは同じ日(UTC)の訪問だけです。訪問者IDは24時間で切り替わるプライバシー設計のため、 翌日以降に送った注文は「未照合」になります。確定したらその日のうちに送るのがコツです
  • 買い手が回線を切り替えた(Wi-Fi→モバイルなど)場合や、別の端末で注文した場合は結びつきません
  • 同じ order_id の再送は上書きです。金額を変えて送り直せば差額が反映されます(0円で取り消し)
  • 目標画面に同じ名前の「URL到達」の目標があっても、同じ人の同じ日の成果は二重に数えません

うまくいかないとき

  • 401 が返る — トークンが違います。再発行した場合は新しいトークンに差し替えてください
  • 照合率が低い — 送るタイミングが翌日以降になっていないか(reason: late)、buyer_ip/buyer_ua が空になっていないか(no_identity)を設定画面の内訳で確認してください
  • 解決しない場合は support@analyticscore.jp まで、応答のJSONを添えてご連絡ください
マニュアル記事利用規約プライバシーポリシー特定商取引法に基づく表記お問い合わせ
© 2026 Pifto Works — Analytics CORE