入札者 - BSS を使用したセグメント データのアップロード
このドキュメントで説明されているように、セグメント ファイルをシステムに追加することは、複数ステップのプロセスです。
- 手順 1: アップロード用にデータ ファイルを書式設定します。
- 手順 2: アップロード URL とジョブ ID を要求する
- 手順 3: アップロード URL にファイルを投稿する
- 手順 4: ジョブの状態を確認する
注:
ファイルは、個々の行で 1800 個のセグメントに制限されます。 1 人のユーザーに対して 1800 を超えるセグメントがある場合は、その行を複数行に分割する必要があります。
アップロード用にデータ ファイルを書式設定する
BSS 用のデータ ファイルを作成する場合は、2 つのオプションがあります。レガシ BSS ファイル形式と新しい推奨BSS Avro ファイル形式は、自己定義スキーマを使用し、サードパーティの Cookie を超える幅広い ID をサポートします。
データ ファイルは、次の要件を満たす必要があることに注意してください。
- Latin1 文字セットを使用します。
- 最大 0.5 GB です。
アップロード URL とジョブ ID を要求する
アップロードされる各セグメント データ ファイルは、特定のジョブ ID に関連付けられている必要があります。 この ID は、アップロード URL を作成し、ファイルの処理状態を追跡するために使用されます。 最初の手順は、空 POST
の要求をサービスに送信することです。
このサービスは、 と の両方 api.appnexus.com
で機能します adnxs.com
。 入札者と UI ログインの両方で使用できます。
$ curl -b cookies -X POST "https://api.appnexus.com/batch-segment?member_id=456"
{
"response": {
"id": 123,
"status": "OK",
"batch_segment_upload_job": {
"job_id": "JFY8l6iMOFAFJIWCMPcy39MCt3Yleo1337618549",
"id": 123,
"member_id": 456,
"last_modified": "2012-05-21 16:42:29",
"upload_url": "https://data-api-gslb.adnxs.net/segment-upload/segment-upload/JFY8l6iMOFAFJIWCMPcy39MCt3Yleo1337618549"
},
"start_element": 0,
"count": 1,
"num_elements": 100,
"dbg_info": {
...
}
}
}
アップロード URL にファイルを投稿する
ファイルアップロード URL は、手順 1 の JSON 応答でフィールド upload_urlによって指定されます POST
。この URL にセグメント ファイルを処理します。 次のガイドラインに留意してください。
- アプリケーションでアップロード URL をハードコーディングしないでください。 upload_url フィールドから動的に取得してください。
- 特定のアップロード URL へのアップロードは 5 分以内に開始する必要があり、一度に有効な URL は 1 つだけです。 アップロードを開始するまで 5 分以上待つ場合は、新しい URL を要求する必要があります。
- 1 分あたり 1 回のアップロードを超えないようにすることをお勧めします。 200 を超えるジョブがいつでも処理されるのを待っている場合、追加のジョブのアップロードは禁止されます。
警告
ファイルを正しくアップロードするには、HTTP ヘッダーで MIME の種類を として "Content-Type: application octet-stream"
指定する必要があります。 () を使用"Content-Type: application x-www-form-urlencode"
-d or --data flags in curl
しないでください。 MIME の種類が正しくないと、ファイルが処理されなくなります。
$ curl -v -H 'Content-Type:application/octet-stream' -b cookies -X POST --data-binary @segment_file "https://01.data-api.prod.adnxs.net/segment-upload/JFY8l6iMOFAFJIWCMPcy39MCt3Yleo1337618549"
* About to connect() to 01.data-api.prod.adnxs.net port 80
* Trying 64.210.62.71... connected
* Connected to 01.data-api.prod.adnxs.net (64.210.62.71) port 80
> POST /segment-upload/FkmOY7oL2Qy2aCE7NrhE1BHVoJA0wi1337697712 HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: 01.data-api.prod.adnxs.net
> Accept: */*
> Content-type:application/octet-stream
> Content-Length: 116
>
> 7652266028043224430;5848:0,5849:1440,5850:14404013681496264948522;5013:0,5014:15508802117132500293405;5851:0,5847:-1HTTP/1.1 200 OK
< Date: Tue, 22 May 2012 14:48:02 GMT
< Content-Type: application/json
< Transfer-Encoding: chunked
< Server: Jetty(7.6.2.v20120308)
* Connection #0 to host 01.data-api.prod.adnxs.net left intact
* Closing connection #0
{"response":{"segment_upload":{"job_id":"FkmOY7oL2Qy2aCE7NrhE1BHVoJA0wi1337697712"},"status":"OK"}}
SSL アップロード URL の例
curl -b cookie -c cookie -X POST -s -d '' "https://api.appnexus.com/batch-segment?member_id=958"
"batch_segment_upload_job": {
"id": 14841671,
"job_id": "qGQhSZ1qvd2hSsJ9svTz32qgxq7z5b1439315424",
"member_id": 958,
"last_modified": "2015-08-11 17:50:24",
"upload_url": "https://data-api-gslb.adnxs.net/segment-upload/qGQhSZ1qvd2hSsJ9svTz32qgxq7z5b1439315424"
}
ジョブの状態を確認する
最後に、手順 2 または 3 から返された を含む GET 要求をjob_id
送信して、処理状態をチェックします。 JSON 応答には、ファイルの処理にかかった時間やエラーの数 (ある場合) などの情報が含まれます。 などの結果フィールド num_valid
を確認する前に、phase="completed" まで待つ必要があることに注意してください。 詳細については、「 BSS アップロードのトラブルシューティング」を参照してください。
Xandr SLA ごとに、ファイルの処理に最大 24 時間を許可します。
注:
Impbus API を使用するデータ プロバイダーの場合、フィールドはその中に 1 つのオブジェクトを含む配列であることに注意してください batch_segment_upload_job
。 例えば、
{"batch_segment_upload_job":[{"phase":"completed"}]}
$ curl -b cookies "https://api.appnexus.com/batch-segment?member_id=456&job_id=JFY8l6iMOFAFJIWCMPcy39MCt3Yleo1337618549"
{
"response": {
"start_element": 0,
"count": 1,
"batch_segment_upload_job": {
"phase": "completed",
"start_time": "2012-05-21 20:04:35",
"uploaded_time": "2012-05-21 20:04:41",
"validated_time": "2012-05-21 20:07:24",
"completed_time": "2012-05-21 20:08:24",
"error_code": null,
"time_to_process": "2.69",
"percent_complete": 100,
"num_valid": 200000,
"num_valid_user":100000
"num_invalid_format": 0,
"num_invalid_user": 0,
"num_invalid_segment": 0,
"num_unauth_segment": 1,
"num_past_expiration": 0,
"num_inactive_segment": 0,
"num_other_error": 0,
"error_log_lines": " \n\nnum_unauth_segment-4013681496264948522;5013:0,5014:1550",
"segment_log_lines": "\n5010:100000\n5011:50000\n5012:50000",
"id": 88,
"job_id": "4tGhzv2PojNGQpq0MYaoaOa70cuF061337630675",
"member_id": 456,
"created_on": "2012-05-21 20:04:35",
"last_modified": "2012-05-21 20:08:24"
},
"dbg_info": {
...
},
"status": "OK",
"num_elements": 100
}
}