コンバージョンAPI(CAPI)設定
コンバージョンAPI(CAPI)は、ブラウザのタグ計測に頼らず サーバー経由でコンバージョン(CV)を各広告媒体へ送る 仕組みです。ブラウザの制限(iOS・トラッキング防止・広告ブロック)の影響を受けにくく、計測の取りこぼしを減らせます。
「誰がクリックしてCVしたか」の照合には、広告クリック時にURLへ付く クリックID(yclid など)を主に使い、メールアドレス・電話番号(暗号化して送信)も補助に使えます。
全体の流れ
- サイトに来訪したユーザーの広告クリックIDを、アプリが用意するタグが記録します。
- 購入や申込などのCVが起きたら、その情報がアプリに送られます。
- アプリが、設定済みの広告媒体へCVを送信します。
- 送信結果は、媒体フォルダの「コンバージョン設定」画面で確認できます。
操作する場所は3か所あります
設定では操作する場所が分かれます。混同しやすいので、本ガイドでは各手順に 【アプリ】/【媒体】/【サイト】 のラベルを付けています。
| ラベル | 操作する場所 | 例 |
|---|---|---|
| 【アプリ】 | このアプリの画面(媒体フォルダ → コンバージョン設定) | 受信キーの発行・CVの対応付け |
| 【媒体】 | 各広告媒体の管理画面 | CVタグの作成・識別子(キー)の取得 |
| 【サイト】 | あなたのLP/ECサイト | 計測タグの設置 |
全媒体共通の手順(アプリでの操作)
媒体に関係なく、まずアプリ側で次の3つを行います。
手順1【アプリ】受信キーを発行する
受信キーと配布タグは プロジェクト共通(サイトに1つ設置すればOK)なので、プロジェクト画面で発行します。
- 左のツリーで プロジェクト を選びます。
- プロジェクト概要の 「コンバージョンAPI(CAPI)」 セクションを開きます。
- 「受信キー」の 「+ キー発行」 を押します。
- 表示されたキーを控えます。
注意
キーは発行直後の1回だけ表示されます(あとから再表示はできず、失効のみ可能)。安全な場所に保存してください。
手順2【アプリ】CVの対応付けを登録する
「CV マッピング」で、アプリ内のCV名と、媒体側のCVを対応付けます。
- アプリ内CV名: CVの呼び名(例:
Purchase)。Meta の標準イベント名に揃えています(入力欄の候補から選べます)。サイトのタグから送る名前と大文字小文字まで完全に一致させてください。 - 媒体側CV: 媒体の管理画面で取得した識別子(媒体ごとに形式が違います → 各媒体ページ参照)。
ヒント
1つのアプリ内CV名を、複数媒体のCVへまとめて対応付けられます。サイトのタグは1回送るだけで、設定済みの全媒体へ届きます。
重要
マッピングを登録しただけではCVは1件も発生しません。 手順3のとおり、サイト側で cvTrack() を呼ぶ必要があります。登録すると「コンバージョン設定(CAPI)」パネルのマッピング一覧の下に、そのCV名用の埋め込みコードがコピーボタン付きで表示されるので、それをサイトのCV発生箇所に貼り付けてください。
手順3【サイト】計測タグを設置する
LP/ECサイトにアプリが用意する計測タグを設置し、CVが起きたタイミングで送信されるようにします。
- タグは プロジェクト概要の「コンバージョンAPI(CAPI)」→「サイト設置用タグ」の「タグをコピー」 から取得できます。
- 受信キーを発行した直後にコピーすると、キーが埋め込まれた状態のタグが得られます(キーは発行時のみ表示)。後からコピーした場合は、タグ内の
<発行した受信キー>を保存しておいたキーに置き換えてください。 - サイトの
<head>に貼り付け、CV発生時にcvTrack("Purchase", { value: 1000, eventId: "注文番号" })を呼びます。
重要
CVを送る際は 注文番号などの「重複しない番号」を必ず付けて ください。これが重複排除の鍵になります。クリックID(yclid)が同じでも重複排除にはなりません(同じクリックから複数のCVが起きることがあるためです)。
GTMを使う場合
GTM(Googleタグマネージャー)でタグを管理している場合は、GTMで設置する(重複排除つき) を参照してください。GTMのタグ内でイベントIDを発行し、広告タグ(ピクセル)とアプリの cvTrack() を同じIDで発火させることで、ピクセルとCAPIの二重計上を防げます。
媒体ごとに取得するキーが違います
CVタグの作り方や識別子(キー)の取得方法は媒体ごとに異なります。下の媒体別ページを参照してください。
- Yahoo!ディスプレイ/LINE — 対応済み
- TikTok — 対応済み
- Meta(Facebook/Instagram) — 対応済み
- SmartNews — 対応済み(認証情報は営業担当が発行)
- Google Ads — 対応済み
- Yahoo!検索 — 準備中
- Pinterest — 準備中
- X(旧Twitter) — 準備中
注意
「準備中」の媒体は、対応付けを登録しても今はまだ送信されません。現在送信できるのは Yahoo!ディスプレイ/LINE・TikTok・Meta・SmartNews・Google Ads です。
重複排除(同じCVを二重に数えないために)
同じCVが2回数えられる原因は、大きく「同じCVを別イベントとして送ってしまう」ことと、「媒体のピクセルとCAPIの両方から届く」ことの2つです。前者はアプリ側で防がれており、後者は媒体ごとに事情が違います。
アプリ側は eventId で守っています
送信した eventId(重複しない番号)は、アプリ内で同じ番号のCVを1件しか受け付けないキーとして使われ、さらに各媒体の重複判定キーへそのまま引き渡されます。再送やリトライで二重に届くことはありません。
重要
そのため eventId は、同じCVなら何度呼ばれても同じ値になるものにしてください。注文番号・申込IDなどの業務IDが最適です。省略すると時刻+乱数で自動生成されるため、完了ページをリロードしただけで別のCVとして数えられます。業務IDが無いCV(問い合わせなど)は、サーバー側で発行したIDを完了ページに埋め込むか、フォーム送信時に作ったIDをクッキーに保存して使い回してください。
同じ注文に対して種類の違うCV(InitiateCheckout と Purchase など)を送る場合は、"Purchase-" + 注文番号 のようにCV名を接頭辞に付けて区別してください。
ヒント
GTM(Googleタグマネージャー)を使っているなら、GTMで設置する が確実です。 1つのタグの中でイベントIDを1回だけ発行し、その同じIDで広告タグ(ピクセル)とアプリの cvTrack() を発火させることで、ピクセルとCAPIの二重計上を媒体側で統合できます。
媒体ごとの重複判定
アプリが送った eventId が、各媒体でどのキーとして扱われるかは次のとおりです。
| 媒体 | 媒体側の重複判定キー | ピクセル(サイトタグ)との併用 |
|---|---|---|
| Google Ads | orderId(eventId をそのまま送信) | CAPIは「インポート(クリック)」型の別のコンバージョンアクション。サイトタグのCVとは別カウントになるため、入札最適化に使うのはどちらか一方にする |
| Meta | event_name と event_id の組 | 併用可。ピクセル側にも同じ event_id を渡せばイベントマネージャ上で統合される |
| TikTok | event_id | 併用可。ピクセル側にも同じ event_id を渡せば統合される |
| Yahoo!ディスプレイ/LINE | transaction_id(eventId をそのまま送信) | 併用可(同じ transaction_id で統合) |
| SmartNews | なし(APIに event_id 相当のフィールドが無い) | 併用不可(二重計上されます)。ピクセルかCAPIのどちらか一方で計測してください |
| LINE公式アカウント連携(Webhook) | Webhookのイベントごとに line:<イベントID> を自動採番 | サイトタグ不要。再送・過去分の再評価(replay)も自動で冪等 |
ヒント
転送結果ログの DUPLICATE_ORDER_ID / CLICK_CONVERSION_ALREADY_EXISTS(Google)は「すでに計上済み」という意味で、アプリは成功として扱います。エラーではありません。
注意
媒体をまたいだ重複は仕様どおりです。 1人のユーザーが複数媒体の広告をクリックしていた場合、有効期限内のすべての流入元媒体へ同じCVを返します。したがって「媒体別CV数の合計」は実際のCV件数より多くなります。実CV件数を見たいときは媒体をまたいで足し算しないでください。
LINE公式アカウントのイベントをCVにする
サイト上のCVだけでなく、LINE公式アカウントの友だち追加やメッセージなどのイベントを、流入元の広告媒体へCVとして送り返すこともできます。設定手順は LINE公式アカウント連携 を参照してください。
ヒント
送信先は「そのユーザーが実際にクリックして流入した媒体」だけに自動で絞られます。転送結果ログの「対象外(no_match_key)」は、流入元でない媒体へ送っていない正常な動作です。