Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Comme décrit dans ce document, l’ajout de votre fichier de segment au système est un processus en plusieurs étapes.
- Étape 1 : Formatez votre fichier de données pour le chargement.
- Étape 2 : Demander une URL de chargement et un ID de travail.
- Étape 3 : Publier le fichier dans l’URL de chargement.
- Étape 4 : Vérifiez le status du travail.
Remarque
Les fichiers sont limités à 1 800 segments sur une ligne individuelle. Si vous avez plus de 1 800 segments pour un utilisateur, vous devez diviser cette ligne en plusieurs lignes.
Mettre en forme votre fichier de données pour le chargement
Vous avez deux options lors de la création d’un fichier de données pour BSS : le format de fichier BSS hérité et le format de fichier BSS Avro préféré, plus récent, qui utilise un schéma autodéfini et prend en charge un plus large éventail d’ID au-delà des cookies tiers.
Notez que votre fichier de données doit répondre aux exigences suivantes :
- Utilise le jeu de caractères Latin1.
- Est un maximum de 0,5 Go.
Demander une URL de chargement et un ID de travail
Chaque fichier de données de segment chargé doit être associé à un ID de travail particulier. Cet ID est utilisé pour créer l’URL de chargement et suivre les status de traitement du fichier. La première étape consiste à envoyer une requête vide POST au service.
Ce service fonctionne à la fois https://api.appnexus.com/ pour et pour https://api.adnxs.com/. Il est disponible pour les connexions du soumissionnaire et de l’interface utilisateur.
$ 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": {
...
}
}
}
POST fichier vers l’URL de chargement
L’URL de chargement du fichier est indiquée dans la réponse JSON de l’étape 1 par le champ upload_url: Vous allez POST votre fichier segmenté vers cette URL pour traitement. Gardez à l’esprit les recommandations suivantes :
- Ne codez pas en dur l’URL de chargement dans votre application. Veillez à le saisir dynamiquement à partir du
upload_urlchamp. - Vous devez commencer votre chargement vers l’URL de chargement donnée dans les cinq (5) minutes, et une seule URL est valide à un moment donné. Si vous attendez plus de 5 minutes pour démarrer votre chargement, vous devez demander une nouvelle URL.
- Nous vous recommandons de ne pas dépasser un chargement par minute. Si vous avez plus de 200 travaux en attente d’être traités à un moment donné, il vous sera interdit de charger des travaux supplémentaires.
Avertissement
Pour charger correctement le fichier, vous devez spécifier le type MIME dans l’en-tête HTTP en tant que "Content-Type: application/octet-stream". N’utilisez "Content-Type: application/x-www-form-urlencode" pas ( -d or --data flags in curl). L’utilisation d’un type MIME incorrect empêche le traitement du fichier.
$ 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"}}
Exemple d’URL de chargement SSL
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"
}
Vérifier la status du travail
Enfin, case activée le status de traitement en envoyant une GET requête avec le job_id retourné à l’étape 2 ou 3. La réponse JSON contient des informations telles que la durée de traitement du fichier et le nombre d’erreurs, le cas échéant. Notez que vous devez attendre avant phase="completed" d’examiner les champs de résultats tels que num_valid. Pour plus d’informations, consultez Résolution des problèmes liés aux chargements BSS.
Selon le contrat SLA Xandr, attendez jusqu’à 24 heures pour que le fichier soit traité.
Remarque
Si vous êtes un fournisseur de données utilisant l’API Impbus, notez que le batch_segment_upload_job champ est un tableau contenant un seul objet. Par exemple :
{"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
}
}