Partager via


Services de journalisation des modifications

Vue d’ensemble

Les services de journal des modifications et de détails du journal des modifications en lecture seule sont utilisés conjointement avec d’autres services (répertoriés ci-dessous) pour récupérer des informations sur les modifications apportées à un ensemble d’objets. Cette page décrit l’utilisation de ces deux services pour récupérer la liste des modifications enregistrées qui vous intéressent. Le service Journal des modifications est disponible uniquement pour les utilisateurs ayant le "member"type d’utilisateur , "advertiser"ou "member_advertiser" .

Remarque

Le service Journal des modifications présente des différences mineures par rapport aux autres services d’API Xandr, comme indiqué ci-dessous :

  • L’option min_last_modified utilisée pour le filtrage de date est remplacée par min_timestamp.
  • L’option last_modified n’est pas prise en charge. Utilisez created_on à la place.

API REST pour récupérer l’ID d’une modification

HTTP, méthode Endpoint Description
GET https://api.appnexus.com/change-log?service=SERVICE& resource_id=ID Récupérer l’ID d’une modification apportée à une ressource.
POST https://api.appnexus.com/change-log
(Fichier JSON du journal des modifications)
Publication d’un ID de modification pour une ressource.

Champs JSON pour le service Journal des modifications

Remarque

  • Le service Journal des modifications est en lecture seule ; Toutefois, certains champs peuvent être utilisés dans un POST appel pour filtrer la réponse. Toutefois, tous les champs ne sont pas utilisés dans POST les appels. Il est donc GET recommandé.
  • Le service Journal des modifications contient au moins 6 mois de données, voire plus, pour chaque service.

Champs acceptés comme entrées du point de terminaison

Champ Type Description
service string Service utilisé pour effectuer la modification. Voici quelques exemples de valeurs possibles :
- insertion-order
- line-item
- campaign
- profile

Note: Actuellement, budget-splitter le service est dans la liste de blocage.
Obligatoire: Oui
Filtre: Oui
resource_id int ID de l’objet utilisé pour effectuer la modification.
Obligatoire: Oui
Filtre: Oui
additional_fields string
- Pour GET les requêtes, il s’agit d’un groupe de chaînes séparées par des virgules. Par exemple, additional_fields = request_source, user_id, object_json
- Pour les POST requêtes, il s’agit d’un tableau de chaînes. Par exemple, "additional_fields":["request_source","user_id","object_json”]
Ce champ permet aux utilisateurs d’ajouter des données supplémentaires dans la réponse. peut additional_fields inclure des champs de retour supplémentaires. Voici quelques exemples de valeurs acceptées :
- request_source
- user_id
- object_json
Obligatoire: Non
Filtre: Non

Champs retournés dans la réponse à partir du point de terminaison

Champ Type Description
min_timestamp Timestamp Date et heure de la modification la plus ancienne de l’objet, au YYYY-MM-DD format ou YYYY-MM-DDHH:MM:SS .
max_timestamp Timestamp Date et heure de la dernière modification de l’objet, au YYYY-MM-DD format ou YYYY-MM-DDHH:MM:SS .
start_element int Par défaut, le change-log service retourne 100 transactions ou moins. S’il y a plus de transactions, utilisez start_element pour définir le décalage. Entrez dans la chaîne de requête. Peut être inclus dans les GET demandes et POST .
num_elements int Par défaut, le change-log service retourne 100 transactions ou moins. S’il y a plus de transactions, utilisez num_elements pour récupérer le nombre spécifié de transactions. Entrez dans la chaîne de requête. Peut être inclus dans les GET demandes et POST .
service chaîne Service utilisé pour effectuer la modification.
resource_id int ID de l’objet utilisé pour effectuer la modification.
additional_fields string Ce champ retourne des données supplémentaires dans la réponse, comme spécifié dans l’entrée.
transaction_id int ID de la transaction de modification acceptée comme entrée du point de terminaison.
resource_id int ID de l’objet utilisé pour effectuer la modification.
created_on Timestamp Date et heure de la modification de l’objet au YYYY-MM-DDHH:MM:SS format.
sort chaîne Chaîne au format . “FIELD.[asc\|desc]” Par exemple, created_on.asc pour le tri croissant sur created_on. Actuellement, seul le tri est created_on autorisé.
modified_by_admin valeur booléenne Filtrez par éléments qui sont modifiés par les administrateurs uniquement.

Note: Ce paramètre de requête est utilisable uniquement dans les GET requêtes.
modified_by_plugin valeur booléenne Filtrez par éléments modifiés uniquement par les plug-ins.

Note: Ce paramètre de requête est utilisable uniquement dans les GET requêtes.
transactions_with_changes valeur booléenne Filtrez par éléments qui ont des modifications.

API REST pour récupérer les détails d’une modification

HTTP, méthode Endpoint Description
GET https://api.appnexus.com/change-log-detail?service=SERVICE& resource_id=ID&transaction_id=ID Récupérez les détails d’une modification apportée à la ressource.
POST https://api.appnexus.com/change-log-detail
(Modifier les détails du journal JSON)
Publiez les détails d’une modification apportée à une ressource.

Champs JSON pour le service Détails du journal des modifications

Remarque

Le service Détails du journal des modifications est en lecture seule ; Toutefois, certains champs peuvent être utilisés dans un POST appel pour filtrer la réponse.

Champs acceptés en tant qu’entrées du point de terminaison dans le service Détails du journal des modifications

Champ Type Description
service string Service utilisé pour effectuer la modification.
Obligatoire: Oui
Filtre: Oui
transaction_id int ID de la transaction de modification acceptée comme entrée du point de terminaison.
Obligatoire: Oui
Filtre: Oui
previous_object valeur booléenne Lorsque la valeur est true, la différence entre la transaction interrogée et la transaction précédente s’affiche. Sinon, la différence entre la transaction interrogée et la transaction suivante est affichée par défaut. Cette entrée peut être passée dans le paramètre de requête ou dans le corps de la requête.
Valeur par défaut : false
Obligatoire : Non
Filtre : Oui

Champs retournés dans la réponse du point de terminaison dans le service Détails du journal des modifications

Champ Type Description
created_on Timestamp Date et heure de la modification de l’objet au YYYY-MM-DDHH:MM:SS format.
user_id int ID de l’utilisateur qui a apporté la modification.
method enum Méthode d’API utilisée pour effectuer la modification. Les valeurs possibles sont les suivantes :
- "put"
- "post"
- "delete"
url string URL de la demande d’origine.
changes tableau d’objets Détails sur les modifications apportées à l’objet retourné. Chaque objet du tableau contient des changeschamps.
plugin_id int ID du plug-in qui a apporté la modification. Si la valeur est null, un plug-in n’a pas effectué la modification (et un utilisateur l’a fait). Pour plus d’informations sur un plug-in, consultez service de plug-in.
transaction_id int ID de la transaction de modification acceptée comme entrée du point de terminaison.
member_id int ID du membre qui a initié la modification.
num_of_changes int Nombre de champs modifiés dans l’objet. Il correspond au nombre de "changes" champs où la valeur de "changed" est true.
modified_by_admin valeur booléenne Spécifie si les modifications sont initiées par un administrateur.
admin_id int ID de l’administrateur qui a initié la modification.
user_full_name chaîne Nom de l’utilisateur qui a apporté la modification. Il correspond au "user_id" champ retourné dans la réponse.
resource_id int ID de l’objet utilisé pour effectuer la modification.
raw_json chaîne En lecture seule. Objet de données complet JSON avant la transaction de modification. La raw_json valeur de cette transaction est comparée à la valeur de la dernière transaction pour déduire ce qui a changé.
session_id chaîne En lecture seule. Jeton d’authentification de l’utilisateur utilisé pour accéder à l’API.
internal_txn valeur booléenne En lecture seule. Si truela valeur est , il s’agit d’une transaction interne (c’est-à-dire que l’appel d’API a été déclenché par un autre appel d’API interne).
request_source enum En lecture seule. D’où provient la requête d’API. Valeurs possibles :
- "hbui": indique que la requête provient de l’interface utilisateur.
- "direct": indique que la requête provient d’appels d’API directs.
- "LIAA-allocation": indique que la mise à jour a été effectuée dans le formulaire de modification d’élément de ligne
- "bmwBulkEdit" et "LIAA-blkupld": indique que les mises à jour ont été effectuées en bloc et en importation en bloc, respectivement.
- "bmwInlineEdit": indique que l’utilisateur a cliqué sur l’icône de crayon dans la page de détails qui permet de modifier des sections individuelles.
- "LIAA-dup": indique qu’elle a été effectuée par le processus de duplication.

Remarque : cette valeur s’affiche uniquement dans les appels POST.
client_ip chaîne En lecture seule. Adresse IP du client.
ip_info chaîne En lecture seule. Chaîne d’adresses IP si la requête provient de proxys.

changes Objet

Champ Type Description
field_name chaîne En lecture seule. Le nom du champ a changé.
old_value Tout (int/string/boolean/timestamp, etc.) En lecture seule. Ancienne valeur du champ.
new_value Tout (int/string/boolean/timestamp, etc.) En lecture seule. Nouvelle valeur du champ. Le type de données de new_value est identique à old_value.
changed valeur booléenne En lecture seule. Si truela valeur est , cela implique que la valeur du champ change Log Services#Changed.

Exemples

Récupérer les détails du journal des modifications à l’aide de GET

Étape 1 : Appeler /change-log pour obtenir des transactions pour un objet souhaité 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 avec "additional_fields" le paramètre .

$ 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"
}
}

Étape 2 : appeler /change-log-detail avec le 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"
}
}

Récupérer les détails du journal des modifications à l’aide de POST

Remarque

Les exemples de code dans les étapes ci-dessous montrent comment un utilisateur récupère les modifications apportées à l’annonceur 5260730 entre 17 :00 :00 le 3 mars 2021 et 18 :00 :00 le 3 mars 2021.

Étape 1 : Create une demande de journal des modifications au format JSON

Le fichier JSON doit inclure le service et resource_id des journaux des modifications que vous souhaitez afficher, ainsi que les et max_timestamp pour limiter les min_timestamp journaux des modifications à une période spécifique. Vous pouvez également utiliser start_element ou num_elements dans la chaîne de requête.

change-log Create 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"
}
}

Étape 2 : POST la demande au service de journal des modifications

POST la demande JSON pour récupérer les informations de base du journal des modifications, y compris le transaction_id.

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"
}
}

Étape 3 : Create une demande de détails du journal des modifications au format JSON

Le fichier JSON doit inclure les service et transaction_id du journal des modifications pour les détails que vous souhaitez afficher.

change-log-detail Create JSON.

$ cat change-log-detail.json
{
"change-log-detail" : {
"service" : "advertiser",
"transaction_id": "016ac252-aa30-5d10-a7a0-b5b3d88df832",
"previous_object": "true"
}
}

Étape 4 : POST la demande au service de détail du journal des modifications

POSTla demande JSON pour récupérer un journal des modifications détaillé pour la modification correspondant à .transaction_id

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"
}
}