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.
Remarque
Ce service est actuellement disponible pour un ensemble limité de clients et d’employés Microsoft uniquement.
Pour prendre en charge la médiation des serveurs publicitaires mobiles, Xandr utilise un type de création à médiation. Contrairement aux créations standard, qui résident en tant que contenu statique sur un serveur, les créations médiatisées sont des conteneurs configurables qui récupèrent le contenu côté serveur. Le service de modèle de demande personnalisée créative est utilisé pour générer les requêtes qui remplissent ces créations médiatées. Pour ce faire, il gère un ensemble de modèles personnalisés, chacun correspondant à un serveur publicitaire différent et associé à un « type » de modèle défini par le service de type de modèle de demande personnalisée creative.
Ce document décrit les champs mis à disposition par ce service d’API, ainsi que des exemples d’utilisation. Consultez la section Exemples ci-dessous.
Remarque
Pour plus d’informations sur les créations médiatées, consultez Creative Service.
Pour obtenir la liste des macros et des paramètres de chaîne de requête pris en charge, consultez Paramètres du modèle de requête personnalisée creative.
API REST
Remarque
Ces informations sont destinées aux employés de Xandr. Si vous êtes un employé et un utilisateur administrateur, vos autorisations sont les suivantes :
- Les modèles globaux s’affichent.
- Vous pouvez afficher les modèles spécifiques aux membres en ajoutant
a =member_id=fieldà la chaîne de requête de votre requête.
Autorisations d’affichage de modèle :
Si vous êtes membre, vous serez en mesure d’afficher les modèles suivants :
- Modèles globaux (ceux qui appartiennent à
member_id=0). - Vos propres modèles, c’est-à-dire ceux associés à votre
member_id.
| HTTP, méthode | Endpoint | Description |
|---|---|---|
POST |
https://api.appnexus.com/creative-custom-request-template | Create un modèle de requête personnalisé. |
GET |
https://api.appnexus.com/creative-custom-request-template?id=123 | Afficher un modèle de demande personnalisé spécifique. |
GET |
- https://api.appnexus.com/creative-custom-request-template?member_id=0 - https://api.appnexus.com/creative-custom-request-template?member_id=YOUR_MEMBER_ID |
Affichez tous les modèles de requête personnalisés que vous avez l’autorisation d’afficher. |
PUT |
https://api.appnexus.com/creative-custom-request-template | Mettre à jour un modèle de requête personnalisé. |
DELETE |
https://api.appnexus.com/creative-custom-request-template?id=123 | Supprimer un modèle de requête personnalisé. |
GET |
https://api.appnexus.com/creative-custom-request-template/meta | Découvrez les champs que vous pouvez filtrer et trier. |
Champs JSON
| Nom | Type | Description |
|---|---|---|
macros |
tableau d’objets | Il s’agit des macros (ou paramètres de chaîne de requête) qui seront envoyées sur la requête. Consultez Macros. Trier par : Non Filtrer par : Non |
id |
int | ID de ce modèle. Obligatoire sur : PUT Trier par : Oui Filtrer par : Oui |
type_id |
int | ID du type de modèle de demande personnalisée creative associé à ce modèle. Par défaut: null Obligatoire sur : POST Trier par : Oui Filtrer par : Oui |
member_id |
int | ID de membre dont les créations de médiation seront associées à ce modèle. Pour plus d’informations, consultez Le service créatif et le service membre. Par défaut: 0 Trier par : Oui Filtrer par : Oui |
media_subtype_id |
int | ID de sous-type de média pour ce modèle. Dérivé de l’objet Media Subtype ci-dessous. Par défaut: nullTrier par : Oui Filtrer par : Oui |
hostname |
string | Nom d’hôte du serveur publicitaire pour lequel nous créons une demande de médiation. Par défaut: nullObligatoire sur : POST Trier par : Oui Filtrer par : Oui |
uri |
string | URI complet du serveur publicitaire externe auquel nous allons envoyer notre demande. Par défaut: nullObligatoire Sur : POST, PUT si is_client a la valeur false. Trier par : Oui Filtrer par : Oui |
port |
int | Port sur le serveur publicitaire externe auquel nous allons envoyer notre demande. Par défaut: 80Trier par : Oui Filtrer par : Oui |
is_post |
Valeur booléenne | Indique si la requête HTTP que nous effectuons est un POST.Par défaut: falseTrier par : Oui Filtrer par : Oui |
content |
string | Charge utile de contenu que nous envoyons avec la requête. Par exemple, il peut s’agir d’une chaîne JSON ou XML. Par défaut: nullTrier par : Oui Filtrer par : Oui |
timeout_ms |
int | Délai d’expiration pris en charge par ce serveur publicitaire (ou le délai d’expiration que nous allons imposer en attendant ce serveur publicitaire). Par défaut: 0Trier par : Oui Filtrer par : Oui |
is_client |
Valeur booléenne | Indique si la requête provient d’un client HTTP (par exemple, un Kit de développement logiciel (SDK). Par défaut: falseTrier par : Oui Filtrer par : Oui |
media_subtype |
tableau | Style d’affichage des créatifs qui peuvent utiliser ce modèle. Chaque sous-type de média appartient à un type de média surordinate. Par exemple, le sous-type de média « Bannière standard » appartient au type de média « Bannière ». Pour plus d’informations, consultez Sous-type de média ci-dessous. Trier par : Non Filtrer par : Non |
last_modified |
date | Date et heure de la dernière mise à jour de cet objet. Trier par : Oui Filtrer par : Oui |
Macros
| Nom | Type | Description |
|---|---|---|
id |
int | ID de cette macro. Par défaut: null Trier par : Oui Filtrer par : Oui |
template_id |
int | Modèle de demande personnalisée créative à laquelle cette macro est associée. Par défaut: nullTrier par : Oui Filtrer par : Oui |
code |
string | Paramètre de chaîne de requête qui sera intégré à l’URL, par exemple. send_refererTrier par : Oui Filtrer par : Oui |
name |
string | Description de ce que fait la macro, par exemple, « Basculez si le referer doit être envoyé ». Trier par : Oui Filtrer par : Oui |
type |
chaîne | Type de valeur accepté par le paramètre. Note: La valeur par défaut de "string" est également la plus courante. Les valeurs autorisées sont notamment les suivantes :- true_false- string- url- integer- decimal- string_list- select_from_listPar défaut: stringTrier par : Oui Filtrer par : Oui |
is_required |
Valeur booléenne | Indique si cette macro est requise dans un appel au serveur publicitaire externe. Par défaut: trueTrier par : Oui Filtrer par : Oui |
last_modified |
date | Date et heure de la dernière mise à jour de cet objet de macro. Trier par : Oui Filtrer par : Oui |
Sous-type de média
Vous pouvez utiliser le service de sous-type multimédia et le service de type de média pour afficher tous les sous-types de médias pris en charge et les types de médias auxquels ils appartiennent. Pour obtenir une définition générale de chaque type de média pris en charge, consultez Types de médias pris en charge.
| Champ | Type | Description |
|---|---|---|
id |
int | ID du sous-type de média. |
name |
chaîne | En lecture seule. Nom du sous-type de média. |
media_type_name |
chaîne | En lecture seule. Nom du type de média auquel appartient le sous-type. |
mediatype_id |
int | En lecture seule. ID du type de média auquel appartient le sous-type. |
Exemples
Afficher tous les modèles de demande de création (que vous avez les autorisations nécessaires pour afficher)
Dans l’exemple ci-dessous, notez la différence entre la façon dont les macros Xandr standard sont affichées dans le uri champ, par exemple, * $\{USER_IP\} et la façon dont les macros personnalisées définies par serveur ad-server par ce service sont affichées : * \#\{MK_SITEID\}. Vous pouvez voir les définitions de chaque macro dans le macros tableau d’objets ci-dessous. Vous pouvez uniquement afficher les modèles de demande appartenant à votre propre ID de membre ou les modèles publics appartenant à l’ID de 0membre .
{code}
$ curl -b cookies https://api.appnexus.com/creative-custom-request-template?member_id=0
{
"response": {
"status": "OK",
"count": 4,
"start_element": 0,
"num_elements": 100,
"creative-custom-request-templates": [
{
"id": 1,
"type_id": 2,
"member_id": 0,
"media_subtype_id": 1,
"hostname": "w.inmobi.com",
"uri": "/showad.asm?mk-siteid=#{MK_SITEID}&mk-carrier=${USER_IP}&h-user-agent=${USER_AGENT_ENC}&h-referer=${REFERER_URL_ENC}&u-id-map=${INMOBI_UID_MAP}&u-latlong-accu=${INMOBI_LAT_LONG_ACCU}&u-age=${AGE}&u-gender=${GENDER}&d-localization=${USER_LOCALE}&d-nettype=${INMOBI_NETTYPE}&d-orientation=${INMOBI_ORIENTATION}",
"port": 80,
"is_post": false,
"content": "",
"timeout_ms": 200,
"is_client": false,
"last_modified": "2013-07-10 19:27:41",
"media_subtype": {
"id": 1,
"name": "Standard Banner",
"media_type_name": "Banner",
"mediatype_id": 1
},
"macros": [
{
"id": 1,
"template_id": 1,
"code": "MK_SITEID",
"name": "MK_SITEID",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:27:41"
}
]
},
{
"id": 2,
"type_id": 3,
"member_id": 0,
"media_subtype_id": 1,
"hostname": "ads.mydas.mobi",
"uri": "/getAd?apid=#{APID}&auid=${DEVICE_MD5}&ua=${USER_AGENT_ENC}&uip=${USER_IP}&age=${AGE}&gender=${GENDER}&zip=${POSTAL_CODE}&lat=${GEO_LAT}&long=${GEO_LON}",
"port": 80,
"is_post": false,
"content": "",
"timeout_ms": 200,
"is_client": false,
"last_modified": "2013-07-10 19:27:50",
"macros": [
{
"id": 2,
"template_id": 2,
"code": "APID",
"name": "APID",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:27:50"
}
]
},
{
"id": 3,
"type_id": 4,
"member_id": 0,
"media_subtype_id": 5,
"hostname": "ads.mojiva.com",
"uri": "/ad?zone=#{ZONE}&ip=${USER_IP}&ua=${USER_AGENT_ENC}&url=${REFERER_URL_ENC}&udid=${DEVICE_MD5}&lat=${GEO_LAT}&long=${GEO_LON}&country=${USER_COUNTRY}®ion=${USER_STATE}&city=${USER_CITY}&dma=${USER_DMA}&zip=${POSTAL_CODE}",
"port": 80,
"is_post": false,
"content": "",
"timeout_ms": 200,
"is_client": false,
"media_subtype": {
"id": 1,
"name": "Standard Banner",
"media_type_name": "Banner",
"media_type_id": 1
},
"last_modified": "2013-07-10 19:28:00",
"macros": [
{
"id": 3,
"template_id": 3,
"code": "ZONE",
"name": "ZONE",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:28:00"
}
]
},
{
"id": 4,
"type_id": 5,
"member_id": 0,
"media_subtype_id": 5,
"hostname": "a.jumptap.com",
"uri": "/a/ads?hid_sha1=${DEVICE_SHA1}&idfa=${DEVICE_APPLE_IDA}&pub=#{PUB}&site=#{SITE}&spot=#{SPOT}&url=${REFERER_URL_ENC}&ua=${USER_AGENT_ENC}&client-ip=${USER_IP}&country=${USER_COUNTRY}&ll=${JUMPTAP_LAT_LONG_ENC}&mt-age=${AGE}&mt-gender=${GENDER}",
"port": 80,
"is_post": false,
"content": "",
"timeout_ms": 200,
"is_client": false,
"media_subtype": {
"id": 5,
"name": "Interstitial",
"media_type_name": "Interstitial",
"media_type_id": 3
},
"last_modified": "2013-07-10 19:28:10",
"macros": [
{
"id": 4,
"template_id": 4,
"code": "PUB",
"name": "PUB",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:28:10"
},
{
"id": 5,
"template_id": 4,
"code": "SITE",
"name": "SITE",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:28:10"
},
{
"id": 6,
"template_id": 4,
"code": "SPOT",
"name": "SPOT",
"type": "string",
"is_required": true,
"last_modified": "2013-07-10 19:28:10"
}
]
}
],
"dbg_info": {
"instance": "28.bm-hbapi.prod.nym1",
"s1ave_hit": true,
"db": "141.bm-mysql.prod.nym1",
"reads": 1,
"read_limit": 100,
"read_limit_seconds": 60,
"writes": 0,
"write_limit": 60,
"write_limit_seconds": 60,
"awesomesauce_cache_used": false,
"count_cache_used": false,
"warnings": [],
"time": 66.461801528931,
"start_microtime": 1373651335.4519,
"version": "1.13.52",
"s1ave_lag": 1,
"member_last_modified_age": 68896
}
}
}
{code}
Afficher un seul modèle de demande personnalisée créative
{code}
$ curl -b cookies https://api.appnexus.com/creative-custom-request-template?id=2
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"creative-custom-request-template": {
"id": 2,
"type_id": 3,
"member_id": 0,
"media_subtype_id": 1,
"hostname": "ads.mydas.mobi",
"uri": "/getAd?apid=#{APID}&auid=${DEVICE_MD5}&ua=${USER_AGENT_ENC}&uip=${USER_IP}&age=${AGE}&gender=${GENDER}&zip=${POSTAL_CODE}&lat=${GEO_LAT}&long=${GEO_LON}",
"port": 80,
"is_post": false,
"content": "",
"timeout_ms": 200,
"is_client": false,
"media_subtype": {
"id": 1,
"name": "Standard Banner",
"media_type_name": "Banner",
"media_type_id": 1
},
"last_modified": "2013-07-10 18:57:43",
"macros": [
{
"id": 2,
"template_id": 2,
"code": "APID",
"name": "APID",
"type": "string",
"is_required": true,
"last_modified": "2013-07-02 00:50:53"
}
]
},
"dbg_info": {
"instance": "05.hbapi.sand-08.lax1",
"s1ave_hit": false,
"db": "master",
"awesomesauce_cache_used": false,
"count_cache_used": false,
"warnings": [],
"time": 68.688154220581,
"start_microtime": 1373910064.7161,
"version": "1.13.53.1",
"s1ave_miss": "no_service_index",
"s1ave_lag": 0,
"member_last_modified_age": 1373910064
}
}
}
{code}
Create un modèle de requête
Create un fichier JSON spécifiant les champs de votre modèle de requête.
Remarque
Le type_id champ est obligatoire sur POST.
Pour plus d’informations sur les types de modèles de requête, consultez le service De type de modèle de demande personnalisée creative. Pour obtenir de la documentation sur les macros et paramètres de demande d’annonces que nous prenons en charge pour l’intégration avec des serveurs ad mobiles externes, consultez Paramètres du modèle de demande personnalisée creative.
{code}
$ cat create.json
{
"creative-custom-request-template": {
"hostname": "ads.light-vs-wily.com",
"uri": "/a/ads?hid_sha1=${DEVICE_SHA1}&idfa=${DEVICE_APPLE_IDA}&enemy=#{ENEMY}&light_or_wily=#{LIGHT_OR_WILY}&megaman_version=#{MEGAMAN_VERSION}&url=${REFERER_URL_ENC}&ua=${USER_AGENT_ENC}&client-ip=${USER_IP}&country=${USER_COUNTRY}&ll=${JUMPTAP_LAT_LONG_ENC}&mt-age=${AGE}&mt-gender=${GENDER}",
"port": 49995,
"is_post": false,
"content": "",
"timeout_ms": 2,
"is_client": false,
"type_id": 1
}
}
{code}
Effectuez un POST appel à l’API avec la charge utile JSON incluse.
{code}
$ curl -b cookies -X POST -d @create.json https://api.appnexus.com/creative-custom-request-template
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"creative-custom-request-template": {
"id": 13,
"type_id": 1,
"member_id": 0,
"media_subtype_id": 1,
"hostname": "ads.light-vs-wily.com",
"uri": "/a/ads?hid_sha1=${DEVICE_SHA1}&idfa=${DEVICE_APPLE_IDA}&enemy=#{ENEMY}&light_or_wily=#{LIGHT_OR_WILY}&megaman_version=#{MEGAMAN_VERSION}&url=${REFERER_URL_ENC}&ua=${USER_AGENT_ENC}&client-ip=${USER_IP}&country=${USER_COUNTRY}&ll=${JUMPTAP_LAT_LONG_ENC}&mt-age=${AGE}&mt-gender=${GENDER}",
"port": 49995,
"is_post": false,
"content": "",
"timeout_ms": 2,
"is_client": false,
"media_subtype": {
"id": 1,
"name": "Standard Banner",
"media_type_name": "Banner",
"media_type_id": 1
},
"last_modified": "2013-07-15 19:02:02",
"macros": ""
},
"dbg_info": {
"instance": "07.hbapi.sand-08.lax1",
"s1ave_hit": false,
"db": "master",
"awesomesauce_cache_used": false,
"count_cache_used": false,
"warnings": [],
"time": 67.02995300293,
"start_microtime": 1373914957.1776,
"version": "1.13.53.1",
"s1ave_miss": "no_service_index",
"s1ave_lag": 0,
"member_last_modified_age": 1373914957
}
}
}
{code}
Mettre à jour un modèle de requête
Tout d’abord, créez un fichier JSON avec uniquement les paramètres que vous souhaitez mettre à jour.
Remarque
Vous devez inclure le id du modèle de requête en cours de mise à jour.
{code}
$ cat update.json
{"creative-custom-request-template":{"id":13, "type_id":2, "timeout_ms":250}}
{code}
Effectuez l’appel PUT , y compris la mise à jour JSON.
Remarque
Pour réussir un PUT appel, vous devez effectuer les opérations suivantes :
- Spécifier l’ID du modèle de requête dans le fichier JSON
- N’ajoutez aucun paramètre de chaîne de requête (comme
?id=123) à votre requête (voir l’exemple ci-dessous).
{code}
$ curl -b cookies -X PUT -d @update.json https://api.appnexus.com/creative-custom-request-template
{code}
Remarque
Un appel réussi PUT ne retourne aucune réponse JSON.
Supprimer un modèle de demande
La suppression d’un modèle de demande est simple, contrairement à l’appel PUT ci-dessus, vous devez spécifier l’ID du modèle que vous souhaitez supprimer.
{code}
$ curl -b cookies -X DELETE https://api.appnexus.com/creative-custom-request-template?id=123
{code}