一括レポート フィード
一括レポート フィードを使用すると、システムから独自のレポート システムに大きなデータ セットを同期できるため、すべてのデータが一元的に配置されます。 データを同期すると、独自の分析ツールを利用したり、請求と支払いを管理したり、すべてのデータにわたって広告主やパブリッシャーにカスタム レポートやダッシュボードを提供したりできるようになります。 データを最新の状態に保つために、このデータのプルを一貫して自動化できます。
一括レポート フィードは、すべての広告主とパブリッシャーに対してより詳細なデータを効率的に取得し、すべてのデータが最新であることを確認できる点で、標準レポートとは異なります。
一括レポート フィードの種類
このセクションでは、プラットフォームで使用できる一括レポート フィードのさまざまなカテゴリに関する情報を提供します。
ネットワーク分析フィード
この一括レポート フィードでは、ネットワークの購入側と販売側のパフォーマンスに関する広範なデータが提供されます。
使用可能な列の一覧については、 Network Analytics フィードに移動します。
Clicktrackers フィード
クリック トラッカーを使用すると、サード パーティの広告サーバーが提供するクリエイティブ (Xandr が提供していない) のユーザークリックを追跡できます。 このレポート フィードは、これらの外部クリックに関するデータを提供します。
- 返される各行は、1 回のクリック イベント用です。
- 使用可能な列の一覧については、「 Clicktrackers フィード」を参照してください。
一括レポート フィードを取得する
レポート フィードは、更新されたデータを 1 時間または毎日自動的にプルし、そのデータをデータ ウェアハウスにダンプできるように構築されました。 Xandr のレポート データを同期するには、次の 3 つのメイン手順があります。
- レポート サービスを使用して、特定の 1 時間または 1 日のレポート フィードを要求します。 レポート サービスでは、データのサイズと後処理時間を制限するために、いくつかの制限が課されることに注意してください。
- フィルターや順序を追加することはできません。
start_date
とend_date
を渡す必要があり、相互に 24 時間以内である必要があります。start_date
は過去 30 日以内である必要があります。
- Lookup Service を使用して、オブジェクト名やコードなどのデータを参照します。 ほとんどのオブジェクトの種類では、一括レポート フィードは ID のみを返します。 Lookup Service を使用して、名前、コード、説明、状態などの ID をマップできます。
- 新しいデータの可用性の通知を監視する
この手順の詳細な手順については、次の 例 を参照してください。
例
ネットワーク分析レポート フィードを要求する
レポート サービスを使用してレポート フィードを要求します。 Reporting Service では、データのサイズと後処理時間を制限するために、レポート フィードにいくつかの制限が課されることに注意してください。
- フィルターや順序を追加することはできません。
start_date
とend_date
を渡す必要があり、相互に 24 時間以内である必要があります。start_date
は過去 30 日以内である必要があります。
まず、レポート フィードの JSON 要求を network_analytics
作成します。
注:
report_type
を に設定する "network_analytics_feed"
必要があります。
$ cat report_feed
{
"report":
{
"report_type" : "network_analytics_feed",
"columns":[
"advertiser_currency",
"advertiser_id",
"booked_revenue_adv_curr",
"buyer_member_id",
"clicks",
"creative_id",
"geo_country",
"imps",
"imp_type",
"insertion_order_id",
"line_item_id",
"media_cost",
"media_type",
"pixel_id",
"placement_id",
"post_click_convs",
"post_view_convs",
"ppm",
"profit",
"publisher_currency",
"publisher_id",
"pub_rule_id",
"seller_member_id",
"seller_type",
"site_id",
"size",
"total_convs",
"total_network_rpm",
"total_publisher_rpm"
],
"row_per":[
"line_item_id",
"advertiser_id",
"buyer_type",
"seller_type",
"bid_type",
"size",
"geo_country",
"content_category_id",
"placement_id"
],
"start_date": "2011-07-30 00:00:00",
"end_date": "2011-07-31 00:00:00",
"format": "csv"
}
}
$ curl -b cookies -c cookies -X POST -d @report_feed 'https://api.appnexus.com/report'
{
"response":{
"status":"OK",
"report_id": "91281567ba7b36ef66be08cc4e637c8f",
"dbg_info": {
...
}
}
}
レポートが生成されたら、 レポート サービス にクエリを実行して、レポートをファイルにダウンロードするために使用する URL を取得します。
$ curl -b cookies -c cookies 'https://api.appnexus.com/report?id=91281567ba7b36ef66be08cc4e637c8f'
{
"response": {
"status": "OK",
"report": {
...
"created_on": "2011-08-01 19:13:35",
"data": null,
"url": "report-download?id=91281567ba7b36ef66be08cc4e637c8f"
},
"execution_status": "ready"
}
}
}
次に、ダウンロード URL を使用して別 GET
の呼び出しを行います。 保存するファイルを指定するときは、 で POST
指定した形式のファイル拡張子を使用してください。 最初POST
に を"format"
指定しなかった場合、形式は"csv"
既定で です。
$ curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=91281567ba7b36ef66be08cc4e637c8f' > /temp/report_download.csv
ID をオブジェクト名と参照データに一致させる
ほとんどのオブジェクトの種類では、レポート フィードは ID のみを返します。 Lookup Service を使用して、名前、コード、説明、状態などの ID をマップできます。
データが最新であることを確認する
データを同期するには、ローカル データベースに新しい時間または日数のデータを読み込むタイミングを把握する必要があります。 これを簡単にするために、レポート データの新しい時間が利用可能になるか、前の時間が変更されたときに通知する フィード状態サービス を提供します。
注:
フィード ステータス サービスは、Network Analytics フィードでのみ機能します。 Clicktrackers フィードでは機能しません。
最後に 1 時間または 1 日のレポート データを取得したときのローカル レコードを格納することをお勧めします。 これを行うには、次のスキーマを使用してデータベース テーブルを作成します。
reporting_ymdh | last_synchronized |
---|---|
2011-07-01 00:00:00 | 2011-07-01 01:23:13 |
2011-07-01 01:00:00 | 2011-07-01 02:19:54 |
reporting_ymdh は、ローカル データベースと同期した時間 (または日) またはレポート データです。
last_synchronized は、reporting_ymdhのレポート データをローカル データベースに最後 にプルした時点のタイムスタンプです。 このフィールドは、レポートの応答で created_on
返されるタイムスタンプを使用して設定する必要があります。
その後、既にプルした時間と 、フィードステータスサービスで利用可能な時間を比較できます。 (ここでも、これは Network Analytics フィードでのみ機能します)。最後に 1 時間または 1 日のデータを取得した時刻を、その時間の last_run
タイムスタンプと比較することもできます。 が前回同期した時刻より大きい場合 last_run
は、その時間のデータが更新され、データベースに再読み込みする必要があります。
例
レポート データが使用可能になったり変更されたりしてから 15 分以内に、データの前日を同期するとします。 EST タイムゾーンで 2011-07-01 のデータを同期する場合は、2011-07-01 05:00 から 2011-07-02 04:00 まで待つ必要があります。
この場合は、15 分ごとにフィード状態サービスをポーリングするプロセスを設定して、前日のすべての時間をレポートで使用できる場合にチェックする必要があります。 次の呼び出しを行います。
> curl -b cookies -c cookies -X GET 'https://api.appnexus.com/feed-status?type=network_analytics_feed'
{
"response": {
"status": "OK",
"num_elements": 44,
"start_element": 0,
"hours": [
...
{
"hour": "2011-07-01 05:00:00",
"last_run": "2011-07-01 06:16:28"
},
{
"hour": "2011-07-01 06:00:00",
"last_run": "2011-07-01 07:14:36"
},
...
]
...
}
hours
配列には、過去 5 日間のレポートで現在使用できる時間の一覧と、その時間のデータの集計が完了した時刻が含まれています。 場合によっては、レポートで既に使用できるデータの時間を修正する必要があります。 この場合、変更されたデータ時間 last_run
のタイムスタンプが更新されます。
各応答で、プロセスで JSON 応答を解析し、時間 2011-07-01 05:00 から 2011-07-02 04:00 が使用可能な場合にチェックする必要があります。 すべての時間が返されると、プロセスは前日のレポート フィード (この場合は 2011-07-01) を要求します。 Reporting Service からの応答には、レポートの created_on
実行時のタイムスタンプが含まれています。
{
"response": {
"status": "OK",
"report": {
...
"created_on": "2011-07-02 01:13:35",
...
},
...
}
}
2011-07-01 のlast_synchronized時刻として、タイムスタンプをデータベースに記録created_on
します。
reporting_ymd | last_synchronized |
---|---|
2011-07-01 00:00:00 | 2011-07-02 01:13:35 |