Skip to main content

概要

アナリティクス指標は、パートナーや広告主が X 上でプロモーションしているコンテンツのパフォーマンスを把握するのに役立ちます。これには、インプレッション数、クリック数、動画再生数、支出額などの情報が含まれます。さらに、パートナーや広告主は、リーチしたオーディエンスのさまざまなセグメントごとの詳細な指標を取得することができます。 Ads API では、キャンペーンパフォーマンスの詳細な指標を取得する方法として、同期処理と非同期処理の 2 つをサポートしています。同期型の analytics 呼び出しでは、要求した指標がレスポンス内で返されます。非同期型の analytics エンドポイントでは、関連する「ジョブ」の処理が完了した後、ダウンロード可能な結果ファイルとして要求した指標を取得できます。同期エンドポイントは短い期間の指定をサポートしており、リアルタイムでのキャンペーン最適化に最適です。非同期エンドポイントは、はるかに長い期間をサポートしており、より大量のデータ取得を想定しているため、レポーティングや履歴データのバックフィルを行う用途に適しています。

詳細

同期処理と非同期処理

同期処理エンドポイントと非同期処理エンドポイントの違いを、次の表にまとめています。どのエンドポイント群を使用するかを開発者が選択する際の参考情報です。
  • 任意の時点で同時に「処理中」状態になれるジョブの最大数を指します。
** ジョブの処理が正常に完了すると、URL が返されます。この URL から、圧縮 (gzip) された結果ファイルをダウンロードできます。それ以外の点では、これらのエンドポイントは同じ機能を提供します。

ユースケース

主なアナリティクスのユースケースは 3 つあります。
  1. リアルタイム最適化: パフォーマンス指標を用いて、配信中のキャンペーンを更新する
  2. 同期処理: 定期的に実行されるバックグラウンド同期
  3. 新規アカウントのオンボーディング: 過去データの補完
同期アナリティクスエンドポイントは、直近 5~15 分以内の指標変化に基づいてキャンペーンを更新するリアルタイム最適化に使用できます。アナリティクスの同期処理には、どちらのエンドポイントも使用できます。必要な時間範囲とセグメンテーションの要否によって、どちらのエンドポイントを使うべきかが決まります。新規アカウントのオンボーディングは、非同期アナリティクスエンドポイントのみを使用して行ってください。 (同期アナリティクスエンドポイントは、大量データの取得には決して使用しないでください。) 非同期アナリティクスエンドポイントは、メトリクスをバックエンドプロセスで同期することで、ダッシュボードやその他の UI 要素を構築できます。実装では、UI のリクエストを処理する目的で非同期アナリティクスエンドポイントを呼び出すことは避けてください。

リクエストオプション

Analytics リクエストは広告アカウント単位でスコープされるため、リソースパス内にアカウント ID が必要です。以下に示すリクエストオプションはクエリパラメータとして指定します。次の種類の値が必要です。
  • Entities: 分析を取得したいエンティティの entity type と、対象とする最大 20 個のエンティティ id
  • Time range: ISO 8601 形式で指定する開始時刻と終了時刻
    • Note: 1 時間単位の値で指定する必要があります
  • Metric groups: 関連するメトリクスの 1 つ以上のセット (各 metric group に含まれるメトリクス一覧は「Metrics and Segmentation」を参照)
  • Granularity: メトリクスがどの集計レベルで返されるかを指定します
  • Placement: メトリクスを、X 上で配信された広告か、X 外で配信された広告かのどちらに対して取得するかを指定します
    • Note: 1 回のリクエストで指定できる placement の値は 1 つだけです
start_timeend_time リクエストパラメータを使用して、タイムレンジを指定します。これらの値は、以下のように指定した granularity と整合している必要があります。
  1. TOTAL: 任意のタイムレンジを指定できます (エンドポイントの制限内)
  2. DAY: start time と end time の両方の値は、アカウントのタイムゾーンにおける午前 0 時に揃えて指定する必要があります
  3. HOUR: 任意のタイムレンジを指定できます (エンドポイントの制限内)
end time は排他的です。たとえば、start_time=2019-01-01T00:00:00Zend_time=2019-01-02T00:00:00Z を指定したリクエストでは、このタイムレンジが 24 時間のみをカバーするため、2 日分ではなく 1 日分の analytics メトリクスのみが返されます。 Segmentation Segmentation は非同期 analytics エンドポイントでのみ利用可能で、パートナーや広告主が特定のターゲティング値ごとに分割されたメトリクスを取得できるようにします。セグメント化されたメトリクスをリクエストするには、segmentation_type リクエストパラメータを使用します。セグメンテーションオプションの詳細については、Metrics and Segmentation を参照してください。

FAQ

なぜ Ads API の数値は X Ads の UI に表示されるものと一致しないのですか?
  • ALL_ON_TWITTERPUBLISHER_NETWORKSPOTLIGHTTREND のすべてのプレースメントについてデータをリクエストしていることを確認してください。
  • Ads API における終了時刻は「排他的」ですが、Ads UI では「包括的」であることを忘れないでください。
なぜデータをリクエストするタイミングによって数値が変わるのですか?
  • レポート用指標が利用可能になり次第、取得できるようになります。これらはほぼリアルタイムで利用可能です。ただし、これらの初期結果は推定値であり、その結果として変動することが想定されています。支出データを除き、指標は 24 時間後に確定します。
  • 支出に関する指標は、一般的にイベント発生から 3 日以内に確定します。ただし、請求データは (スパムフィルタリングなどの理由により) イベント発生日から最大 14 日間にわたって処理されます。
特定の期間について、どのエンティティ ID をリクエストすべきかをどのように判断できますか? なぜ analytics レスポンス内の値がすべて null なのですか?
  • リクエストした期間中に、そのキャンペーンが配信されていなかった可能性が高いです。
  • どのエンティティの、どの期間の analytics を取得すべきかを判断するために、Active Entities エンドポイント を使用してください。
なぜ API では null が表示されるのに、UI では 0 が表示されるのですか?
  • UI ではこれらの値を 0 として表示していますが、値としては同等です。
X のタイムラインのような細かいプレースメントに関連するメトリクスは、どのようにリクエストできますか?
  • analytics では、ALL_ON_TWITTERPUBLISHER_NETWORKSPOTLIGHTTREND (つまり X Audience Platform) というプレースメント値をサポートしています。
削除済みまたは一時停止中のエンティティについてもメトリクスを取得することはできますか?
  • はい。エンティティのステータスは analytics 指標の取得可否には影響しません。
なぜセグメント別の値が非セグメントの値と一致しないのですか?
  • セグメント別データは、その情報の計算方法上、非セグメントのデータと 100% 一致する集計値になることは想定されていません。
複数のディメンションでセグメント化されたデータをリクエストすることは可能ですか?
  • 複数ディメンションでのセグメント化 (マルチセグメンテーション) には対応していません。

ベストプラクティス

Ads API からアナリティクスデータを収集する際のベストプラクティスです。

レート制限とリトライ

  • レート制限が適用されたリクエスト (HTTP 429 ステータスコードを返すもの) では、x-rate-limit-reset ヘッダーを確認し、指定された時刻以降にのみリトライする必要があります。
  • HTTP 503 Service Unavailable ステータスコードが返されたリクエストでは、retry-after ヘッダーを確認し、指定された時刻以降にのみリトライする必要があります。
  • 指定されたリトライ時刻を守らないアプリケーションは、予告なく Ads API へのアクセスを取り消されたり、スロットルされたりする可能性があります。

アナリティクス指標の概要

  • すべてのアナリティクス指標は、billed_charge_local_micro を除いて、24時間後には値が固定され、それ以降は変更されません。
  • billed_charge_local_micro 指標は、データが返された時点から最大3日間は推定値として報告されます。
  • 24時間経過後、この指標は、過剰配信 (指定した end_time 以降に配信された広告) に対するクレジットや、無効と判断された課金対象イベントに対するクレジットにより減少することがあります。この指標は24時間以降はごくわずかしか変化しません。
  • 詳細については、Analytics を参照してください。

リアルタイムの非セグメント化データの取得

  • start_timeend_time の両方を常に指定してください。
  • 7 日より前のエンティティについてはデータを取得しないでください。
  • 可能であれば HOUR 粒度でデータをリクエストしてください。DAYTOTAL 粒度が必要な場合は、常に集計してメトリクスをロールアップできます。
  • 可能であれば line_items および promoted_tweets レベルでデータをリクエストしてください。キャンペーン、funding instrument、アカウントレベルなど、広告エンティティ階層全体の合計値が必要な場合は、これらのメトリクスを集計してロールアップできます。
  • 分析メトリクスの値は、ローカル環境側で保存・保管してください。
  • 30 日より前のデータを繰り返しリクエストしないでください。このデータは変化せず、ローカルに保存しておくべきです。
  • すべての非セグメント化データはリアルタイムであり、イベント発生から数秒以内に利用できるようになります。
  • コンバージョンメトリクスと非コンバージョンメトリクスは、別々のリクエストに分けてください。

セグメント化データの取得

  • 上記の「リアルタイムの非セグメント化データの取得」に関するガイドラインを参照してください。追加の注意点を以下に記載します。
  • ほとんどのセグメント化データの種別では、データが最大1時間程度完全でない場合があります。INTERESTS でセグメント化されたデータは、最大12時間まで遅延する可能性があります。
  • セグメント化データは、その情報の算出方法により、非セグメント化データと100%一致するように集計されることは想定されていません。

過去データの取得

  • バックフィル (例: 新しい広告主アカウントを追加する場合) を行うときは、start_timeend_time で指定する期間をより小さなチャンクに分割して、複数回に分けてリクエストする必要がある場合があります。
  • 取得対象の期間は、30 日間のウィンドウに制限してください。
  • これらのリクエストはレートを調整し、時間的に分散させて、これらの取得に対するレート制限の上限に達しないようにしてください。

サンプル

これらのベストプラクティスの一部を示したサンプルスクリプト (fetch_stats) は、ads-platform-tools GitHub リポジトリで公開されています。

目的別の指標

どの指標をエンティティに適用できるかは、キャンペーンの目的 によって異なります。このガイドを使用して、各目的の種類ごとに取得すべき関連する指標グループと、追加の派生指標の算出方法を確認してください。

ENGAGEMENTS

関連するメトリクスグループ:ENGAGEMENTBILLING。クリエイティブにメディアが使用されている場合は MEDIA も該当します。

WEBSITE_CLICKSWEBSITE_CONVERSIONS

関連するメトリクスグループ:ENGAGEMENTBILLINGWEB_CONVERSION。クリエイティブでメディアが使用されている場合は MEDIA も該当します。

APP_INSTALLS および APP_ENGAGEMENTS

関連するメトリクスグループ:ENGAGEMENTBILLINGMOBILE_CONVERSIONLIFE_TIME_VALUE_MOBILE_CONVERSION。クリエイティブでメディアまたは動画アプリカードを使用している場合は、MEDIAVIDEO も対象になります。

FOLLOWERS

関連する指標グループ:ENGAGEMENTBILLING。クリエイティブにメディアが含まれる場合は MEDIA も適用されます。

LEAD_GENERATION

関連するメトリックグループ:ENGAGEMENTBILLING。クリエイティブでメディアを使用する場合は MEDIA も該当します。

VIDEO_VIEWS

関連メトリックグループ:ENGAGEMENTBILLINGVIDEO

VIDEO_VIEWS_PREROLL

関連するメトリックグループ:ENGAGEMENTBILLINGVIDEO

メトリクスとセグメンテーション

このドキュメントでは、各エンティティタイプごとに Analytics から取得できるメトリクスの概要と、各メトリクスで利用可能なセグメンテーションについて説明します。 *ENGAGEMENT メトリクスファミリーに含まれる一部のメトリクスは、ACCOUNT レベルおよび FUNDING_INSTRUMENT レベルでは利用できません。詳細については ENGAGEMENT セクションを参照してください。

メトリクスグループごとの利用可能なメトリクス

ENGAGEMENT

BILLING

VIDEO

動画メトリクス定義の変更に関するお知らせ: VIDEO メトリクスグループ内の video_total_views メトリクスは、MRC 標準に従い、少なくとも 2 秒間連続して 50%以上が視認範囲内にあるビューをカウントします。 元の動画ビュー定義 (少なくとも 3 秒間、100% が視認範囲内) のメトリクスは、VIDEO メトリクスグループ内の新しい video_3s100pct_views メトリクスとして引き続き利用できます。元のビュー定義に基づいて入札および課金を継続するには、新たに利用可能な VIEW_3S_100PCT bid_unit を使用してください。

MEDIA

WEB_CONVERSION

MOBILE_CONVERSION

モバイルコンバージョンの指標は、MACT が有効になっている広告主アカウントでのみ利用できます。

LIFE_TIME_VALUE_MOBILE_CONVERSION

ライフタイムモバイルコンバージョンの統計は、MACT が有効になっている広告主アカウントでのみ利用できます。

セグメンテーション

セグメンテーションのレポートでは、特定のターゲティングタイプの値ごとに分割されたメトリックを取得できます。セグメンテーションは、追加される複雑性が大きいため、非同期アナリティクスクエリ でのみ利用可能です。 セグメンテーションは、MEDIA_CREATIVE または ORGANIC_TWEET エンティティではサポートされていません。 一部のセグメンテーションタイプでは、追加パラメータの指定が必要です。これらについては以下に記載します。 CITIES または POSTAL_CODES でセグメントする場合、API はターゲットに設定されたロケーションのみを返します。REGIONS および METROS によるセグメンテーションでは、ターゲットに設定されたロケーションとターゲットに設定されていないロケーションの両方が返されます。

導出メトリクス

キャンペーンメトリクスは、それぞれのキャンペーン目的に依存します。このガイドでは、設定されている目的に応じて利用する導出メトリクスの算出方法を説明します。 中括弧で囲まれていない metric は、Ads API の analytics エンドポイントから返されるメトリクスです。名前が {中括弧} で囲まれているものは、そのカテゴリにおける導出メトリクスを表します。

エンゲージメント

WEBSITE_CLICKS

APP_INSTALLS と APP_ENGAGEMENTS

フォロワー

リード獲得

VIDEO_VIEWS

QUALIFIED_IMPRESSIONS

CUSTOM

placement_typePROMOTED_ACCOUNT の場合は、上記の FOLLOWERS オブジェクティブを参照してください。それ以外のすべてのプレースメントでこのオブジェクティブを使用する場合は、対応する派生メトリクスについて ENGAGEMENTS を参照してください。

ガイド

アクティブなエンティティ

はじめに

Active Entities エンドポイント は、どのキャンペーンについてアナリティクスをリクエストすればよいかを判断するための情報を提供することを目的として、同期 および 非同期 アナリティクスエンドポイントと組み合わせて使用するよう設計されています。広告エンティティの詳細と、そのメトリクスがいつ変化したかを返すことで、この目的を達成します。このエンドポイントを使用することで、コードおよびアナリティクス取得ロジックを大幅に簡素化できます。 このガイドでは、このエンドポイントとそのデータソースに関する情報とコンテキストを提供します。また、利用ガイドライン と、Active Entities をアナリティクスエンドポイントと組み合わせて使用する方法を示す一連の リクエスト例 も掲載しています。概要セクション では、推奨されるアプローチの概要レベルの説明を提供します。

データ

広告エンティティのメトリクスが変更されるたびに、その変更に関する情報を記録します。これらの変更イベントは 1 時間単位のバケットに保存され、エンティティに関する詳細と、その変更が適用される時刻の両方が含まれます。後者が必要になるのは、変更イベントが常に記録した時刻と対応するとは限らないためです。請求の調整が一般的な理由ですが、その他にも理由があります。

エンドポイント

Request

Active Entities リクエストは広告アカウント配下にスコープされており、必須クエリパラメータ entitystart_timeend_time が 3 つあります。 twurl -H ads-api.x.com "/11/stats/accounts/18ce54d4x5t/active_entities?entity=PROMOTED_TWEET&start_time=2019-03-05T00:00:00Z&end_time=2019-03-06T00:00:00Z" サポートされている entity の値は、CAMPAIGNFUNDING_INSTRUMENTLINE_ITEMMEDIA_CREATIVEPROMOTED_ACCOUNTPROMOTED_TWEET です。これは、分析エンドポイントがサポートするエンティティの種類を反映しています。 start_time および end_time の値は ISO 8601 形式で指定し、どの 1 時間単位のバケットをクエリするかを示す必要があります。これらは必ず 1 時間きざみで指定しなければなりません。 このエンドポイントは、結果をフィルタリングするために使用できる 3 つのオプションのパラメータ funding_instrument_idscampaign_idsline_item_ids もサポートします。これらは広告階層のすべてのレベルおよび指定された任意の entity type で機能します。

レスポンス

上記のリクエストに対する Active Entities レスポンスは以下のとおりです。
data 配列には、後続のアナリティクスリクエストに含める必要がある各エンティティごとに 1 つのオブジェクトが含まれます。この集合に含まれない ID については、アナリティクスをリクエストしないでください。 各オブジェクトには、entity_idactivity_start_timeactivity_end_timeplacements の 4 つのフィールドが含まれます。アクティビティの開始時刻と終了時刻は、関連するエンティティの変更イベントが適用される時間範囲を表しており、その結果として、後続のアナリティクスリクエストで指定すべき日付を決定します。placements 配列には、ALL_ON_TWITTERPUBLISHER_NETWORKSPOTLIGHTTREND の値を含めることができます。これは、対象のエンティティ ID について、どのプレースメントをリクエストすべきかを示します。

使用方法

Active Entities エンドポイントは、アナリティクスリクエストをどのように行うかを決定する基準となります。以下の利用ガイドラインは、アナリティクスの同期をサポートし、パートナーが自社のデータストアを Twitter と同期した状態に保てるようにするために記述されています。言い換えると、定期的にスケジュールされたバックグラウンド同期処理をどのように実行するかを説明しています。 開発者は 2 つの点について判断する必要があります。
  1. アクティブエンティティ情報をどのくらいの頻度でリクエストするか、そしてその結果としてアナリティクスをどのくらいの頻度で取得するか。
  2. アクティビティの開始時刻と終了時刻をどのように使用して、アナリティクスリクエストの start_time および end_time の値を決定するか。
これらについては、以下の 2 つの小節で、概要の後にそれぞれより詳しく説明します。

まとめ

Active Entities エンドポイントを次のように使用して、分析リクエストの実行方法を決定します。アクティブなエンティティ情報をどの程度の頻度で取得するか、つまりどの程度の頻度で分析データを取得するかを決めたあとに、以下に従ってください。
  1. Active Entities リクエストを送信します。
  2. レスポンスを placement ごとに分割します。ALL_ON_TWITTER 用に 1 グループ、PUBLISHER_NETWORK 用に 1 グループ、SPOTLIGHT 用に 1 グループ、TREND 用に 1 グループ作成します。
  3. 各 placement グループに対して、次を実行します。
    1. エンティティ ID を抽出します。
    2. 分析用の start_timeend_time の値を決定します。
      • 最小の activity_start_time を取得し、この値を下方向に丸めます。
      • 最大の activity_end_time を取得し、この値を上方向に丸めます。
    3. 分析リクエストを送信します。
      • エンティティ ID を 20 件ずつのバッチにまとめます。
      • 3b で求めた start_timeend_time の値を使用します。
      • 適切な placement の値を指定します。
    4. データストアに書き込みます。
Python SDK を使用した例として、active_entities.py を参照してください。

頻度

最初の質問への回答によって、Active Entities リクエストで使用すべき時間範囲が決まります。たとえば、アクティブエンティティ情報を毎時取得する場合、時間範囲は 1 時間にする必要があります。アクティブエンティティ情報を 1 日に 1 回取得する場合、時間範囲は 1 日にする必要があります。言い換えると、現在のリクエストの start_time が直前のリクエストの end_time と等しくなるように時間範囲を選択する必要があります。
Note: 同じ時間ウィンドウは 1 回だけリクエストしてください。同じ時間ウィンドウを複数回リクエストすると、不要なアナリティクスリクエストが発生します (下記の例外を除きます) 。
パートナーが 現在の 1 時間の間に、同じ 1 時間の中で複数回アナリティクスをリクエストしたい場合も、同じパターンが適用されます。すなわち、頻度によって時間範囲が決まります。下の表は、このシナリオにおける Active Entities の start_timeend_time のタイムスタンプ例を示しています。 変更イベントの保存方法により、上記 4 つの Active Entities リクエストはすべて同じ 1 時間ごとのバケットをクエリしますが、このユースケースではそれが必要です。ただし、現在の時間が過ぎた後は、この 1 時間バケットを再度クエリするべきではありません。

アクティビティ時間

アクティビティの開始時刻と終了時刻を扱う際には、次の方法を推奨します。Active Entities レスポンス内のすべてのオブジェクトを対象に、最小の activity_start_time と最大の activity_end_time を探します。これらの値を、最小のアクティビティ開始時刻は切り下げ、最大のアクティビティ終了時刻は切り上げる形で丸めて調整します。具体的には、両方のタイムスタンプの時刻部分を 0 に設定し、終了時刻に 1 日を加えます。以下の表に例を示します。これが、その後のアナリティクスリクエストで指定すべき開始時刻と終了時刻になります。 : 時・分・秒を 0 に設定したタイムスタンプを含めることが重要です。そうしない場合、日付のみが渡されたときには、広告アカウントのタイムゾーンにおける午前 0 時から開始・終了するアナリティクスをリクエストしているとみなされるため、望ましくない場合があります。例えば、最小のアクティビティ開始時刻が 2019-02-28T01:30:07Z で、オフセットが -08:00:00 の広告アカウントに対してタイムスタンプが省略された場合、01:30 から 08:00 の間に発生した変更はアナリティクスリクエストに含まれません。 別の方法として、1 日単位に拡張せずに、返却されたアクティビティ時間の範囲だけに対してアナリティクスをリクエストしたい場合は、そのようにすることもできます。この方法では、導出される開始時刻と終了時刻は、それぞれ 2019-03-04T20:00:00Z と 2019-03-05T15:00:00Z になります。 (なお、アナリティクスリクエストで DAY 粒度を指定した場合、このような時間範囲は受け付けられません。)

このセクションでは、Active Entities を同期型 analytics エンドポイントと組み合わせて使用する方法を示します (レスポンスは読みやすくするために一部変更されています) 。この例では、Active Entities エンドポイントは毎正時に呼び出され、それぞれのリクエストは直前の 1 時間を対象とします。レスポンスの内容に基づいて、同期型 analytics エンドポイントの使用方法が決まります。 最初の Active Entities リクエストは 03:00:00 に行われます。レスポンスは、ラインアイテム dvcz7 のメトリクスが変更され、その変更イベントが 02:02:55 から 02:28:12 の時間ウィンドウに適用されることを示しています。
これらのアクティビティの開始時刻と終了時刻に基づき、さらに上で説明した方法を用いると、アナリティクスの start_time および end_time の値はそれぞれ 2019-02-11T00:00:00Z と 2019-02-12T00:00:00Z に設定されます。以下の各メトリクス配列では 3 番目の要素がゼロ以外の値になっており、これはアクティブなエンティティ情報に基づいた期待どおりの結果です。
次回の Active Entities リクエストは 04:00:00 に行われ、直前の 1 時間分のみを対象とします。前述のとおり、各時間ウィンドウは 1 回だけリクエストする必要があります。レスポンスに基づくと、この line item に対する変更イベントは 02:00:00 と 03:00:00 の 両方 に適用されていることが分かります。続く analytics リクエストでは、両方の時間帯に対する変更が含まれていることが想定されます。
03:00:00 の時間帯にゼロ以外の値を持つ指標が表示されるだけでなく、impressions、spend、MRC video views が以前の値から更新されていることがわかります。例えば impressions は、02:00:00 の時間帯について、以前の 2,792 から 2,995 に増加しています。これは、03:00:00 の時間帯に記録された変更イベントが、02:00:00 の時間帯に適用されることを示しています。
05:00:00 時点での Active Entities リクエストでは、直前の 1 時間分のみを対象にすると、変更イベントは 03:00:00 の時間帯にのみ適用されていることが分かります。後続のリクエストにおけるアナリティクス指標の変化は、このことを反映しています。
分析レスポンスを見ると、03:00:00 の時間帯のメトリクスだけが変更されており、02:00:00 の時間帯の値は前回の分析リクエスト時と同じであることがわかります。
最後に、06:00:00 時点では追加の変更イベントが発生していないことが分かります。注意: しかし、だからといって、このラインアイテムの指標が将来変化しないという意味では ありません

非同期処理ガイド

APIリファレンス

非同期アナリティクス

はじめに

非同期アナリティクスのエンドポイントを使用すると、パートナーや広告主は作成リクエストを送信し、サーバー側で非同期に処理される指標 (メトリクス) を取得できます (これらを非同期アナリティクスの「ジョブ」と呼びます) 。この方式では、リクエストが完了するまでクライアントの接続を開いたままにしておく必要はありません。 これらのエンドポイントは、同期型エンドポイントと同様に、パートナーや広告主がキャンペーンのパフォーマンスに関する詳細な統計情報をリクエストできるようにします。アカウント、ファンディングインストルメント、キャンペーン、ラインアイテム、プロモツイート、メディアクリエイティブに対するデータのリクエストをサポートします。同期型エンドポイントとの違いは、非同期アナリティクスのエンドポイントでは、最大 90 日までのより長い期間に加えて、セグメンテーションもサポートしている点です。両者の違いの詳細については、Analytics Overview ページを参照してください。 同期型エンドポイントとは異なり、レート制限は特定のアカウントに対して同時に実行できるジョブ数に基づきます。言い換えると、ある時点で処理中にできるジョブの数に基づきます。これは広告アカウント単位でカウントされます。

使用方法

非同期アナリティクスのエンドポイントを使ってキャンペーン指標を取得するには、複数のステップを踏む必要があります。ジョブを作成し、そのジョブの処理が完了したかどうかを確認し、最後にデータをダウンロードします。データファイルは解凍する必要があります。具体的な 4 つのステップは以下のとおりです。
  1. POST stats/jobs/accounts/:account_id エンドポイントを使用してジョブを作成します。
  2. ジョブの処理が完了したかどうかを判定するために、一定間隔で GET stats/jobs/accounts/:account_id エンドポイントにリクエストを送信します。
  3. ジョブの処理が完了したら、データファイルをダウンロードします。
  4. データファイルを解凍します。
データファイル内で返される response オブジェクトは、同期アナリティクスエンドポイントのレスポンスと同じ JSON スキーマを持ちます。 セグメント化されたキャンペーン指標は、非同期アナリティクスエンドポイントからのみ取得できます。キャンペーン指標は、地域、性別、興味関心、キーワードなどで分割して取得できます。利用可能なオプションの完全な一覧については、指標とセグメンテーション ページを参照してください。セグメント化された指標をリクエストするには、ジョブを作成する際に segmentation_type リクエストパラメータを使用します。

このセクションでは、非同期アナリティクスエンドポイントの使用方法を示します。 まず、POST stats/jobs/accounts/:account_id エンドポイントを使用してジョブを作成します。以下の例では、特定のラインアイテムについて、1 週間分のインプレッション、いいね、クリックなどのエンゲージメント指標をリクエストしています。 (タイムスタンプが午前 0 時に設定されているため、指定した時間範囲は 3 月 20 日の直前までであり、3 月 20 日自体は含まれない点に注意してください。)
このレスポンスにはラインアイテムのメトリクスは含まれません。ここでは、作成したジョブに関する情報のみが返されます。ジョブの状態を確認するにはジョブ ID が必要で、この ID はレスポンスの id および id_str の両方の属性として返されます。 次に、前のレスポンスで返された id_str を使用して作成したジョブについて、レスポンス内に "status": "SUCCESS" が含まれており、処理が完了しているかどうかを確認します。これはデータをダウンロードできる状態になっていることを意味します。url フィールドにはダウンロード用のリンクが含まれています。
上記の例では単一のジョブ ID を渡していますが、実際には job_ids パラメータを使い、最大 200 個のジョブ ID を指定して、一度に複数のジョブのステータスを確認することをおすすめします。 次に、表示されている url の値を使ってデータファイルをダウンロードします。
最後にファイルを解凍します。
ファイルの内容は次のとおりです。

リーチと平均フリークエンシー

GET stats/accounts/:account_id/reach/campaigns

指定したキャンペーンのリーチおよび平均フリークエンシーに関するアナリティクスを取得します。

リソースURL

https://ads-api.x.com/stats/accounts/:account_id/reach/campaigns

パラメーター

リクエスト例

GET https://ads-api.x.com/12/stats/accounts/18ce54d4x5t/reach/campaigns?campaign_ids=8fgzf&start_time=2017-05-19&end_time=2017-05-26

レスポンス例

GET stats/accounts/:account_id/reach/funding_instruments

指定した funding instrument のリーチおよび平均フリークエンシーに関する分析情報を取得します。

リソース URL

https://ads-api.x.com/stats/accounts/:account_id/reach/funding_instruments

パラメーター

リクエスト例

レスポンス例

同期型アナリティクス

GET stats/accounts/:account_id

現在のアカウントの同期型アナリティクスを取得します。指定できる最大の時間範囲 (end_time - start_time) は7日間です。

リソースURL

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

パラメーター

リクエスト例

レスポンスの例

アクティブなエンティティ

GET stats/accounts/:account_id/active_entities

指定した期間内で、どのエンティティについてアナリティクス指標に変更があったかの詳細を取得します。 このエンドポイントは、アナリティクス系エンドポイントと併用してください。このエンドポイントの結果は、どの広告エンティティに対してアナリティクスをリクエストすべきかを示します。利用方法については Active Entities Guide を参照してください。 変更イベントは 1 時間ごとのバケットで提供されます。
  • start_timeend_time の値で、クエリ対象とする 1 時間ごとのバケットを指定します。
  • 返される data 配列には、その後のアナリティクスリクエストに含める必要がある各エンティティごとに 1 つのオブジェクトが含まれます。
  • 重要: その後のアナリティクスリクエストで指定すべき日付は、activity_start_time および activity_end_time の値に基づいて決定してください。
    • これらの値は、保存されている変更イベントが 適用される 期間を表します。これはエンティティごとに返されます。
: 指定可能な最大の時間範囲 (end_time - start_time) は 90 日です。

リソース URL

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

パラメーター

リクエスト例

GET https://ads-api.x.com/12/stats/accounts/18ce54d4x5t/active_entities?entity=PROMOTED_TWEET&start_time=2019-02-28&end_time=2019-03-01

サンプルレスポンス