一括レポート フィード

一括レポート フィードを使用すると、システムから独自のレポート システムに大きなデータ セットを同期できるため、すべてのデータが一元的に配置されます。 データを同期すると、独自の分析ツールを利用したり、請求と支払いを管理したり、すべてのデータにわたって広告主やパブリッシャーにカスタム レポートやダッシュボードを提供したりできるようになります。 データを最新の状態に保つために、このデータのプルを一貫して自動化できます。

一括レポート フィードは、すべての広告主とパブリッシャーに対してより詳細なデータを効率的に取得し、すべてのデータが最新であることを確認できる点で、標準レポートとは異なります。

一括レポート フィードの種類

このセクションでは、プラットフォームで使用できる一括レポート フィードのさまざまなカテゴリに関する情報を提供します。

ネットワーク分析フィード

この一括レポート フィードでは、ネットワークの購入側と販売側のパフォーマンスに関する広範なデータが提供されます。

使用可能な列の一覧については、 Network Analytics フィードに移動します。

Clicktrackers フィード

クリック トラッカーを使用すると、サード パーティの広告サーバーが提供するクリエイティブ (Xandr が提供していない) のユーザークリックを追跡できます。 このレポート フィードは、これらの外部クリックに関するデータを提供します。

  • 返される各行は、1 回のクリック イベント用です。
  • 使用可能な列の一覧については、「 Clicktrackers フィード」を参照してください。

一括レポート フィードを取得する

レポート フィードは、更新されたデータを 1 時間または毎日自動的にプルし、そのデータをデータ ウェアハウスにダンプできるように構築されました。 Xandr のレポート データを同期するには、次の 3 つのメイン手順があります。

  1. レポート サービスを使用して、特定の 1 時間または 1 日のレポート フィードを要求します。 レポート サービスでは、データのサイズと後処理時間を制限するために、いくつかの制限が課されることに注意してください。
    • フィルターや順序を追加することはできません。
    • start_dateend_date を渡す必要があり、相互に 24 時間以内である必要があります。
    • start_date は過去 30 日以内である必要があります。
  2. Lookup Service を使用して、オブジェクト名やコードなどのデータを参照します。 ほとんどのオブジェクトの種類では、一括レポート フィードは ID のみを返します。 Lookup Service を使用して、名前、コード、説明、状態などの ID をマップできます。
  3. 新しいデータの可用性の通知を監視する

この手順の詳細な手順については、次の を参照してください。

ネットワーク分析レポート フィードを要求する

レポート サービスを使用してレポート フィードを要求します。 Reporting Service では、データのサイズと後処理時間を制限するために、レポート フィードにいくつかの制限が課されることに注意してください。

  • フィルターや順序を追加することはできません。
  • start_dateend_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 をマップできます。

データが最新であることを確認する

データを同期するには、ローカル データベースに新しい時間または日数のデータを読み込むタイミングを把握する必要があります。 これを簡単にするために、レポート データの新しい時間が利用可能になるか、前の時間が変更されたときに通知する フィード状態サービス を提供します。

最後に 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