TikTok広告におけるコンバージョン計測の全体像
TikTok広告の配信最適化は、正確なコンバージョンデータがあって初めて機能します。「誰が広告を見て、どの行動をとったか」というシグナルが不足すると、機械学習の精度が下がり、配信効率が悪化します。
TikTokのコンバージョン計測には2つの経路があります。
- TikTokピクセル: ブラウザ上のJavaScriptからTikTokにイベントを送信する
- Events API: サーバーからTikTokに直接イベントを送信する
どちらか片方だけでも計測は可能ですが、両方を組み合わせることで計測のカバレッジが大きく改善します。Cookie規制やブラウザの制限が進む現在、ピクセルだけに頼る構成には明確なリスクがあります。
TikTokピクセルの仕組みと設定
TikTokピクセルとは
TikTokピクセルは、Webサイトに設置するJavaScriptタグです。ユーザーがサイト上で特定の行動(購入、フォーム送信など)をとった際に、そのイベントをTikTokの広告プラットフォームへ送信します。
Meta広告のMetaピクセルやGoogle広告のコンバージョンタグと同じ役割を果たすもので、TikTok広告の配信最適化とレポーティングの基盤です。
ピクセルの設置方法
TikTokピクセルの設置方法は2つあります。
1. 手動設置(ベースコード貼り付け)
TikTok広告マネージャーの「イベント」からピクセルコードを取得し、サイトの<head>タグ内に設置します。最もシンプルな方法ですが、サイトのHTMLを直接編集する必要があります。
{/* TikTok Pixel Base Code */
<script>
!function (w, d, t) {
w.TtsAnalyticsObject=t;var ttq=w[t]=w[t]||[];
ttq.methods=["page","track","identify","instances",
"debug","on","off","once","ready","alias","group",
"enableCookie","disableCookie","holdConsent",
"revokeConsent","grantConsent"];
ttq.setAndDefer=function(t,e){
t[e]=function(){t.push([e].concat(
Array.prototype.slice.call(arguments,0)))}};
for(var i=0;i<ttq.methods.length;i++)
ttq.setAndDefer(ttq,ttq.methods[i]);
ttq.instance=function(t){for(var e=ttq._i[t]||[],
n=0;n<ttq.methods.length;n++)
ttq.setAndDefer(e,ttq.methods[n]);return e};
ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",
o=n&&n.partner;ttq._i=ttq._i||{};ttq._i[e]=[];
ttq._i[e]._u=r;ttq._t=ttq._t||{};ttq._t[e+
"_"+o]=1;var a=d.createElement("script");
a.type="text/javascript";a.async=!0;a.src=r+
"?sdkid="+e+"&lib="+t;var s=d.getElementsByTagName(
"script")[0];s.parentNode.insertBefore(a,s)};
ttq.load('YOUR_PIXEL_ID');
ttq.page();
}(window, document, 'ttq');
</script>
YOUR_PIXEL_IDの箇所に、広告マネージャーで発行されたピクセルIDを入力します。
2. GTM(Google Tag Manager)経由
GTMのカスタムHTMLタグ、またはTikTok公式のGTMテンプレートを使って設置します。サイトのHTMLを直接編集できない場合や、複数の広告タグをGTMで一元管理している場合に適しています。
GTM経由の場合、トリガー設定でイベント発火の条件を柔軟にコントロールできる点もメリットです。
イベントの送信
ピクセルのベースコードを設置しただけでは、ページビューしか計測できません。コンバージョン計測には、コンバージョンが発生するページやアクションに対してイベントコードを追加する必要があります。
// 購入完了イベントの送信例
ttq.track('CompletePayment', {
content_type: 'product',
content_id: 'product_123',
quantity: 1,
value: 5000,
currency: 'JPY'
});
ピクセルとEvents APIのデータフロー
TikTokピクセル(ブラウザ経由)とEvents API(サーバー経由)は、それぞれ異なるデータ伝送経路を持ちます。両方を併用し、同一のevent_idで重複排除を行うのがTikTok推奨の構成です。
ピクセルは広告ブロッカーやITP(Intelligent Tracking Prevention)の影響を受けます。一方、Events APIはサーバーから直接送信するため、ブラウザ側の制約を回避できます。両方を併用し、event_idで重複を排除することで、計測のカバレッジが最大化されます。
運用メモ TikTokピクセルだけの構成では、iOS 14.5以降のATTオプトアウトや広告ブロッカーにより、実際のコンバージョンの20〜40%が計測漏れになる場合があります。Events APIを併用すると、これらの環境でもサーバー経由でイベントが到達するため、欠損を補完できます。導入直後は、広告マネージャーの「イベント」画面で、ピクセルとEvents APIそれぞれの受信状況と重複排除率を確認してください。
標準イベントとカスタムイベント
TikTokのコンバージョン計測では、標準イベントの利用が推奨されています。標準イベントはTikTokの配信アルゴリズムが意味を理解できるため、最適化の精度に直結します。
主要パラメータ
イベント送信時には、以下のパラメータを付与することで計測の精度が上がります。
| パラメータ | 用途 | 推奨度 |
|---|---|---|
content_type | productまたはproduct_group | 高(EC必須) |
content_id | 商品ID(カタログ連携時に使用) | 高(EC必須) |
value | コンバージョンの金額 | 高 |
currency | 通貨コード(JPY) | 高 |
quantity | 数量 | 中 |
description | イベントの補足情報 | 低 |
特にEC系サイトでは、content_idとvalueを正確に送ることが重要です。これらのパラメータがあると、TikTokの入札最適化がROAS(広告費用対効果)ベースで精度高く動きます。
Events APIの設計と実装
Events APIとは
Events APIは、Webサーバーから直接TikTokのサーバーへイベントデータを送信する仕組みです。Meta広告のコンバージョンAPI(CAPI)と同じ考え方で、ブラウザを介さない分、Cookie規制や広告ブロッカーの影響を受けません。
導入方法
Events APIの導入方法は主に3つあります。
1. GTMサーバーサイドコンテナ
GTMのサーバーサイドコンテナにTikTok Events APIのタグテンプレートを追加する方法です。すでにGTMサーバーサイドを運用している場合は最も効率的です。
2. パートナー統合
Shopify、WooCommerceなどの主要ECプラットフォームには、TikTok Events APIの統合機能が用意されています。プラグインを導入するだけで設定が完了するため、技術的な負担が最も低い選択肢です。
3. 直接API実装
自社サーバーからTikTokのエンドポイントにHTTPリクエストを送る方法です。
import requests
import hashlib
import json
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"
PIXEL_ID = "YOUR_PIXEL_ID"
url = f"https://business-api.tiktok.com/open_api/v1.3/event/track/"
headers = {
"Content-Type": "application/json",
"Access-Token": ACCESS_TOKEN
}
payload = {
"pixel_code": PIXEL_ID,
"event": "CompletePayment",
"event_id": "unique_event_id_12345",
"timestamp": "2026-06-27T10:00:00+09:00",
"context": {
"user_agent": "Mozilla/5.0 ...",
"ip": "203.0.113.1"
},
"properties": {
"value": 5000,
"currency": "JPY",
"content_type": "product",
"contents": [
{"content_id": "product_123", "quantity": 1}
]
},
"user": {
"email": hashlib.sha256(
"user@example.com".lower().strip().encode()
).hexdigest(),
"phone": hashlib.sha256(
"+819012345678".encode()
).hexdigest()
}
}
response = requests.post(url, headers=headers, json=payload)
直接API実装は柔軟性が最も高い反面、開発リソースが必要です。ECカートやCRMとの統合が必要な場合に適しています。
アクセストークンの取得
Events APIの利用には、TikTok広告マネージャーでアクセストークンを発行する必要があります。
- 広告マネージャーの「イベント」を開く
- 対象ピクセルの「設定」を選択する
- 「Events API」セクションでアクセストークンを生成する
トークンには有効期限がないため、一度発行すれば継続的に利用できます。ただし、セキュリティの観点から定期的な再発行を推奨します。
GTM連携の詳細
GTM(Google Tag Manager)を使ったTikTokピクセルの設定方法を解説します。
Webコンテナでのピクセル設定
- GTMのコミュニティテンプレートギャラリーから「TikTok Pixel」テンプレートを追加する
- ピクセルIDを入力し、ベースタグを「All Pages」トリガーで発火させる
- コンバージョンイベント用のタグを別途作成し、購入完了ページやフォーム送信時のトリガーに紐づける
GTMを使うメリットは、サイトのHTMLを直接編集せずにピクセルを管理できる点です。イベントパラメータもデータレイヤー変数を通じて柔軟に渡せます。
// データレイヤーへのイベントプッシュ例
dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: 'T-12345',
value: 5000,
currency: 'JPY',
items: [{
item_id: 'product_123',
quantity: 1,
price: 5000
}]
}
});
サーバーサイドコンテナでのEvents API設定
GTMサーバーサイドコンテナを使えば、ピクセルとEvents APIの両方を一元管理できます。
- GCPまたはAWS上にGTMサーバーサイドコンテナをデプロイする
- Webコンテナでサーバーサイドコンテナへリクエストを転送するよう設定する
- サーバーサイドコンテナにTikTok Events APIのタグテンプレートを追加する
- イベントデータのマッピングとアクセストークンを設定する
この構成では、Webコンテナからサーバーサイドコンテナにデータが転送され、そこからTikTokのEvents APIにサーバー間通信で送信されます。Meta広告やGoogle広告のサーバーサイド計測も同じインフラで運用できる点が大きなメリットです。
ピクセルとEvents APIの併用設定
重複排除の実装
ピクセルとEvents APIの両方からイベントを送る場合、event_idによる重複排除が必須です。同じコンバージョンが二重にカウントされると、レポートの数値が実態と乖離し、自動入札の学習にも悪影響を与えます。
実装のポイントは、ブラウザ側で生成したユニークIDを、ピクセルとEvents APIの両方に渡すことです。
// ブラウザ側でユニークなevent_idを生成
const eventId = crypto.randomUUID();
// TikTokピクセルに送信
ttq.track('CompletePayment', {
value: 5000,
currency: 'JPY',
content_type: 'product'
}, { event_id: eventId });
// サーバー側にも同じevent_idを送信
fetch('/api/tiktok-event', {
method: 'POST',
body: JSON.stringify({
event: 'CompletePayment',
event_id: eventId,
value: 5000,
currency: 'JPY'
})
});
サーバー側で受け取ったevent_idを、Events APIのリクエストにそのまま含めて送信します。TikTok側で同じevent_idのイベントを1件に統合します。
ユーザーマッチング情報
Events APIの効果を最大化するには、ユーザーを特定するための情報を可能な限り送信します。送信するデータはすべてSHA-256でハッシュ化した状態で送ります。
| パラメータ | 優先度 | 備考 |
|---|---|---|
| メールアドレス | 高 | 小文字化・トリム後にハッシュ化 |
| 電話番号 | 高 | 国番号(+81)付きでハッシュ化 |
| IPアドレス | 高 | サーバーで自動取得(ハッシュ化不要) |
| ユーザーエージェント | 高 | サーバーで自動取得(ハッシュ化不要) |
| 外部ID | 中 | 自社のユーザーID |
| ttclid | 中 | TikTok Click ID(URL付与時) |
ttclidはTikTok広告のクリック時にURLパラメータとして付与されるIDです。ランディングページで取得してEvents APIに含めることで、マッチング精度が向上します。
運用メモ
ttclidはTikTok広告からのクリック時にURLに自動付与されるパラメータです。このIDをファーストパーティCookieに保存し、コンバージョン時にEvents APIで送信すると、ユーザーマッチングの精度が大幅に上がります。具体的には、ランディングページのJavaScriptでURLからttclidを抽出し、有効期限7日程度のCookieに保存します。コンバージョン発生時にCookieから読み出してサーバーに送る構成が推奨です。
計測精度を高めるための実践的なチェックリスト
導入時の確認項目
- ピクセルのベースコードが全ページに設置されているか
- コンバージョンイベントが正しいページ・アクションで発火しているか
- Events APIのアクセストークンが有効か
-
event_idがピクセルとEvents APIで一致しているか - ユーザー情報(メール、電話番号)がSHA-256でハッシュ化されているか
-
ttclidがCookieに保存され、Events APIに送信されているか - テストイベントで受信が確認できているか
運用時の定期確認
週次で確認すべき指標
- イベントマネージャーの受信イベント数(ピクセル経路・Events API経路の内訳)
- 重複排除率(正常であれば0%に近い)
- エラー率(Events APIのレスポンスエラー)
月次で確認すべき指標
- 計測されたCV数と実際のCV数の乖離
- Events APIのレスポンスタイムの変動
- アクセストークンの状態
よくあるトラブルと対処法
イベントが受信されない
- ピクセルIDが正しいか確認する
- Events APIのアクセストークンが有効か確認する
- ファイアウォールでTikTokのエンドポイントへの通信がブロックされていないか確認する
コンバージョン数が倍増している
event_idの実装漏れが最も多い原因- ピクセルとEvents APIで同じイベント名を使っているか確認する
- イベント名は大文字・小文字を区別するため、表記が一致しているか確認する
計測漏れが疑われる
- 広告ブロッカーの利用率が高いユーザー層をターゲットにしている場合は、Events API側の受信が増えるのが正常
ttclidの保存期間が短すぎないか確認する(推奨は7日以上)
まとめ
TikTok広告のコンバージョン計測は、ピクセル単体からピクセル+Events APIの併用構成へ移行する段階にあります。Cookie規制が強化される中で、サーバーサイド計測の併用は「あると便利」ではなく「必須」になりつつあります。
導入の優先順位としては、まずピクセルで正確なイベント計測を確立し、その上でEvents APIを追加するのが現実的です。GTMサーバーサイドコンテナを利用すれば、Meta広告やGoogle広告のサーバーサイド計測と同じインフラを共有でき、導入・管理の負担を抑えられます。
計測精度の向上は、配信最適化の精度向上に直結します。TikTok広告を運用しているなら、Events APIの導入を優先的に検討してください。