tiktok-ads-integration について
複数のストアプラットフォームで TikTok Ads を設定・運用するための、Eコマース担当者向けスキルです。Pixel と Events API の計測、カタログ同期、キャンペーン設定、Spark Ads、効果確認を扱います。
主な機能
- 01Pixel と Events API の設定
- 02ストア連携の手順
- 03商品カタログの同期
- 04キャンペーンと Spark Ads の設定
- 05効果測定とトラブル対応
活用シーン
- 01Eコマースストアでの TikTok Ads 開始
- 02Pixel の計測不足を Events API で補完
- 03ショッピング広告と商品カタログの設定
- 04Spark Ads によるオーガニック投稿の宣伝
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill tiktok-ads-integrationインストール後、Claude Code で/tiktok-ads-integrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/campaign-structure-and-creative-strategy/criteria.jsontask.mdevals/catalog-feed-generation/criteria.jsontask.mdevals/server-side-events-api-with-deduplicatio/criteria.jsontask.md詳細
TikTok Ads Integration
概要
TikTokは、特にファッション、美容、ホーム用品、消費財の分野で、Eコマースにおける主要な発見チャネルです。信頼性の高いアトリビューションには、ブラウザー上で動作するTikTok PixelとサーバーサイドのEvents API(EAPI)を組み合わせる必要があります。これはMetaのCAPIのアプローチと似ています。Shopify、WooCommerce、BigCommerceでは、公式のTikTok連携機能によってPixelとEAPIの両方が自動的にインストールされます。カスタム実装が必要なのは、Custom/Headlessのセクションのみです。
このスキルを使用するタイミング
- TikTokを新たな有料顧客獲得チャネルとして開始するとき
- TikTok Pixelでコンバージョンが過少に計測されており、Events APIが必要なとき
- Product Shopping AdsまたはVideo Shopping Adsを設定するとき
- オーガニックなクリエイターコンテンツをSpark Adsとして宣伝するとき
- Dynamic Showcase Ads用に商品カタログを同期するとき
基本手順
ステップ 1:プラットフォームをTikTokに接続する
| プラットフォーム | 連携方法 | Pixel + EAPI | カタログ同期 |
|---|---|---|---|
| Shopify | TikTok for Shopify(公式アプリ) | はい(組み込み) | はい(自動) |
| WooCommerce | TikTok for WooCommerceプラグイン | はい(組み込み) | はい(自動) |
| BigCommerce | Channel ManagerのTikTokチャネル | はい(組み込み) | はい(自動) |
| Custom / Headless | TikTok Pixel JS + Events API REST | 手動実装 | フィードを手動で生成 |
ステップ 2:TikTok Adsを設定する
Shopify
- Shopify Admin → Sales Channels → + → TikTokに移動します
- TikTok for Shopifyをインストールし、TikTok BusinessアカウントとAdアカウントを接続します
- Pixel & EventsでMaximum Data Sharingを選択します。これにより、ブラウザー上のPixelとともにサーバーサイドのEvents APIが有効になります
- Shopifyによって、次の処理が自動的に行われます:
- すべてのページにTikTok Pixelをインストールする
- ViewContent、AddToCart、InitiateCheckout、CompletePaymentイベントを送信する
- 同じイベントをShopifyのサーバーからEAPI経由で送信する
- 商品カタログをTikTok Catalog Managerに同期し、Shopping Adsで利用できるようにする
- TikTok Ads Manager → Assets → Eventsに移動し、Pixelのイベント品質スコアを確認します。7/10以上を目指してください
- TikTok Business Center → Catalogsでカタログの同期状況を確認します
WooCommerce
- WordPressプラグインディレクトリからTikTok for WooCommerce(TikTok公式プラグイン)をインストールします
- WooCommerce → TikTok → Connectに移動し、TikTok Businessアカウントでサインインします
- データ共有設定でEnhanced Matching(EAPI)を有効にします
- プラグインによって、WooCommerceの商品カタログがTikTok Catalog Managerに自動的に同期されます
- **TikTok Events Manager → Data Sources → [Your Pixel]**でイベントを確認します
BigCommerce
- BigCommerce Admin → Channel Manager → Add a Channel → TikTokに移動します
- TikTok BusinessアカウントとAdアカウントを接続します
- 設定中にサーバーサイドのイベントトラッキングを有効にします
- BigCommerceによって、商品カタログがTikTokに自動的に同期されます
- Channel Manager → TikTok → Productsで商品の同期状況を確認します
Custom / Headless
ヘッドレスストアでは、ブラウザー用PixelとサーバーサイドのEvents APIの両方をインストールします:
ブラウザー用Pixel(すべてのページの<head>に追加):
ttq.load('YOUR_PIXEL_ID');
ttq.page();
// Product page
ttq.track('ViewContent', {
content_id: product.sku,
content_type: 'product',
content_name: product.name,
value: product.price,
currency: 'USD',
});
// Purchase — pass event_id for deduplication with Events API
const purchaseEventId = `purchase-${order.id}`;
ttq.track('CompletePayment', {
content_id: order.lineItems.map(i => i.sku).join(','),
value: order.subtotal,
currency: order.currencyCode,
order_id: order.id,
}, { event_id: purchaseEventId });
サーバーサイドEvents API(注文Webhookから送信):
async function trackTikTokPurchase(order: Order, req: Request) {
const eventId = `purchase-${order.id}`; // MUST match Pixel event_id for deduplication
const { createHash } = await import('crypto');
const sha256 = (val: string) => createHash('sha256').update(val.toLowerCase().trim()).digest('hex');
await fetch(
`https://business-api.tiktok.com/open_api/v1.3/pixel/track/?business_id=${process.env.TIKTOK_BUSINESS_ID}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Access-Token': process.env.TIKTOK_ACCESS_TOKEN!,
},
body: JSON.stringify({
data: [{
pixel_code: process.env.TIKTOK_PIXEL_ID,
event: 'CompletePayment',
event_id: eventId,
event_time: Math.floor(Date.now() / 1000),
user: {
email: sha256(order.customerEmail),
phone_number: sha256(order.customerPhone?.replace(/\D/g, '') ?? ''),
ip: req.ip,
user_agent: req.headers['user-agent'],
ttclid: req.cookies['ttclid'], // TikTok click ID — strongest attribution signal
},
properties: {
value: order.subtotal,
currency: order.currencyCode,
contents: order.lineItems.map(i => ({ content_id: i.sku, content_type: 'product' })),
order_id: order.id,
},
page: { url: `${process.env.STORE_URL}/checkout/thank-you` },
}],
}),
}
);
}
ステップ 3:TikTok キャンペーンの構成を作成する
TikTok Ads Managerで、3 層のキャンペーン構成を作成します。
キャンペーン 1:新規ユーザー獲得 — Video Shopping Ads
- 目的:商品販売
- 広告グループのオーディエンス:幅広いオーディエンス(対象国、18~45 歳、興味関心ターゲティングなし)
- 入札:最小コスト(最初の 2 週間はアルゴリズムに学習させます)
- 広告:Video Shopping Ads — TikTok がカタログから商品動画を自動生成するか、UGC 風の縦型動画をアップロードします
- 予算:TikTok 予算全体の 60%
キャンペーン 2:リターゲティング — エンゲージしたユーザー
- 目的:コンバージョン
- 広告グループ 1:過去 7 日以内に商品を閲覧したが、カートに追加していないユーザー
- カスタムオーディエンス:ウェブサイトイベント → ViewContent、過去 7 日間
- 広告グループ 2:カートに追加したが購入していないユーザー(過去 3 日間)
- カスタムオーディエンス:AddToCart、過去 3 日間。CompletePayment を除外
- 広告:閲覧者が関心を示した特定の商品を表示するダイナミック商品広告
- 予算:TikTok 予算全体の 30%
キャンペーン 3:Spark Ads — オーガニックコンテンツをブースト
- 目的:コンバージョン
- Spark Ads を使って、成果の高いオーガニックの TikTok 投稿や、許可を得たクリエイターの投稿をブーストします
- いいねやコメントなどのソーシャルプルーフが引き継がれるため、Spark Ads はほとんどの洗練されたブランドコンテンツを上回ります
- 予算:TikTok 予算全体の 10%
ステップ 4:Spark Ads を設定する(オーガニックコンテンツのブースト)
- TikTok Ads Manager で、Assets → Creative → Spark Ads に移動します
- 自分のオーガニック投稿をブーストするには、投稿 URL を検索して認証をリクエストします
- クリエイターの投稿をブーストするには、TikTok の認証プロセスを通じてクリエイターから Spark Ad の認証を受ける必要があります。クリエイターは Creator Tools → TikTok for Business に移動し、認証コードを生成します
- 認証コードの有効期間は 30 日間です。ワークフローに更新の予定を組み込んでください
ステップ 5:TikTok Ads のパフォーマンスを測定する
| 指標 | 目標 | 確認場所 |
|---|---|---|
| Pixel イベント品質スコア | 7+/10 | TikTok Events Manager → Pixel |
| 動画再生率(2 秒) | > 25% | Ads Manager → Campaign Analytics |
| クリック率 | > 1% | Ads Manager |
| 購入あたりのコスト | 目標 CPA | Ads Manager → Conversions |
| ROAS | 幅広いオーディエンスで > 2×/リターゲティングで > 4× | Ads Manager → Revenue |
ベストプラクティス
- Shopify/WooCommerce の TikTok 連携設定で最大データ共有を使用します。これにより EAPI が有効になり、アトリビューションの品質に最も重要な単一の設定となります
- すべての EAPI イベントで
ttclidを渡します。ランディングページの URL(?ttclid=xxx)から TikTok クリック ID を取得して Cookie に保存します。iOS 14 以降では、これが最も強力なアトリビューションシグナルです - 9:16 の縦型動画のみを使用します。横型または正方形の広告は、TikTok のフルスクリーンフィードではパフォーマンスが大幅に低下します
- クリエイティブを 3~4 週間ごとに更新します。TikTok のオーディエンスは Meta より早く広告に飽きるため、クリエイティブを継続的に制作する体制を整えます
- 最初は最小コスト入札を使用します。コスト上限入札に必要なコンバージョンデータが十分に集まるまでは、最小コスト入札でアルゴリズムに必要な購入履歴を蓄積します
- 新規ユーザー獲得キャンペーンから直近の購入者(30 日間)を除外します。すべての新規ユーザー獲得広告セットで、顧客リストをカスタムオーディエンスの除外対象としてアップロードします
よくある落とし穴
| 問題 | 解決策 |
|---|---|
| Events Manager で購入が二重計上される | 同じイベントについて、Pixel と Events API の event_id が完全に一致していることを確認します |
| カタログフィードが拒否される | price の形式が "XX.XX USD" であることを確認します(価格と通貨コードの間にスペースが必要です) |
| Events Manager でマッチ率が低い | アトリビューションを最大化するため、ハッシュ化したメールアドレスに加えて ttclid、ip、user_agent を送信します |
| CPM が高いのにクリック率が低い | 動画の最初の 2 秒で視覚的に惹きつける必要があります。ロゴカードや、商品をゆっくり見せる導入は避けます |
| Spark Ad の認証が期限切れになった | 30 日ごとに新しい認証コードをリクエストし、クリエイターの認証が必要なコンテンツについてカレンダーにリマインダーを設定します |
関連スキル
- @meta-ads-integration
- @tiktok-shop-integration
- @google-ads-ecommerce
- @ugc-campaign-management
- @marketing-attribution-dashboard