Soulpapamarketing(ソウルパパマーケティング)のブランディング&マーケティングストーリー。
ピクセルを複数モールで共有するとき広告最適化が汚染される理由
多くのD2Cブランドが本モールの他に、サブモール、体験モール、イベント専用ドメインを併せて運営しています。初期設定で犯しやすい失敗は、同一のMetaピクセルコードをすべてのドメインにそのまま埋める方法です。
ピクセルは正常に動作し、イベントも入ってきます。問題は広告最適化レイヤーにあります。広告セットが「購買最適化」に設定されているとき、MetaアルゴリズムはそのピクセルのすべてのPurchaseイベントを学習シグナルとして使用します。サブモールAの購買者とメインモールBの購買者がまったく異なる商品、異なる価格帯、異なる購買ジャーニーを持つとしても、アルゴリズムの観点からは同じ「購買者」プールとして学習されます。
サブモール専用キャンペーンを運営中であれば、状況はさらに深刻です。広告セットがメインモール購買者パターンで学習しながら、サブモール実際の購買者とは無関係なオーディエンスを見つけていきます。広告費は使われるのにサブモール転換はゼロに近づく構造が作られます。実際にこの状態で運営されたキャンペーンを見ると、ピクセルイベントは数千件流入するのに広告帰属転換は1ケタ数の場合が多いです。
fbclidクロスドメイン喪失 — アトリビューションが切れる正確なポイント
2番目の問題はfbclid(Facebook Click ID)です。ユーザーがMeta広告をクリックすると、URLにfbclidパラメーターがつきます。この値がピクセルを通じてMeta システムに渡されることで、クリックと購入が正確にマッチします。アトリビューションの核となる接続です。
問題はドメインが変わるときに発生します。メインモールで商品ページを見た後、サブモールドメインに移動する瞬間、fbclidパラメーターはURLから消えます。ブラウザが外部ドメインに移動するとき、クエリストリングがそのまま渡されないためです。この時点からサブモールでの購入は該当広告クリックと接続されません。
広告マネージャーで「購入0件」と表示されても、実際にはその広告を通じてユーザーが入ってきてサブモールで決済を完了している可能性があります。fbclidが喪失されてトラッキングが切れたために見えないだけです。この状態で広告成果を判断すると、よく機能しているキャンペーンを止める失敗を繰り返すことになります。
解決1 — fbclidクロスドメイン連動コード
fbclidクロスドメイン問題は2つの方法で解決します。
方法A:リンクにfbclidを明示的に渡す
ドメイン間を移動するリンクを生成するとき、現在のURLのfbclid値を抽出して対象URLに挿入します。
// 現在のURLからfbclidを抽出し、クロスドメインリンクに挿入
function appendFbclid(targetUrl) {
const urlParams = new URLSearchParams(window.location.search);
const fbclid = urlParams.get('fbclid');
if (!fbclid) return targetUrl;
const url = new URL(targetUrl);
url.searchParams.set('fbclid', fbclid);
return url.toString();
}
// 適用例 — サブモールに移動するすべてのリンクに適用
document.querySelectorAll('a[href*="subdomain.co.kr"]').forEach(link => {
link.href = appendFbclid(link.href);
});
方法B:MetaピクセルcrossDomain設定
ピクセル初期化時にcrossDomainオプションを有効にします。2つのドメインをMetaピクセルが同一セッションと認識させます。
fbq('init', 'PIXEL_ID', {}, {
crossDomain: {
enabled: true,
domains: ['maindomain.co.kr', 'subdomain.co.kr']
}
});
2つの方法を両方適用するのが最も安定しています。fbclid明示的渡しでブラウザレベルでパラメーターを保持し、crossDomain設定でピクセルがセッション連続性を保持します。
解決2 — Meta カスタムコンバージョンでモール別Purchase データを分離する方法
fbclid連動でトラッキング接続は解決しました。しかし広告セット最適化汚染問題は依然として残っています。ピクセル全体のPurchaseを最適化イベントとして使う限り、アルゴリズムは2つのモールの購買者を区別できません。
カスタムコンバージョン(Custom Conversion)がこの問題の解法です。カスタムコンバージョンはピクセルイベントにURL条件またはパラメーター条件を追加して特定の転換のみを独立集計する機能です。サブモールドメインの購入完了URLで発生したPurchaseイベントのみを別個カウントするカスタムコンバージョンを作成すればよいのです。
このようにして作成されたカスタムコンバージョンを広告セットの最適化イベントとして指定すれば、アルゴリズムはサブモール購買者パターンのみを学習します。メインモール購買者が数千件ピクセルに流れ込んでも、サブモールキャンペーン最適化には影響を与えません。
Meta広告マネージャーでカスタムコンバージョンを作成するパス:
イベントマネージャー → カスタムコンバージョン → カスタムコンバージョンを作成 → イベント:Purchase → URL条件:サブモールドメイン含む
カスタムコンバージョンが作成されても、すぐには有効化されません。条件を満たすPurchaseイベントが最小1件以上受信される必要があり、その後、広告セット最適化イベントとして選択できるようになります。データが十分に蓄積してから(週50件以上)広告セット最適化を切り替えるのが学習安定性の観点から有利です。
解決3 — CAPI サーバーサイド連動でピクセル欠落分を補強する方法
ブラウザピクセルだけではデータが欠落します。iOS 14+ プライバシーポリシー、ブラウザクッキーブロック、広告ブロック拡張機能などにより、実際の購入の20~40%がピクセルに捕捉されないのが現実です。
Conversions API(CAPI)はサーバーからMeta に直接コンバージョンイベントを送信する方法です。ブラウザを迂回するため、広告ブロックやクッキー問題の影響を受けません。
import requests
import hashlib
def send_purchase_to_capi(pixel_id, access_token, event_data):
url = f"https://graph.facebook.com/v19.0/{pixel_id}/events"
payload = {
"data": [{
"event_name": "Purchase",
"event_time": event_data['timestamp'],
"event_source_url": event_data['url'],
"action_source": "website",
"event_id": event_data['order_id'], # ピクセル重複除去用
"user_data": {
"em": hashlib.sha256(event_data['email'].lower().encode()).hexdigest(),
"ph": hashlib.sha256(event_data['phone'].encode()).hexdigest(),
"client_ip_address": event_data['ip'],
"client_user_agent": event_data['user_agent'],
"fbc": event_data.get('fbc_cookie'), # _fbpクッキー値 (fbclid基盤)
"fbp": event_data.get('fbp_cookie'), # _fbpクッキー値
},
"custom_data": {
"value": event_data['amount'],
"currency": "KRW",
"order_id": event_data['order_id'],
}
}],
"access_token": access_token
}
return requests.post(url, json=payload).json()
サブモールが定期購読商品を販売する場合、CAPIの重要度はさらに高まります。定期決済はPG決済でサーバー対サーバーで発生するため、ユーザーのブラウザがない状態です。ピクセルではこのイベントを絶対に捕捉できません。CAPIのみが定期購読決済をMeta広告システムに渡すことができる唯一のルートです。
ピクセルとCAPIを同時に運営するとき、必ずevent_idを同一の注文番号に設定する必要があります。Metaが両側から同一のevent_idを受け取れば、重複集計を自動的に除去します。
完成したデータ構造 — 1ピクセル + Nモール カスタムコンバージョン + CAPI シナジー
3つの解決策を組み合わせると、以下の構造が作られます。
ブランドピクセル (1個)
├── メインモール Purchase → ピクセル全体集計 (ブランドROAS監視用)
├── サブモールA Purchase → カスタムコンバージョンA (サブモールA キャンペーン最適化イベント)
└── サブモールB Purchase → カスタムコンバージョンB (サブモールB キャンペーン最適化イベント)
サーバーサイド CAPI
├── メインモール 決済完了 → CAPI送信 (event_idでピクセル重複除去)
└── サブモール 定期決済 → CAPI送信 (ブラウザなし決済 = CAPI必須)
fbclid クロスドメイン
└── メインモール → サブモール移動時 fbclid維持 → アトリビューション接続
この構造の核は収集は統合、分析は分離です。
ブランドピクセル1つがすべてのモールのデータを収集します。この統合データはブランド全体ファネル分析、Lookalike オーディエンスシード構築、リターゲティングに活用します。同時にカスタムコンバージョンがモール別購入を独立集計するため、キャンペーン別最適化イベントを正確に指定できます。
結果的に、ピクセルを複数に分割しなくても、各モールのキャンペーンがそのモール購買者パターンで独立学習します。CAPIがブラウザ欠落分を補強しながら、アルゴリズム学習シグナルの品質が上がります。複数モールを運営するほど、ブランドピクセルに蓄積するオーディエンスデータが増え、これが各サブモール新規キャンペーンのLookalike基盤として還元されます。マルチモール構造が単なるチャネル分離ではなく、データ資産拡張として機能する構造です。
メインモールとサブモールは無関係ではない — 統合と分離が同時に必要な理由
1つの誤解を指摘しておく必要があります。カスタムコンバージョンでモール別データを分離するというのは、2つのモールを完全に独立した別事業として運営することを意味するのではありません。むしろその逆です。
メインモールとサブモールは同じブランドの世界観の中にあります。メインモールを通じてブランドに接したユーザーがサブモールの専門商品に移動する場合もありますし、サブモールで最初に購入した新規顧客がメインモールの別のラインアップに買い増しする経路も存在します。2つのモールの購買者データはまったく異なる集団ではなく、1つのブランドを異なるタッチポイントで経験する同じ顧客層のスペクトラムです。
まさにこの地点がマルチモール構造の本当の価値です。ブランドピクセル1つに2つのモールのデータが統合収集されるため、メインモール訪問者をサブモールキャンペーンのLookalike シードとして使用できます。サブモール購買者プールをメインモールリターゲティングオーディエンスとして活用することも可能です。ピクセルが分離されていれば不可能な交差利用です。
しかし統合収集だけでは不十分です。広告セット最適化イベントが分離されなければ、アルゴリズムが2つのモールの購買シグナルを混ぜて学習し、各キャンペーンがおかしなオーディエンスを見つけていきます。fbclidクロスドメインが接続されなければ、2つのモール間の実際の移動経路がアトリビューションから消えます。統合されたデータがあっても、分析レイヤーでモール別に分離されなければ全体がノイズと化します。
ここでfbclidクロスドメイン連動とカスタムコンバージョンが一緒に機能するとき、有機的シナジーが発生します。 メインモールから始まった広告クリックのfbclidがサブモール転換まで続くと、アルゴリズムはメインモール露出からサブモール購入までの全体のジャーニーを1つの転換経路として学習します。カスタムコンバージョンがサブモール購入のみを独立集計しながら、この学習シグナルは正確にサブモール購買者パターンに合わせて最適化されます。CAPIがブラウザ欠落分を補強しながら、このシグナルの完結性が上がります。
結果的に、メインモールのオーディエンス資産がサブモールキャンペーンの学習基盤となり、サブモールの購買シグナルがメインモール全体ピクセルの品質を高める循環構造が作られます。ピクセルを分割せず1つで維持しながらカスタムコンバージョンで分離分析することが単なる技術設定ではない理由です。統合と分離を同時に実現することがマルチモールデータ構造の核であり、それが爆発的な広告シナジーの基盤です。
よくある質問
Meta ピクセル1つで複数ショッピングモールを運営できますか?
可能です。ただし、ピクセル全体のPurchaseイベントをそのまま広告セット最適化イベントとして使用すれば、複数モールの購買者データが混ざってアルゴリズム学習が汚染されます。モール別カスタムコンバージョンを作成し、キャンペーン別最適化イベントを分離指定することで、各キャンペーンが正しい購買者パターンで学習します。
fbclidがドメイン移動時に消える理由は何ですか?
ブラウザが外部ドメインに移動するとき、URLクエリストリングを自動的に渡さないためです。fbclidパラメーターが喪失すれば、広告クリックと購入のアトリビューション接続が切れ、実際に発生した購入が広告マネージャーで0件と表示される可能性があります。JavaScriptでfbclidを抽出して移動リンクに挿入するか、ピクセルcrossDomain設定で解決します。
CAPIをピクセルと一緒に使う必要があるのはなぜですか?
iOS 14+ ポリシーとクッキーブロックにより、ブラウザピクセルだけでは実際の購入の20~40%が欠落します。CAPIはサーバーからMeta に直接イベントを送信するため、ブラウザ環境の影響を受けません。特に定期購読のようにブラウザなしでサーバーで決済が起こる場合、CAPI なしでは転換トラッキング自体が不可能です。ピクセルとCAPIを同時に運営するとき、event_idを同一の注文番号に設定して重複集計を防ぐ必要があります。
カスタムコンバージョンは作成直後に広告セット最適化イベントとして使用できますか?
いいえ。カスタムコンバージョン作成後、該当条件を満たすPurchaseイベントが最小1件以上受信される必要があり、活性化されます。活性化後に初めて広告セット最適化イベントとして選択できます。データが十分に蓄積してから(週50件以上)広告セット最適化イベントを切り替えるのが学習安定性の観点から有利です。切り替え直後に学習初期化期間(学習フェーズ)が発生するため、タイミングを戦略的に選択する必要があります。
関連記事
この記事は韓国のデジタルマーケティングエージェンシーソウルパパマーケティングがお届けします。
Original Korean article: https://soulpapa.co.kr/2026/06/05/meta-pixel-multi-mall-custom-conversion-capi/
