Skip to main content

Conversion API の設定

前提条件

Ads API アクセス - 新規アプリケーション

ステップ 1: 開発者アカウント
  • Developer Account を申請する際は、即時承認を受けられるよう、いずれかのサブスクリプションプランにお申し込みください。 
  • 注意: ベストプラクティスとして、公式な企業の X ハンドルを使用して開発者アカウントを作成し、Ads API アクセスを申請することを強く推奨します。開発者アカウントが個人の開発者ハンドルに紐づいている場合、必要になってもその認証情報を移管する方法はありません。継続的な管理のためには企業アカウント配下で管理し、必要に応じて Multi-user login を利用するのが最善です。そうでない場合でも最低限、アカウントは初期設定のままではない状態 (ヘッダー画像、アバター、自己紹介文、自己紹介 URL を設定) にし、2 要素認証を有効にしておく必要があります。
ステップ 2: Ads API アプリケーション
  • Ads API アプリケーション用に、正しい App ID を用意しておいてください。App ID は Developer Console の「Projects & Apps」内で確認できます。例: 16489123
  • Ads API へのアクセスをリクエストするには、X の担当者にご連絡ください。

Ads API アクセス - 既存のアプリケーション

  • すでに Ads API をアクティブに利用しているアプリケーションがある場合、そのアプリケーションおよび既存のアクセストークンを Conversion API でも利用できます。

アクセス・トークン

  • Ads API アプリケーションを所有しているユーザーハンドル向けの User Access Token は、開発者コンソールから直接生成および取得できます。これは、自分自身の X ハンドルで使用することを想定しているため、「personal access token (パーソナルアクセス・トークン) 」と呼ばれます。認証および開発者コンソールの概要についてはこちらをご覧ください。
  • Ads API アプリケーションを所有しているハンドル以外のユーザーハンドル向けの User Access Token は、3-legged OAuth フローで生成する必要があります。3-legged OAuth で Access Token を生成する方法には、次のものがあります。
  • Conversion API で使用するユーザートークンはすべて、AD_MANAGER または ACCOUNT_ADMIN のアクセスレベルを持つユーザーのものである必要があります。これは authenticated_user_access エンドポイントで確認できます。
  • 注: 上記の手順で作成されたトークン自体は、利用のためであれば AD_MANAGER または ACCOUNT_ADMIN のアクセスレベルを持たないユーザーと共有することができます。

手順

Conversion API イベントの作成

Conversion API を利用するには、Ads Manager で新しいコンバージョンイベントを作成するか、すでに作成して X Pixel で使用しているコンバージョンイベントを利用する必要があります。Pixel と Conversion API のイベント間で重複排除 (デデュープ) を行いたい場合は、Pixel 用に作成した既存のイベントを使用する必要があります。 
オプション 1: Ads Manager で既存のコンバージョンイベントを使用する
すでに X ピクセルで使用している既存のイベントを利用したい場合は、そのイベントを引き続き利用でき、そのイベントから Event ID を取得する必要があります。同じイベントに対して X ピクセルと Conversion API の両方を使用する場合は、同一イベントについて X ピクセルと Conversion API 間のイベントを重複排除するため、X ピクセルのコードスニペットと Conversion API リクエストの両方で、必ず同じ重複排除キーを (conversion_id として) 使用してください。詳細については、「d. イベントのテストと重複排除」セクションを参照してください。 
オプション 2: Ads Manager で新しいコンバージョンイベントを作成する方法:
イベントを作成する前に、Events Manager で Event Source を作成しておくことが重要です。アカウントに Event Source (X Pixel) が追加されているか確認するには、Events Manager に移動し、左側のメニューに X Pixel が表示されているか確認してください。  まだ Event Source が追加されていない場合は、以下の手順に従って Event Source を作成してください。
  1. ads.x.com にアクセスします。
  2. 画面左上の Tools セクションを開き、Events Manager をクリックします。
  3. 画面右上の Add event source を選択します。左側のサイドバーにまだ X Pixel の Event Source がない場合は、ここから Event Source を追加します。
    1. X Pixel Event Source の ID が Pixel ID です。
これで Event Source と Pixel ID が用意できました。次に、トラッキングしたいコンバージョンイベント用に、その Event Source 内にイベントを作成する必要があります。
  1. X Pixel Event Source 内で、右側の Add events を選択します。
  2. Conversion API でのインストールを選択します。
  3. このイベントの Pixel IDEvent ID が表示されます。これらは API で使用されます。
    1. このイベントの ID が Event ID です。
  4. Save をクリックすると、コンバージョンイベントが作成され、すぐに利用できる状態になります。

コンバージョンイベント用識別子の準備

現在、Click ID (twclid) 、メールアドレス、電話番号など、少なくとも 1 つの識別子を渡す必要があります。IP アドレスまたはユーザーエージェントを使用する場合は、コンバージョンを適切にマッチングするために、2 つ目の識別子も必ず送信してください。 より多くの識別子を渡すことで、コンバージョンマッチング率が向上します。

1. X Click ID 識別子を準備する

コンバージョンリクエストには常に Click ID を含めることを推奨します。 Click ID は、ユーザーが遷移してきた後の遷移先サイトで、クエリ文字列パラメーター twclid が利用可能な場合に、その値から抽出して取得する必要があります。  基本的な JavaScript コード例:
次のことを推奨します。 
  1. URL のクエリパラメータに twclid の値が存在する場合は、必ずそれをパースする。
  2. 関連するフォームフィールドやコンバージョンイベント情報と併せて、そのデータを保存する。
Click ID をコンバージョンイベントやワークフロー情報と紐づけることで、バッチ処理、複数のウェブサイトのナビゲーションフローに基づいてコンバージョンイベントを分析・作成するアルゴリズム、大量アップロードといったユースケースが可能になります。 Event Source URL は URL エンコード された形式で指定する必要があり、イベントをトリガーしたウェブページを表します。

2. メール識別子を準備する

顧客マッチング用としてサポートされているフィールドは送信できますが、正規化したうえで、必要に応じてプライバシー保護のためにハッシュ化する必要があります。 この情報は、ソルトなしで SHA256 を使用してハッシュ化しなければなりません。  たとえば、メールアドレス test@x.com の場合、次のようなハッシュ形式で送信する必要があります: d360d510a224510f373931ce2d6215a799f5a9c1cef221b0149b6b6b50cced62。

3. 電話番号識別子の準備

電話番号は E164 Standard に準拠した形式で指定し、情報はソルトなしの SHA256 でハッシュする必要があります。  たとえば、米国の電話番号 +11234567890 の場合、次のようなハッシュ値として送信する必要があります: 1fa6b8d986d9b9cd01bf36951815158bbde9f520c0567c835dfe34783d0a4231。

4. IP アドレス識別子を準備する

IP アドレスは、別の識別子 (twclid、メールアドレス、電話番号、またはユーザーエージェント) と組み合わせて送信する必要があります。この識別子についてはハッシュ化は不要です。 この値は、4 つの数字をピリオドで区切ったドット付き 10 進表記で記述されます。たとえば、ユーザーの IP アドレスは 8.25.197.25 のように表記されます。

5. User Agent 識別子を準備する

User Agent は、別の識別子 (twclid、メールアドレス、電話番号、または IP アドレス) と組み合わせて送信する必要があります。この識別子についてハッシュ化は不要です。 この識別子により、サーバーはリクエストを送信しているユーザーエージェントのアプリケーション、オペレーティングシステム、ベンダー、およびバージョンを特定できます。たとえば、この値は Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 のように送信できます。

コンバージョンイベントリクエストの作成

POST: version/measurement/conversions/:pixel_id 特定の広告アカウントに対してコンバージョンイベントを送信します。レスポンスコードが成功 (HTTP 200 OK) であることを必ず確認してください。エラーコードが返された場合に備え、リトライ機構と基本的なログ出力を用意しておくことを推奨します。 エンドポイントのURLおよびPOSTボディパラメータの詳細については、APIリファレンスセクションを参照してください。 

リクエスト例 (読みやすくするために整形済み)

レスポンス例

レート制限

レート制限は、15分ごとにアカウントあたり最大 60,000 件のイベントです。 このリクエスト呼び出し以外にも、サーバー側コードで次のようなロジックを実装する必要がある場合があります:
  1. 各イベントごとに正しいコンバージョンデータを送信できるようにするための、ユーザーアクションのインストルメンテーション (ログ記録など)
  2. 関連するプライバシー選択を行ったユーザーのコンバージョンイベントを除外するために必要なロジック
    例: 広告主のウェブサイト上で、トラッキングや個人情報の販売をオプトアウトしている場合
  3. イベントを取得してコンバージョンを送信するための、イベントトリガーおよびページとの連携

イベントのテストと重複排除

イベントのテスト

イベントでコンバージョンイベントが正常に受信されると、12~24時間以内に、Ads Manager のコンバージョントラッキングページ上で「Single event web tag」のステータスが TRACKING と表示されるようになります。Conversion API 経由でコンバージョンを送信しても、配信中のキャンペーンには影響しません。 また、タグ ID ごとのコンバージョンイベントの分析結果は、次の方法で確認できます。

Pixel と Conversion API 間の重複

Pixel と Conversion API リクエスト間でコンバージョンの重複排除を行いたい場合は、重複排除キーとして conversion_id を使用できます。重複排除はイベントレベルでのみ行われます。言い換えると、Pixel と CAPI 間で重複排除を行うには、同じ conversion_id を使用するだけでなく、Pixel 側と CAPI 側の両方のリクエストで同一のイベントを使用する必要があります。重複排除が行われるのは、48 時間以内に受信したイベントに対してのみです。

コンバージョントラッキング (概要)

概要

コンバージョン計測を使用すると、X 上の広告を閲覧・エンゲージした後に、X ユーザーが望ましいアクションを実行した数を測定できます。どのキャンペーンがサイト訪問、サインアップ、購入といったアクションを促しているかを測定できるようになります。これにより、広告主は X 外での計測機能を通じて、ダイレクトレスポンス広告のパフォーマンスを把握し、費用対効果の高い形で顧客を獲得できるようになります。 コンバージョンタグを利用することで、広告主はユーザーのコンバージョンを計測し、それを X 上の広告キャンペーンに紐付けることができます。これにより、広告主はキャンペーンを最適化し、目標とする顧客獲得単価 (CPA) を達成するために必要な可視性を得られます。 コンバージョン計測を用いて広告主が測定できるウェブサイト上のアクションには、さまざまな種類があります。広告キャンペーンによって促したいアクションに応じて、1 つまたは複数を選択できます。
  • サイト訪問: ユーザーが広告主のサイト上のランディングページを訪問する
  • 購入: ユーザーが広告主のサイト上で商品またはサービスの購入を完了する
  • ダウンロード: ユーザーが広告主のサイトから、ホワイトペーパーやソフトウェアパッケージなどのファイルをダウンロードする
  • サインアップ: ユーザーが広告主のサービス、ニュースレター、またはメール配信に登録する
  • カスタム: 上記のいずれのカテゴリにも当てはまらない独自アクションを対象とする汎用カテゴリ
X のコンバージョン計測により、広告主はコンバージョンアトリビューションの全体像を把握できます。ユニークなクリック URL とサードパーティのトラッキングタグを組み合わせた手法など、X 独自のコンバージョン計測機能の代わりにクライアントが利用していた可能性のあるサードパーティ計測システムと比較して、X のコンバージョンタグは、ツイートの詳細表示、リツイート、「いいね」、返信、フォロー、さらにはインプレッションといった中・上位ファネルのエンゲージメントに起因するコンバージョンまで計測できるようにします。

FAQ

まず広告主は、X から提供されるコードスニペットであるコンバージョンタグを作成し、自社サイトに設置します。タグは、ユーザーが指定されたアクションを完了した際にコンバージョンを計測できる状態になります。その後、ユーザーは X クライアント上で広告主の広告を目にし、広告主のウェブサイトへ誘導され、タグを設置したアクションを行います。ユーザーが、タグ設定時に広告主が指定したアトリビューションウィンドウ内にそのアクションを完了した場合、タグはそのユーザーが以前に X 広告とインタラクションしていたことを認識します。タグは「発火」して、コンバージョンを発生させた広告にコンバージョンをひも付けるための通知を X のサーバーに送信します。
いいえ、現在の製品では特定のコンバージョンタグを特定のキャンペーンに紐づける構成にはなっていません。代わりに、一度タグを設定すると、システムがどの広告が特定のタグでコンバージョンを生んだかを自動的に追跡します。
デフォルトのポストビュー・アトリビューションウィンドウ: 1 日間デフォルトのポストエンゲージメント・アトリビューションウィンドウ: 14 日間これらのデフォルト値は、コンバージョンタグの設定時やタグ作成後いつでも変更できます。ポストエンゲージメント・アトリビューションウィンドウの選択肢は 1、7、14、30、60、90 日です。ポストビュー・アトリビューションウィンドウの選択肢は「なし」、1、7、14、30、60、90 日です。
各クライアントの目標や状況、戦略はそれぞれ異なりますが、コンバージョントラッキングのアルファ版またはベータ版に参加したクライアントで効果があったアイデアをいくつかご紹介します。クリエイティブ:
  • オファー: 行動喚起への関心を高めるために、プロモツイートに割引、プロモーション、送料無料などのオファーを組み合わせる
  • 懸賞やコンテスト: 特に認知度の高いブランドでは、懸賞やコンテストがコンバージョンを促進
  • ツイート文言のテスト: 全て大文字と小文字の比較テスト (FREE と free、NOW と now など)
  • 期限の設定: すぐに行動してもらうために期限を設ける (「12 月 12 日まで!」など)
  • 魅力的な写真の追加: 視覚的に魅力的な写真をツイートクリエイティブに追加することがコンバージョン促進に有効かどうかをテストする価値があります。結果はクライアントの提供内容によって異なる場合があります。
ターゲティング:
  • @handle ターゲティングおよびインタレストカテゴリターゲティング: ツイート文言と @handle をツイートの想定オーディエンスに高い精度で合わせることでコンバージョンが増加
  • ニッチだがボリュームの多いキーワードの活用: コンサート分野では、アーティスト/ミュージシャン (例: 名前) に関連するキーワードの使用が有効であることがわかりました。
  • Tailored audiences (テイラードオーディエンス) : TA Web とコンバージョントラッキングを併用したクライアントは、他のターゲティングを使用した対照グループよりも低い CPA を達成しました。
キャンペーンのセグメンテーションが細かければ細かいほど、コンバージョンレポートの結果をよりアクションにつなげやすくなります。たとえば、50 個のキーワードを含むキャンペーンを最適化するよりも、4 個のキーワードを含むキャンペーンを最適化する方がはるかに容易です。

Conversion API のトラブルシューティングとサポート

API 呼び出し後に返されるエラーコードに関するご質問は、以下のセクションをご覧ください。その他のご質問については、遠慮なく Twitter の担当者までお問い合わせください。可能な限り速やかに解決に向けて対応いたします。 

エラー処理と説明

1 つのリクエストは、その中に含まれるすべてのコンバージョンで errors が 0 件である場合にのみ成功します。個々のコンバージョン内でいずれかのエラーが発生した場合、エンドポイントはそのコンバージョンに該当するすべての errors の一覧を返します。

X Ads API エラーコードの概要

以下は、Ads API におけるエラーコードの網羅的な一覧です。 https://developer.x.com/en/docs/twitter-ads-api/response-codes Conversion API の成功したレスポンスは、200 番台の HTTP コードと、要求されたオブジェクトを含む JSON ベースのペイロードによって示されます。

400 番台の HTTP ステータスコードが返される場合、よくあるケースは次のとおりです

  • 400 Bad Request (リクエストが仕様どおりになっていない)
  • 401 Unauthorized (認証に問題がある)
  • 403 Forbidden (その開発者アカウントに紐づく API アクセス権に問題がある)
  • 404 Not Found (そのエンドポイントに対して URL やパラメータが正しくない可能性がある)

Conversion API のエラーコード

400 Bad Request のシナリオ

JSON エラーコードの例

リクエスト:
POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dkt", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json

エラーメッセージ:

{"errors":[{"code":"INVALID_PARAMETER","message":"event_id (o6dkt) is not a single event tag (SET)","parameter":"event_id"}],"request":{"params":{"account_id":"18ce552mlaq"}}}

リクエスト:

twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dl3", "identifiers": [{"twclid": ""}]}]}' --header 'Content-Type: application/json'

エラーメッセージ:

{"errors":[{"code":"INVALID_PARAMETER","message":"At least one user identifier must be provided","parameter":""}],"request":{"params":{"account_id":"18ce552mlaq"}}}

リクエスト:

twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dl3", "identifiers": [{"hashed_email": "abc"}]}]}' --header 'Content-Type: application/json'

エラーメッセージ:

{"errors":[{"code":"INVALID_PARAMETER","message":"hashed_email (abc) is not a valid SHA-256 hash","parameter":"hashed_email"}],"request":{"params":{"account_id":"18ce552mlaq"}}}

リクエスト:

twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603", "event_id":"o6dl3", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json'

エラーメッセージ:

{"errors":[{"code":"INVALID_PARAMETER","message":"Expected Time in yyyy-MM-ddTHH:mm:ss.SSSZ, got \"2022-06-16T01:14:00.603\" for conversion_time","parameter":"conversion_time"}],"request":{"params":{"account_id":"18ce552mlaq"}}}

401 Unauthorized

理由: 認証情報が存在しない、または正しくありません 解決方法: 次の 3 つの認証方法のいずれかを使用して、セットアップドキュメントに記載された認証手順に従ってください。 Ads API アプリケーションを所有しているハンドル以外のユーザーハンドル用の User Access Tokens は、3-legged OAuth フローで生成する必要があります。3-legged OAuth を使用して Access Token を生成する方法としては、次のオプションがあります。 Conversion API で使用されるユーザートークンはすべて、AD_MANAGER または ACCOUNT_ADMIN のアクセスレベル*を持つユーザーのものでなければなりません。このアクセスレベルは、authenticated_user_access エンドポイントで確認できます。

403 アクセス禁止

404 Not Found

JSON エラーコードの例

リクエスト:

twurl_ads -X POST '/11/measurement/conversions/o8z6j' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"abc", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json' エラーメッセージ: {"errors":[{"code":"NOT_FOUND","message":"event_id (abc) does not belong to provided account","parameter":"event_id"},{"code":"INVALID_PARAMETER","message":"event_id (abc) is not a single event tag (SET)","parameter":"event_id"}],"request":{"params":{"account_id":"18ce55gze09"}}}

APIリファレンス インデックス

完全なAPIリファレンスを表示するには、リストからエンドポイントを選択してください。

Webコンバージョン

Web Conversions

POST version/measurement/conversions/:pixel_id 単一の Event Tag ID に対して、ウェブサイトのコンバージョンイベントを送信します。 レスポンスコードが HTTP 200 OK (成功) であることを確認してください。エラーコードが返される場合に備えて、リトライ機構と基本的なログ出力を用意しておくことを推奨します。 レート制限は、アカウントごとに 15 分間あたり 100,000 リクエストです (各リクエストで最大 500 件のイベントを送信できます) 。
リソース URL
https://ads-api.x.com/12/measurement/conversions/:pixel_id
リクエスト URL パラメータ
conversions オブジェクト
identifiers object
contents オブジェクト
レスポンスパラメーター
リクエスト例
リクエスト例

Webイベントタグ

GET accounts/:account_id/web_event_tags 現在のアカウントに関連付けられている Webイベントタグの一部またはすべての詳細を取得します。

リソース URL

https://ads-api.x.com/12/accounts/:account_id/web_event_tags

パラメーター

リクエスト例

GET https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags?web_event_tag_ids=o3bk1

レスポンス例

GET accounts/:account_id/web_event_tags/:web_event_tag_id

現在のアカウントに紐づく特定の Web イベントタグを取得します。
リソース URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id
パラメーター
リクエスト例
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1
レスポンス例

POST accounts/:account_id/web_event_tags

新しい Web イベントタグを現在のアカウントに関連付けて作成します。

リソース URL

https://ads-api.x.com/12/accounts/:account_id/web_event_tags

Parameters

リクエスト例
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags?click_window=7&name=web event tag&retargeting_enabled=false&type=SITE_VISIT&view_through_window=7

レスポンス例

PUT accounts/:account_id/web_event_tags/:web_event_tag_id

現在のアカウントに関連付けられているWebイベントタグを更新します。
リソース URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id

パラメーター

リクエスト例

PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1?type=DOWNLOAD

レスポンスの例

DELETE accounts/:account_id/web_event_tags/:web_event_tag_id

現在のアカウントに紐付いている特定の web event tag を削除します。

リソース URL

https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id
パラメーター
リクエスト例
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1
レスポンス例