meta-capi について
meta-capiは、Meta Conversions APIの実装とトラブルシューティング向け技術リファレンススキルです。イベント仕様、ハッシュ処理、重複排除、テストに加え、直接APIやGTMサーバーサイドの設定例を開発者やマーケターに提供します。
主な機能
- 01標準イベントとカスタムイベントの解説
- 02顧客データの正規化とハッシュ処理
- 03PixelとCAPIのイベント重複排除
- 04イベントマッチ品質の改善方法
- 05Node.js、Python、GTMの例
活用シーン
- 01CAPIイベントのパラメーターを設計
- 02イベント計測と重複排除の問題を調査
- 03イベントマッチデータの品質を改善
- 04直接APIまたはGTMサーバーサイド計測を設定
MCP 対応
Cogny MCPツールが利用可能な場合、Pixel設定、広告アカウント設定、キャンペーンデータの確認に使用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cognyai/ claude-code-marketing-skills --skill meta-capiインストール後、Claude Code で/meta-capiを入力して読み込まれたか確認します。
詳細
Meta Conversions API(CAPI)セットアップリファレンス
Meta Conversions API の技術リファレンスです。アーキテクチャ、パラメーターを含むすべての標準イベントタイプ、顧客情報のハッシュ化、実装方法、イベントの重複排除、テスト、Aggregated Event Measurement について説明します。
ドキュメント全文:https://cogny.com/docs/meta-conversions-api
使用方法
/meta-capi # Full CAPI overview
/meta-capi deduplication # Event dedup strategy
/meta-capi purchase event # Purchase event parameters
/meta-capi emq # Improve Event Match Quality
/meta-capi aem # Aggregated Event Measurement
/meta-capi node.js # Node.js implementation example
/meta-capi gtm server-side # GTM SS container setup
手順
あなたは Meta Conversions API のエキスパートです。このリファレンスを使用して、ユーザーによる CAPI の正しい実装、イベントトラッキングの問題のデバッグ、Event Match Quality の改善、重複排除の設定、Aggregated Event Measurement の理解を支援してください。
ユーザーから質問されたら、以下から関連するセクションを探し、すぐに使えるコード例を添えて、正確で実行可能な回答を提供してください。
ユーザーが特定のトピックを引数として指定した場合は、その領域に焦点を当ててください。それ以外の場合は、CAPI アーキテクチャと主な実装手順の概要を説明してください。
Cogny MCP ツールを利用できる場合は、それらを使用してユーザーの実際の Pixel 設定、広告アカウントのセットアップ、キャンペーンデータを確認し、状況に応じた推奨事項を提供してください。
アーキテクチャ:ブラウザ Pixel とサーバーサイド CAPI
User's Browser
+------------------------------+
| Meta Pixel (fbevents.js) |
| - Fires on page interaction |
| - Sets _fbp / _fbc cookies |
| - Sends event_id for dedup |
+----------+-------------------+
| HTTPS (browser -> Meta)
v
+------------------------------+
| Meta Servers |
| - Receives Pixel events |
| - Receives CAPI events |
| - Deduplicates via event_id |
| - Matches users (EMQ) |
| - Feeds ad optimization |
+------------------------------+
^
| HTTPS (server -> Meta)
+----------+-------------------+
| Your Server / GTM SS |
| - Conversions API endpoint |
| - POST /v21.0/{pixel_id}/ |
| events |
| - Hashes PII before sending |
| - Sends same event_id |
+------------------------------+
両方が重要な理由:
- Pixel のみ: 広告ブロッカー(シグナル損失 15〜30%)、ITP による Cookie の有効期限(Safari では上限 7 日)、ネットワーク障害の影響を受けます。
- CAPI のみ: リアルタイムのブラウザー操作を捕捉できず、ファーストパーティ Cookie を設定できません。
- Pixel + CAPI(推奨): 重複排除を伴う冗長なデータ経路を確保します。失われたコンバージョンの 10〜25%を補完します。
標準イベント
Purchase
取引が完了したときに発生します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | はい | 取引の合計金額 |
currency | string | はい | ISO 4217 コード(例:USD、EUR) |
content_ids | array | 推奨 | カタログの商品 ID |
content_type | string | 推奨 | product または product_group |
contents | array | 推奨 | {id, quantity, item_price} の配列 |
content_name | string | 任意 | 商品名またはページ名 |
content_category | string | 任意 | 商品カテゴリ |
num_items | integer | 任意 | 商品数 |
order_id | string | 任意 | 内部注文 ID |
AddToCart
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 推奨 | 商品の価格 |
currency | string | 推奨 | ISO 4217 コード |
content_ids | array | 推奨 | 商品 ID |
content_type | string | 推奨 | product または product_group |
contents | array | 推奨 | {id, quantity, item_price} |
content_name | string | 任意 | 商品名 |
content_category | string | 任意 | 商品カテゴリ |
InitiateCheckout
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 推奨 | カートの合計金額 |
currency | string | 推奨 | ISO 4217 コード |
content_ids | array | 推奨 | カート内の商品 ID |
content_type | string | 推奨 | product または product_group |
contents | array | 推奨 | {id, quantity, item_price} |
num_items | integer | 任意 | 商品数 |
CompleteRegistration
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 任意 | 登録の価値 |
currency | string | 任意 | ISO 4217 コード |
content_name | string | 任意 | フォーム名またはページ名 |
status | string | 任意 | 登録ステータス |
Lead
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 任意 | 見込み客の推定価値 |
currency | string | 任意 | ISO 4217 コード |
content_name | string | 任意 | リードフォーム名 |
content_category | string | 任意 | リードカテゴリ |
ViewContent
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 推奨 | コンテンツの価値 |
currency | string | 推奨 | ISO 4217 コード |
content_ids | array | 推奨 | コンテンツ/商品の ID |
content_type | string | 推奨 | product または product_group |
content_name | string | 任意 | コンテンツ名 |
content_category | string | 任意 | コンテンツカテゴリ |
Search
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
search_string | string | 推奨 | 検索クエリ |
value | float | 任意 | 割り当てられた価値 |
currency | string | 任意 | ISO 4217 コード |
content_ids | array | 任意 | 検索結果の ID |
content_category | string | 任意 | 検索結果のカテゴリ |
AddPaymentInfo
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 任意 | カートの価値 |
currency | string | 任意 | ISO 4217 コード |
content_ids | array | 任意 | 商品 ID |
content_type | string | 任意 | product または product_group |
content_category | string | 任意 | 支払い方法のカテゴリ |
AddToWishlist
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 任意 | アイテムの価値 |
currency | string | 任意 | ISO 4217 コード |
content_ids | array | 任意 | 商品 ID |
content_name | string | 任意 | 商品名 |
content_category | string | 任意 | 商品カテゴリ |
Contact
ユーザーが電話、SMS、メール、チャットで連絡を開始したときに発生します。顧客情報以外に必須または推奨されるパラメーターはありません。
CustomizeProduct
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content_ids | array | 任意 | 商品 ID |
content_type | string | 任意 | product または product_group |
content_name | string | 任意 | 商品名 |
Donate
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 推奨 | 寄付額 |
currency | string | 推奨 | ISO 4217 コード |
FindLocation
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content_name | string | 任意 | 場所の名前または検索クエリ |
content_category | string | 任意 | 場所の種類 |
Schedule
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content_name | string | 任意 | 予約の種類 |
content_category | string | 任意 | サービスカテゴリ |
StartTrial
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | 推奨 | 予測されるトライアルの価値 |
currency | string | 推奨 | ISO 4217 コード |
content_name | string | 任意 | トライアルプラン名 |
SubmitApplication
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content_name | string | 任意 | 申請の種類 |
content_category | string | 任意 | 申請カテゴリ |
Subscribe
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
value | float | はい | サブスクリプションの価値 |
currency | string | はい | ISO 4217 コード |
content_name | string | 任意 | プラン名 |
カスタムイベント
カスタムイベントは、標準イベントに対応付けられていないアクションを対象とします。オーディエンスの作成やカスタムコンバージョンに使用されますが、標準の最適化目標には利用できません。
命名規則:
- 最大 40 文字
- 小文字、数字、アンダースコアのみ使用可能
- 数字で始めてはいけません
- 予約済みの名前(標準イベント名、
fb_、_fbのプレフィックス)は使用できません - 例:
qualified_lead、demo_booked、pricing_page_scroll_50
顧客情報パラメーター
顧客情報パラメーターを使うと、Meta はイベントとユーザープロフィールを照合できます。照合品質が高いほど、広告の最適化が向上します。
利用可能なパラメーター
| パラメーター | キー | ハッシュ化前の形式 |
|---|---|---|
| メールアドレス | em | 小文字に変換し、空白を削除 |
| 電話番号 | ph | 国番号を含む数字のみ(例:14155551234) |
| 名 | fn | 小文字に変換し、前後の空白と句読点を削除 |
| 姓 | ln | 小文字に変換し、前後の空白と句読点を削除 |
| 市区町村 | ct | 小文字に変換し、前後の空白と句読点、スペースを削除 |
| 州 | st | 2 文字の略称を小文字で指定(例:ca) |
| 郵便番号 | zp | 前後の空白を削除。米国の場合は 5 桁のみ |
| 国 | country | ISO 3166-1 alpha-2 の 2 文字コードを小文字で指定(例:us) |
| 生年月日 | db | YYYYMMDD 形式 |
| 性別 | ge | 1 文字:m または f |
| 外部 ID | external_id | 任意の文字列。ハッシュ化を推奨しますが、必須ではありません |
ハッシュ化の要件
external_id を除くすべてのパラメーターは、CAPI で送信する前に SHA-256 でハッシュ化する必要があります。Pixel は自動的にハッシュ化しますが、CAPI は自動的にハッシュ化しません。
手順: 正規化(小文字に変換し、前後の空白を削除)-> SHA-256 -> 小文字の 16 進数文字列(64 文字)
// Node.js
const crypto = require('crypto');
function hashForMeta(value) {
if (!value) return null;
return crypto.createHash('sha256')
.update(value.toString().trim().toLowerCase())
.digest('hex');
}
# Python
import hashlib
def hash_for_meta(value):
if not value:
return None
return hashlib.sha256(str(value).strip().lower().encode('utf-8')).hexdigest()
よくある間違い:
- 正規化する前にハッシュ化する(入力値に大文字が含まれている)
- すでにハッシュ化された値を二重にハッシュ化する
- ハッシュ入力に空白を含める
- 電話番号に国番号を付け忘れる
- SHA-256 ではなく MD5 を使用する
イベント照合品質(EMQ)
EMQ は、Meta がイベントとユーザープロフィールをどの程度照合できたかを示す 1~10 のスコアです。
| EMQ スコア | 品質 | 影響 |
|---|---|---|
| 1-3 | 低い | ほとんどのイベントが照合されない |
| 4-5 | 普通 | 部分的に照合される |
| 6-7 | 良好 | 高い精度で照合される |
| 8-10 | 非常に良好 | 最適化の可能性を最大限に引き出せる |
EMQ を改善する方法:
- すべてのイベントで
em(メールアドレス)を送信する。最も効果があります - 2 つ目の識別子として
ph(電話番号)を追加する - よくあるメールアドレスを区別できるよう、
fn+lnを含める - デバイスをまたいだ照合のため、
external_idを渡す - ブラウザーからサーバーへ
fbpとfbcの Cookie を転送する - 正しい正規化とハッシュ化が行われていることを確認する
実装方法
直接 API 連携
エンドポイント: POST https://graph.facebook.com/v21.0/{pixel_id}/events
認証: access_token クエリパラメーター(ads_management 権限を持つシステムユーザートークン)
Node.js の例
const crypto = require('crypto');
const PIXEL_ID = 'YOUR_PIXEL_ID';
const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';
function hash(value) {
if (!value) return undefined;
return crypto.createHash('sha256')
.update(value.toString().trim().toLowerCase())
.digest('hex');
}
async function sendEvent(eventName, eventData, userData, eventId = null) {
const payload = {
data: [{
event_name: eventName,
event_time: Math.floor(Date.now() / 1000),
event_id: eventId || crypto.randomUUID(),
event_source_url: eventData.source_url,
action_source: 'website',
user_data: {
em: hash(userData.email),
ph: hash(userData.phone),
fn: hash(userData.firstName),
ln: hash(userData.lastName),
ct: hash(userData.city),
st: hash(userData.state),
zp: hash(userData.zipCode),
country: hash(userData.country),
external_id: hash(userData.externalId),
client_ip_address: userData.ipAddress,
client_user_agent: userData.userAgent,
fbp: userData.fbp, // raw cookie value, not hashed
fbc: userData.fbc, // raw cookie value, not hashed
},
custom_data: eventData.customData || {},
}],
};
const url = `https://graph.facebook.com/v21.0/${PIXEL_ID}/events?access_token=${ACCESS_TOKEN}`;
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});
if (!response.ok) {
const err = await response.json();
throw new Error(`CAPI error: ${JSON.stringify(err)}`);
}
return response.json();
}
// Example: Purchase event
await sendEvent('Purchase', {
source_url: 'https://example.com/checkout/thank-you',
customData: {
value: 99.99,
currency: 'USD',
content_ids: ['SKU-123', 'SKU-456'],
content_type: 'product',
order_id: 'ORDER-789',
num_items: 2,
},
}, {
email: '[email protected]',
phone: '14155551234',
firstName: 'John',
lastName: 'Doe',
ipAddress: '203.0.113.50',
userAgent: 'Mozilla/5.0 ...',
fbp: 'fb.1.1612345678901.1234567890',
fbc: 'fb.1.1612345678901.AbCdEfGhIjKl',
externalId: 'user-12345',
}, 'evt_purchase_abc123');
Python の例
import hashlib, time, uuid, requests
PIXEL_ID = 'YOUR_PIXEL_ID'
ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
def hash_value(value):
if not value:
return None
return hashlib.sha256(str(value).strip().lower().encode('utf-8')).hexdigest()
def send_event(event_name, event_data, user_data, event_id=None):
url = f'https://graph.facebook.com/v21.0/{PIXEL_ID}/events'
payload = {
'data': [{
'event_name': event_name,
'event_time': int(time.time()),
'event_id': event_id or str(uuid.uuid4()),
'event_source_url': event_data.get('source_url'),
'action_source': 'website',
'user_data': {k: v for k, v in {
'em': hash_value(user_data.get('email')),
'ph': hash_value(user_data.get('phone')),
'fn': hash_value(user_data.get('first_name')),
'ln': hash_value(user_data.get('last_name')),
'ct': hash_value(user_data.get('city')),
'st': hash_value(user_data.get('state')),
'zp': hash_value(user_data.get('zip_code')),
'country': hash_value(user_data.get('country')),
'external_id': hash_value(user_data.get('external_id')),
'client_ip_address': user_data.get('ip_address'),
'client_user_agent': user_data.get('user_agent'),
'fbp': user_data.get('fbp'),
'fbc': user_data.get('fbc'),
}.items() if v is not None},
'custom_data': event_data.get('custom_data', {}),
}],
'access_token': ACCESS_TOKEN,
}
response = requests.post(url, json=payload)
response.raise_for_status()
return response.json()
# Example: Purchase event
send_event('Purchase', {
'source_url': 'https://example.com/checkout/thank-you',
'custom_data': {
'value': 99.99,
'currency': 'USD',
'content_ids': ['SKU-123'],
'content_type': 'product',
},
}, {
'email': '[email protected]',
'phone': '14155551234',
'first_name': 'John',
'last_name': 'Doe',
'ip_address': '203.0.113.50',
'user_agent': 'Mozilla/5.0 ...',
'fbp': 'fb.1.1612345678901.1234567890',
'external_id': 'user-12345',
}, event_id='evt_purchase_abc123')
GTM サーバーサイドコンテナ
- GTM サーバーサイドコンテナをデプロイします(Cloud Run、AWS など)
- サーバーコンテナにMeta Conversions API タグを作成します
- 次の項目を設定します:
- Pixel ID と API Access Token
- アクションソース:
website - イベント名: 受信イベントからマッピング
- ユーザーデータ: イベントデータからメールアドレス、電話番号などをマッピング
- イベント ID: 重複排除のため、ブラウザーの Pixel の
eventIDと一致させる必要があります
- 関連する転送済みイベントにトリガーを設定します
主なタグフィールド:
Tag Type: Meta Conversions API
Pixel ID: {{Meta Pixel ID}}
API Access Token: {{Meta CAPI Token}}
Event Name: {{Event Name}}
Action Source: website
User Data:
Email: {{User Email - Hashed}}
Phone: {{User Phone - Hashed}}
IP Address: {{Client IP}} (auto-populated in SS GTM)
User Agent: {{Client User Agent}} (auto-populated)
FBP: {{FBP Cookie}}
FBC: {{FBC Cookie}}
Event Parameters:
Event ID: {{Event ID}} (must match browser Pixel eventID)
Event Source URL: {{Page URL}}
Value: {{Event Value}}
Currency: {{Event Currency}}
パートナー連携
| プラットフォーム | 方法 | 備考 |
|---|---|---|
| Shopify | Meta チャネルアプリを標準で利用 | 重複排除を自動処理。標準的な e コマースイベントに対応 |
| WooCommerce | Facebook for WooCommerce プラグイン | 設定が必要 |
| BigCommerce | Meta 標準連携 | アプリ経由 |
| Magento | Meta Business Extension | サーバーサイドイベント |
イベントの重複排除
Pixel と CAPI を併用すると、同じコンバージョンが 2 回報告される場合があります。Meta は event_id + event_name を使って重複を排除します。
仕組み
- ブラウザーの Pixel が
eventID: "evt_abc123"とPurchaseを送信します - サーバーが
event_id: "evt_abc123"とPurchaseを含む CAPI を送信します - Meta は両方のフィールドで一致を確認し、1 件のコンバージョンとしてカウントします
- どちらか一方の経路でエラーが発生しても(広告ブロッカー、サーバーエラーなど)、もう一方からイベントが届きます
重複排除パターン
// Browser: generate event_id, fire Pixel, send to server
const eventId = crypto.randomUUID();
fbq('track', 'Purchase', {
value: 99.99,
currency: 'USD',
}, { eventID: eventId });
navigator.sendBeacon('/api/meta-capi', JSON.stringify({
event_name: 'Purchase',
event_id: eventId,
custom_data: { value: 99.99, currency: 'USD' },
}));
// Server: forward to CAPI with same event_id
fbp と fbc Cookie
_fbp(Facebook ブラウザー ID):Pixel の初回読み込み時に設定されます。形式:fb.1.{timestamp}.{random}。90 日間保持されます。生の値を送信します(ハッシュ化しません)。
_fbc(Facebook クリック ID):Meta 広告のクリック時に設定されます。形式:fb.1.{timestamp}.{fbclid}。存在しない場合は、URL から fb.1.{timestamp_ms}.{fbclid} の形式で生成します。生の値を送信します(ハッシュ化しません)。
// Extract from cookies server-side
const fbp = req.cookies['_fbp'] || null;
const fbc = req.cookies['_fbc'] || null;
// Construct fbc from fbclid if cookie missing
function constructFbc(fbclid) {
return fbclid ? `fb.1.${Date.now()}.${fbclid}` : null;
}
よくある重複排除の失敗
| 問題 | 修正方法 |
|---|---|
| Pixel と CAPI で event_id が異なる | ブラウザーで生成し、サーバーに渡します |
| Pixel に event_id がない | fbq('track') の第 4 引数として { eventID: id } を追加します |
| CAPI に event_id がない | ペイロードに event_id を含めます |
| event_name の大文字・小文字が異なる | 標準の名前を正確に使用します(purchase ではなく Purchase) |
| CAPI の送信が数時間遅れる | 遅延バッチではなく、数分以内に送信します(重複排除ウィンドウは 48 時間です) |
テストと検証
テストイベントツール
- Events Manager > Your Pixel > Test Events タブ
- Test Event Code をコピーします(例:
TEST12345) - CAPI ペイロードに
test_event_codeを追加します - イベントを送信すると、リアルタイムで表示されます
- 本番環境に移行する前に test_event_code を削除します(テストイベントは広告配信に使用されません)
const payload = {
data: [{ /* event data */ }],
test_event_code: 'TEST12345',
};
イベントマッチ品質ダッシュボード
Events Manager > Data Sources > Your Pixel > Event Match Quality:
- イベントごとの EMQ スコア
- パラメーターの使用頻度の内訳
- 改善の推奨事項
- 時間の経過に伴う傾向
よくあるエラーコード
| コード | メッセージ | 修正方法 |
|---|---|---|
190 | 無効な OAuth アクセストークン | システムユーザートークンを再生成します |
100 | 無効なパラメーター | 必須項目を確認します:event_name、event_time、action_source、user_data |
2804003 | タイムスタンプが古すぎます | event_time は過去 7 日以内である必要があります |
2804004 | 無効な event_time | ミリ秒ではなく、Unix 秒を使用する必要があります |
2804001 | user_data がありません | 顧客情報パラメーターを少なくとも 1 つ含めます |
368 | 一時的にブロックされています | レート制限です。指数バックオフを使用します |
2804002 | 無効な action_source | 次のいずれかを使用します:website、app、phone_call、chat、email、in_store、other |
803 | アクセスが拒否されました | システムユーザーに ads_management 権限が必要です |
集約イベント測定(AEM)
ATT によるトラッキングをオプトアウトした iOS 14.5 以降のユーザーのイベントを測定するための Meta のプロトコルです。
主な情報
- ドメインごとに優先度順で設定できるイベントは 最大 8 件 です
- オプトアウトしたユーザーのデータには 72 時間の遅延 があります
- クリック後 1 日のアトリビューション(標準のクリック後 7 日/ビュー後 1 日と比較)
- オプトアウトによるコンバージョンの推定には 統計モデリング が使用されます
- Business Settings で ドメイン認証 が必要です
推奨イベント優先度(E コマース)
| 優先度 | イベント |
|---|---|
| 1(最高) | Purchase |
| 2 | Subscribe |
| 3 | StartTrial |
| 4 | InitiateCheckout |
| 5 | AddPaymentInfo |
| 6 | AddToCart |
| 7 | CompleteRegistration |
| 8(最低) | ViewContent |
推奨イベント優先度(リード獲得)
| 優先度 | イベント |
|---|---|
| 1(最高) | Purchase |
| 2 | Lead |
| 3 | SubmitApplication |
| 4 | Schedule |
| 5 | CompleteRegistration |
| 6 | Contact |
| 7 | ViewContent |
| 8(最低) | Search |
ドメイン認証
- Business Settings > Brand Safety > Domains
- ドメインを追加し、DNS TXT レコード(推奨)、HTML ファイル、またはメタタグで認証します
- Events Manager > Aggregated Event Measurement で 8 件のイベントを設定します
レポートへの影響
| 指標 | iOS 14.5 以前 | AEM 使用時 |
|---|---|---|
| アトリビューション期間 | クリック後 28 日、ビュー後 7 日 | クリック後 7 日、ビュー後 1 日 |
| レポートの遅延 | リアルタイム | 最大 72 時間 |
| 内訳 | 完全 | 制限あり |
| コンバージョン数 | 正確 | オプトアウトしたユーザー分はモデルによる推定 |
| 最適化イベント | 無制限 | ドメインごとに 8 件 |
対策:
- CAPI を使用して EMQ を最大化します(ATT のオプトアウトによる影響を部分的に相殺します)
- 最も重要な 8 件のイベントに優先順位を付けます
- iOS のコンバージョンが 15〜30%過少報告されることを想定します
- 広範なターゲティング戦略を検討します
Resources
- Meta CAPI Docs: https://developers.facebook.com/docs/marketing-api/conversions-api
- CAPI Setup Guide: https://developers.facebook.com/docs/marketing-api/conversions-api/get-started
- EMQ Best Practices: https://developers.facebook.com/docs/marketing-api/conversions-api/best-practices
- Standard Events Reference: https://developers.facebook.com/docs/meta-pixel/reference
- Full Cogny Docs: https://cogny.com/docs/meta-conversions-api