Bidders - BSS アップロードのトラブルシューティング
このトピックのメソッドを使用して、セグメント データのアップロードに関する問題を診断できます。
Batch Segment Service のさまざまなフェーズ
このセクションでは、問題が発生している可能性がある場所を理解できるように、アップロードのフェーズについて説明します。
開始 - アップロード URL とジョブ ID を要求する
このフェーズでは、クライアントはアップロード URL とジョブ ID を要求します。 このステージは 5 分でタイムアウトします。 ジョブがこのフェーズでスタックしている場合、クライアントは URL を要求したが、割り当てられた時間内に何もアップロードできなかったことを示します。
アップロード
このフェーズでは、クライアントは指定された URL にファイルをアップロードします。 1 分あたり 1 回のアップロードを超えないようにすることをお勧めします。 クライアントが任意の時点で処理を待機しているジョブが 200 を超える場合、追加のジョブのアップロードは禁止されます。
検証と処理
クライアントがファイルをアップロードすると、次のフェーズでファイルの処理が行われ、セグメント ID とユーザー ID の検証が実行されます。レコードに無効なセグメント ID またはユーザー ID が含まれている場合、プラットフォームはレコードを処理しません。 クライアントがジョブの状態を確認すると、無効なユーザーの数に関する統計情報を表示できるようになります。
完了
このフェーズでは、ファイルのデータがプラットフォームに正常にアップロードされ、ターゲット設定に使用できます。
アップロード エラーの可能性
0.5 GB を超えるファイルをアップロードしようとしています
{"response":{"status":"ERROR","error_code":"FILESIZE_LIMIT_EXCEEDED","errors":["Member
exceeds maximum byte size allowed for a file"]}}
バッチ セグメントアップロード ジョブのエラー コード
""batch_segment_upload_job": {
"phase": "error",
"start_time": "2015-08-13 18:40:32",
"uploaded_time": null,
"validated_time": null,
"completed_time": null,
"error_code": "uploading-error",
"time_to_process": "0.00",
"percent_complete": 0,
"num_valid": 0,
"num_invalid_format": 0,
"num_valid_user": 0,
"num_invalid_user": 0,
"num_invalid_segment": 0,
"num_invalid_timestamp": 0,
"num_unauth_segment": 0,
"num_past_expiration": 0,
"num_inactive_segment": 0,
"num_other_error": 0,
"error_log_lines": null,
"segment_log_lines": null,
"id": 11661553,
"job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
"member_id": 958,
"created_on": "2015-05-13 18:40:32",
"last_modified": "2015-05-13 18:40:33"
}
次のエラーは、次の場合に発生する可能性があります。
次の 4 つのアップロード制限のいずれかに達しました。
- 日単位のバイト数
- 時間単位のバイト数
- 日次行、または
- 時間単位の行
1 日あたりのバイト アップロード制限を超えようとしている
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed bytes per day"]}}
1 時間あたりのバイトアップロード制限を超えようとしている
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed bytes per hour"]}}
1 日あたりのアップロード制限を超えようとしている
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed number of lines per day"]}}
1 時間あたりのアップロード制限を超えようとしている
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed number of lines per hour"]}}
アップロードを取り消しました。
アップロード フェーズが 90 分を超えています。
アップロードまでの最大時間を超える
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Maximum upload time exceeded"]}}
発生する可能性のある処理エラー
無効な形式
num_invalid_format
フィールドの値が"0"
より大きい場合は、error_log_lines
フィールドの値を確認します。
次の例では、 num_invalid_format
フィールドに "1"
の値が表示され、詳細は error_log_lines
フィールドに示されています。
[ error_log_lines
] フィールドで、次の手順を実行します。
-
num_invalid_format
は、アップロードされたファイル内の行の解析に問題が発生したことを示します。 -
"failed with an illegal number of fields"
は、segment_fields
ブロック内のフィールドの数が、バッチ セグメント構成で定義されたものと一致しなかったことを示します (詳細については、「 初期 BSS アカウントのセットアップ」を参照してください)。
この場合、構成では、 SEG_ID
、 VALUE
、 EXPIRATION
の 3 つのフィールドがブロックで定義されることを想定していますが、パーサーで見つかったフィールドは、 SEG_ID
と VALUE
の 2 つだけであるため、エラーが表示されます。
num_invalid_formatとerror_log_linesの例
"batch_segment_upload_job": {
phase": "completed",
"error_code": null,
"time_to_process": "0.01",
"percent_complete": 100,
"num_valid": 0,
"num_invalid_format": 1,
"num_valid_user": 0,
"num_invalid_user": 0,
"num_invalid_segment": 0,
"num_invalid_timestamp": 0,
"num_unauth_segment": 0,
"num_past_expiration": 0,
"num_inactive_segment": 0,
"num_other_error": 0,
"error_log_lines": "num_invalid_format-WINDOWSADID-USER-ID;SEG_ID:VALUE~9 failed with an illegal number of fields",
"segment_log_lines": null,
"start_time": "2015-08-13 18:40:32",
"uploaded_time": "2015-08-13 18:42:32",
"validated_time": "2015-08-13 18:42:32",
"completed_time": "2015-08-13 18:42:33",
"id": 123412341234,
"job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
"member_id": 958,
"created_on": "2015-08-13 18:40:32",
"last_modified": "2015-08-13 18:42:33"
}
ファイルのアップロード履歴を表示する
過去 30 日以内のすべてのセグメント ファイルのアップロードに関するメタデータを表示するには、クエリ文字列にmember_id
を指定してサービスをGET
呼び出します。 JSON 応答には、 batch_segment_upload_job
オブジェクトの配列が含まれます。
batch_segment_upload_job
オブジェクトの特定のフィールドの詳細については、「JSON フィールド」を参照してください。
注:
ファイルのアップロード履歴は、過去 30 日間のみ使用できます。
$ curl -b cookies 'https://api.appnexus.com/batch-segment?member_id=456'
{
"response" : {
"batch_segment_upload_job" : [
{
"phase": "completed",
"start_time": "2012-05-22 16:48:55",
"uploaded_time": "2012-05-22 16:48:56",
"validated_time": "2012-05-22 16:49:01",
"completed_time": "2012-05-22 16:49:01",
"error_code": null,
"time_to_process": "0.04",
"percent_complete": 100,
"num_valid": 0,
"num_invalid_format": 0,
"num_invalid_user": 2,
"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\nnum_invalid_user-7652266028043224430;5848:0,5849:1440,5850:1440\nnum_invalid_user-8802117132500293405;5851:0,5847:-1",
"id": 98,
"job_id": "T1v98eIOlCZndeLGSXD0nrs57L8ES11337705335",
"member_id": 456,
"created_on": "2012-05-22 16:48:55",
"last_modified": "2012-05-22 16:49:01"
},
...
}
}
}
注:
API では、改ページを使用して応答を 100 個のオブジェクトに制限します。 API 呼び出しに次のいずれかを追加することで、追加のオブジェクトを表示できます。
&start_element=101
&sort=last_modified.desc
改ページの詳細については、こちらのドキュメント ポータルを参照 してください。
それでも技術的な問題が発生している場合は、 カスタマー サポート ポータルで要求を送信できます。 サポート リクエストにジョブ ID を含めるのを忘れないでください。
JSON フィールド
HTTP メソッド | エンドポイント | 説明 |
---|---|---|
GET |
https://api.appnexus.com/batch-segment/meta |
この呼び出しを使用して、フィルター処理および並べ替え可能なフィールドを確認します。 |
フィールド | 種類 | 説明 |
---|---|---|
batch_segment_upload_job |
object | これは、アップロードジョブと処理ジョブを記述するメタデータを含むフィールドを持つオブジェクトです。 Impbus API を使用している場合、これは 1 つのオブジェクトを含む配列になります。 詳細については、「 Batch Segment Upload Job 」を参照してください。 |
id |
int | これは、この要求に関連付けられている batch_segment_upload_job オブジェクトの ID です。 既定値: 自動的に生成された数値。 |
status |
string | API 呼び出しの状態。成功した呼び出しは "OK" を返します。 |
バッチ セグメントのアップロード ジョブ
処理ジョブの状態を要求すると、システムは batch_segment_upload_job
オブジェクトを返します (データ プロバイダーの場合、これは 1 つのオブジェクトを含む配列になります)。 サービスに対して行う要求に応じて、次のメタデータの一部またはすべてが含まれます。
注:
ほとんどのメタデータは、 "phase": "completed"
ときにのみ存在します。
フィールド | 種類 | 説明 |
---|---|---|
completed_time |
date | ファイル処理が完了した時刻。 |
created_on |
date | このオブジェクトの作成日。 |
error_code |
int |
"phase": "error" 場合、このエラー コードは発生したエラーの種類を記述します。 エラー コードは、ファイル自体のアップロード、検証、または処理でエラーが発生した場合にのみ表示されることに注意してください (つまり、無効な形式や無効なセグメント エラーは含まれません)。 一般的なエラーは、読み取り不可能なファイルと定義されたオブジェクトの制限を超えていることが原因で発生します。 エラーが見つからなかった場合 null を返します。 |
error_log_lines |
string | 改行で区切られた行を含む文字列。 各行には、ファイルのアップロード中に検証エラーまたはエラーの理由が一覧表示されます。 このフィールドに表示される行の数を選択できます。 既定値: 200 行 |
id |
int | このオブジェクトの一意識別子。 |
job_id |
string | このファイルに関連付けられている処理ジョブを一意に識別する英数字の文字列。 |
last_modified |
date | このオブジェクトの最新の変更日 (通常は POST 経由)。 |
member_id |
int | メンバー ID。 必須: PUT 、 POST |
num_inactive_segment |
int | ファイル内の非アクティブなセグメントの数。 重複除去。 |
num_invalid_format |
int | 書式設定エラーを含むアップロードされた行の数。 これは、特定のファイル形式の構成によって異なります。 重複する行も無効な形式と見なされます。 |
num_invalid_segment |
int | ファイル内の無効なセグメントの数。 重複除去。 |
num_invalid_timestamp |
int | ファイル内の無効なタイムスタンプの数。 |
num_invalid_user |
int | 無効なユーザーまたは存在しないユーザーを持つ一意の入力行の数。 |
num_other_error |
int | これは、現在使用されていないプレースホルダー値です。 |
num_past_expiration |
int | ファイル内の期限切れのセグメントの数。 重複除去。 |
num_unauth_segment |
int | アクセスが許可されていないファイル内のセグメントの数。 重複除去。 |
num_valid |
int | アップロードされたファイル内の有効な行数。 各ユーザー/セグメントの組み合わせは、1 行と見なされます。 |
num_valid_user |
int | 有効なユーザー ID を持つ一意の入力行の数。 |
percent_complete |
int | 要求時の現在の phase を指定した、完了した処理の割合。 |
phase |
列挙 | 現在の処理状態。 次のいずれかの値を返します。 - error - starting - uploading - validating - processing - completed |
segment_log_lines |
string | セグメント ID と、正常に追加または削除されたユーザーの数で構成される改行で区切られた行を含む文字列。 このフィールドの既定値は 200 行です。 形式は ... added: SEG_ID:COUNT SEG_ID:COUNT ... removed: SEG_ID:COUNT です。ここで、 SEG_ID はセグメント ID、 COUNT は正常に追加または削除されたユーザーの数です。
SEG_ID:COUNT ペアは、 COUNT (降順) で並べ替えられます。 例: added: 15889133:386221 15547290:186227 removed: 15889278:369734 15889206:255307 15889179:232831 |
start_time |
date | ファイルのアップロードが開始された時刻。 |
time_to_process |
decimal | セグメント ファイルの処理にかかった時間 (分単位)。 |
upload_url |
string | セグメント データ ファイルをアップロードする URL。 |
uploaded_time |
date | このジョブ ID に関連付けられているファイルがアップロードされた時刻。 |
validated_time |
date | ファイル検証が完了した時刻。 |