ログ サービスの変更
概要
読み取り専用の変更ログおよび変更ログ詳細サービスは、一連のオブジェクトに対して行われた変更に関する情報を取得するために、他のサービス (以下に示す) と組み合わせて使用されます。 このページでは、これら 2 つのサービスを使用して、関心のあるログに記録された変更の一覧を取得する方法について説明します。 変更ログ サービスは、 "member"
、 "advertiser"
、または "member_advertiser"
ユーザーの種類を持つユーザーのみが使用できます。
注:
変更ログ サービスには、次に示すように、他の Xandr API サービスと若干の違いがあります。
- 日付フィルター処理に使用される
min_last_modified
オプションは、min_timestamp
に置き換えられます。 -
last_modified
オプションはサポートされていません。 代わりにcreated_on
を使用します。
変更の ID を取得するための REST API
HTTP メソッド | エンドポイント | 説明 |
---|---|---|
GET |
https://api.appnexus.com/change-log?service=SERVICE&resource_id=ID | リソースに発生した変更の ID を取得します。 |
POST |
https://api.appnexus.com/change-log (ログ JSON の変更) |
リソースの変更の ID を転記する。 |
変更ログ サービスの JSON フィールド
注:
- 変更ログ サービスは読み取り専用です。ただし、一部のフィールドは
POST
呼び出しで応答をフィルター処理するために使用できます。 ただし、すべてのフィールドはPOST
呼び出しでは使用されないため、GET
をお勧めします。 - 変更ログ サービスには、すべてのサービスに対して少なくとも 6 か月間のデータが含まれています。それ以上ではない場合。
エンドポイントへの入力として受け入れられるフィールド
フィールド | 種類 | 説明 |
---|---|---|
service |
string | 変更を行うために使用されるサービス。 次に、使用可能な値の例をいくつか示します。 - insertion-order - line-item - campaign - profile 手記: 現在、 budget-splitter サービスはブロックリストにあります。必須: はい フィルター: はい |
resource_id |
int | 変更を行うために使用されるオブジェクトの ID。 必須: はい フィルター: はい |
additional_fields |
string - GET 要求の場合、これはコンマ区切り文字列のグループです。 たとえば、 additional_fields = request_source 、 user_id 、 object_json - POST 要求の場合、これは文字列配列です。 たとえば、"additional_fields":["request_source","user_id","object_json”] のように指定します。 |
このフィールドを使用すると、ユーザーは応答に追加のデータを追加できます。
additional_fields には、追加の戻り値フィールドを含めることができます。 受け入れられる値の例を次に示します。- request_source - user_id - object_json 必須: いいえ フィルター: いいえ |
エンドポイントからの応答で返されるフィールド
フィールド | 種類 | 説明 |
---|---|---|
min_timestamp |
timestamp | オブジェクトに対する最も早い変更の日時 ( YYYY-MM-DD または YYYY-MM-DD HH:MM:SS 形式)。 |
max_timestamp |
timestamp | オブジェクトに対する最後の変更の日時 ( YYYY-MM-DD または YYYY-MM-DD HH:MM:SS 形式)。 |
start_element |
int | 既定では、 change-log サービスは 100 トランザクション以下を返します。 トランザクションが増える場合は、 start_element を使用してオフセットを設定します。 クエリ文字列に「」と入力します。
GET 要求とPOST 要求の両方に含めることができます。 |
num_elements |
int | 既定では、 change-log サービスは 100 トランザクション以下を返します。 トランザクションが多い場合は、 num_elements を使用して、指定した数のトランザクションを取得します。 クエリ文字列に「」と入力します。
GET 要求とPOST 要求の両方に含めることができます。 |
service |
string | 変更を行うために使用されるサービス。 |
resource_id |
int | 変更を行うために使用されるオブジェクトの ID。 |
additional_fields |
string | このフィールドは、入力で指定された応答に追加のデータを返します。 |
transaction_id |
int | エンドポイントへの入力として受け入れられた変更トランザクションの ID。 |
resource_id |
int | 変更を行うために使用されるオブジェクトの ID。 |
created_on |
timestamp | オブジェクトに対する変更の日付と時刻を YYYY-MM-DD HH:MM:SS 形式で指定します。 |
sort |
string |
“FIELD.[asc\|desc]” 形式の文字列。 たとえば、created_on での昇順並べ替えのcreated_on.asc 。 現在、 created_on での並べ替えのみが許可されています。 |
modified_by_admin |
ブール値 | 管理者のみが変更した項目でフィルター処理します。 手記: この要求パラメーターは、 GET 要求でのみ使用できます。 |
modified_by_plugin |
ブール値 | プラグインによってのみ変更された項目でフィルター処理します。 手記: この要求パラメーターは、 GET 要求でのみ使用できます。 |
transactions_with_changes |
ブール値 | 変更がある項目でフィルター処理します。 |
変更の詳細を取得するための REST API
HTTP メソッド | エンドポイント | 説明 |
---|---|---|
GET |
https://api.appnexus.com/change-log-detail?service=SERVICE&resource_id=ID&transaction_id=ID | リソースへの変更の詳細をフェッチします。 |
POST |
https://api.appnexus.com/change-log-detail (ログ詳細 JSON の変更) |
変更の詳細をリソースに投稿します。 |
変更ログの詳細サービスの JSON フィールド
注:
変更ログの詳細サービスは読み取り専用です。ただし、一部のフィールドは POST
呼び出しで応答をフィルター処理するために使用できます。
変更ログの詳細サービスでエンドポイントへの入力として受け入れられるフィールド
フィールド | 種類 | 説明 |
---|---|---|
service |
string | 変更を行うために使用されるサービス。 必須: はい フィルター: はい |
transaction_id |
int | エンドポイントへの入力として受け入れられた変更トランザクションの ID。 必須: はい フィルター: はい |
previous_object |
ブール値 |
true の場合、クエリされたトランザクションと以前のトランザクションの違いが表示されます。 それ以外の場合は、クエリされたトランザクションと次のトランザクションの違いが既定で表示されます。 この入力は、クエリ パラメーターまたは要求本文で渡すことができます。 既定値: false 必須: いいえ フィルター: はい |
変更ログの詳細サービスのエンドポイントからの応答で返されるフィールド
フィールド | 種類 | 説明 |
---|---|---|
created_on |
timestamp | オブジェクトに対する変更の日付と時刻を YYYY-MM-DD HH:MM:SS 形式で指定します。 |
user_id |
int | 変更を行ったユーザーの ID。 |
method |
列挙 | 変更を行うために使用される API メソッド。 使用可能な値は次のとおりです。 - "put" - "post" - "delete" |
url |
string | 元の要求の URL。 |
changes |
オブジェクトの配列 | 返されるオブジェクトに加えられた変更に関する詳細。
changes 配列内の各オブジェクトには、フィールドが含まれています。 |
plugin_id |
int | 変更を加えたプラグインの ID。
null 場合、プラグインは変更を加えませんでした (ユーザーが行いました)。 プラグインの詳細については、 プラグイン サービスに関するページを参照してください。 |
transaction_id |
int | エンドポイントへの入力として受け入れられた変更トランザクションの ID。 |
member_id |
int | 変更を開始したメンバーの ID。 |
num_of_changes |
int | オブジェクトに加えられたフィールドの変更の数。 これは、"changed" の値がtrue される"changes" フィールドの数に対応します。 |
modified_by_admin |
ブール値 | 変更が管理者によって開始されるかどうかを指定します。 |
admin_id |
int | 変更を開始した管理者の ID。 |
user_full_name |
string | 変更を加えたユーザーの名前。 これは、応答で返される "user_id" フィールドに対応します。 |
resource_id |
int | 変更を行うために使用されるオブジェクトの ID。 |
raw_json |
string | 読み取り専用です。 変更トランザクションの前の完全なデータ オブジェクト JSON。 このトランザクションの raw_json 値は、変更された内容を推測する最後のトランザクションの値と比較されます。 |
session_id |
string | 読み取り専用です。 API へのアクセスに使用されるユーザーの認証トークン。 |
internal_txn |
ブール値 | 読み取り専用です。
true 場合、これは内部トランザクションです (つまり、API 呼び出しは別の内部 API 呼び出しによってトリガーされました)。 |
request_source |
列挙 | 読み取り専用です。 API 要求が発生した場所。 使用可能な値: - "hbui" : 要求が UI からであることを示します。- "direct" : 直接 API 呼び出しからの要求を示します。- "LIAA-allocation" : 行項目編集フォームで更新が行われたことを示します。- "bmwBulkEdit" と "LIAA-blkupld" : 更新がそれぞれ一括編集と一括インポートで実行されたことを示します。- "bmwInlineEdit" : ユーザーが、個々のセクションを編集できる詳細ページの鉛筆アイコンをクリックしたことを示します。- "LIAA-dup" : 重複プロセスを通じて行われたことを示します。 注: この値は POST 呼び出しでのみ表示されます。 |
client_ip |
string | 読み取り専用です。 クライアントの IP アドレス。 |
ip_info |
string | 読み取り専用です。 要求がプロキシからの IP アドレスのチェーン。 |
changes
オブジェクト
フィールド | 種類 | 説明 |
---|---|---|
field_name |
string | 読み取り専用です。 フィールドの名前が変更されました。 |
old_value |
Any (int/string/boolean/timestamp など) | 読み取り専用です。 フィールドの古い値。 |
new_value |
Any (int/string/boolean/timestamp など) | 読み取り専用です。 フィールドの新しい値。
new_value のデータ型は、old_value と同じです。 |
changed |
ブール値 | 読み取り専用です。
true 場合は、フィールドの値が [Log Services]\(ログ サービス\) #[変更] であることを意味します。 |
例
を使用して変更ログの詳細を取得する GET
手順 1: /change-log
を呼び出して、目的のトランザクションを取得する resource_id
GET
を /change-log
します。
$ curl -b cookies 'https://api.appnexus.com/change-log?service=line-item&resource_id=13984849'
{
"response": {
"change_logs": [
{
"transaction_id": "4ba6d032-68ef-544e-9f01-49aa6b36b0b4",
"created_on": "2021-02-12 15:24:27",
"resource_id": 13984849
},
{
"transaction_id": "0ee74310-f580-5001-8007-2f71f84a5454",
"created_on": "2021-02-12 15:14:50",
"resource_id": 13984849
}
],
"start_element": 0,
"num_elements": 100,
"count": 2,
"status": "OK"
}
}
GET
パラメーターを使用して/change-log
"additional_fields"
します。
$ curl -b cookies 'https://api.appnexus.com/change-log?service=line-item&resource_id=13984849&additional_fields=request_source,user_id,object_json'
{
"response": {
"change_logs": [
{
"transaction_id": "2b11b163-c8a6-5c8b-b3d2-6e580d41d929",
"object_json": "{\"id\":13984849,\"code\":null,...}",
"created_on": "2021-03-03 17:05:53",
"user_id": [redacted],
"resource_id": 13984849,
"request_source": "LIAA-blkupld"
},
...
],
"start_element": 0,
"num_elements": 1,
"count": 1,
"status": "OK"
}
}
手順 2: を使用して /change-log-detail
を呼び出す transaction_id
GET
を /change-log-detail
します。
$ curl -b cookies 'https://api.appnexus.com/change-log-detail?service=line-item&transaction_id=0ee74310-f580-5001-8007-2f71f84a5454'
{
"response": {
"change_log_details": [
{
"transaction_id": "0ee74310-f580-5001-8007-2f71f84a5454",
"member_id": 364,
"raw_json": "{\"line-item\":{\"advertiser_id\":4143132,\"currency\":\"GBP\",...}",
"plugin_id": "",
"method": "PUT",
"changes": [
{
"field_name": "advertiser_id",
"old_value": 4143132,
"new_value": 4143132,
"changed": false
},
...
],
"session_id": "authn:234473:42824ee8a5453:nym2",
"internal_txn": false,
"url": "https://hbapi-proxy-production/line-item?id=13984849&advertiser_id=4143132",
"request_source": "LIAA-blkupld",
"num_of_changes": 2,
"created_on": "2021-03-03 17:05:53",
"user_id": [redacted int value],
"modified_by_admin": true,
"admin_id": 0,
"user_full_name": "Test User",
"resource_id": 13984849,
"client_ip": "[redacted]",
"ip_info": "[redacted]"
}
],
"start_element": 0,
"num_elements": 1,
"count": 1,
"status": "OK"
}
}
を使用して変更ログの詳細を取得する POST
注:
次の手順のコード サンプルは、ユーザーが 2021 年 3 月 3 日の 17:00:00 から 2021 年 3 月 3 日の 18:00:00 の間に広告主の5260730に加えられた変更を取得する方法を示しています。
手順 1: JSON 形式の変更ログ要求を作成する
JSON ファイルには、表示する変更ログの service
と resource_id
、変更ログを特定の期間に制限するための min_timestamp
と max_timestamp
が含まれている必要があります。 クエリ文字列で start_element
または num_elements
を使用することもできます。
JSON を作成します。
$ cat change-log.json
{
"change-log" : {
"service" : "advertiser",
"resource_id": "5260730",
"min_timestamp" : "2021-03-03 17:00:00",
"max_timestamp" : "2021-03-03 18:00:00"
}
}
手順 2: 変更ログ サービスに要求を POST
する
POST
transaction_id
を含む基本的な変更ログ情報を取得するための JSON 要求。
POST
を /change-log
します。
$ curl -b cookies -X POST -d @change-log.json 'https://api.appnexus.com/change-log'
{
"response": {
"change_logs": [
{
"transaction_id": "016ac252-aa30-5d10-a7a0-b5b3d88df832",
"created_on": "2021-03-03 17:16:07",
"resource_id": 5260730
}
],
"start_element": 0,
"num_elements": 100,
"count": 1,
"status": "OK"
}
}
手順 3: JSON 形式の変更ログ詳細要求を作成する
JSON ファイルには、詳細を表示する変更ログの service
と transaction_id
が含まれている必要があります。
JSON を作成します。
$ cat change-log-detail.json
{
"change-log-detail" : {
"service" : "advertiser",
"transaction_id": "016ac252-aa30-5d10-a7a0-b5b3d88df832",
"previous_object": "true"
}
}
手順 4: 変更ログ詳細サービスに要求を POST
する
POST
transaction_id
に対応する変更の詳細な変更ログを取得する JSON 要求。
POST
を /change-log-detail
します。
$ curl -b cookies -X POST -d @change-log-detail.json 'https://api.appnexus.com/change-log-detail'
{
"response": {
"change_log_details": [
{
"transaction_id": "016ac252-aa30-5d10-a7a0-b5b3d88df832",
"member_id": 7823,
"raw_json":"{\"advertiser\":{\"id\":0,\"code\":\"0080459398\",...}",
"plugin_id": "",
"method": "POST",
"changes": [
{
"field_name": "allow_safety_pacing",
"old_value": null,
"new_value": null,
"changed": false
},
{
"field_name": "billing_address1",
"old_value": null,
"new_value": "New Address",
"changed": true
},
...
],
"session_id": "authn:206221:8d1c33b7fadc3:ams3",
"internal_txn": false,
"url": "https://api.appnexus.com/advertiser",
"request_source": "direct",
"num_of_changes": 25,
"created_on": "2021-03-03 17:16:07",
"user_id": [redacted],
"modified_by_admin": true,
"admin_id": 0,
"user_full_name": "Test",
"resource_id": 5260730,
"client_ip": "[redacted]",
"ip_info": "[redacted]"
}
],
"start_element": 0,
"num_elements": 1,
"count": 1,
"status": "OK"
}
}