Partager via


API de plateforme numérique - Service de modèles créatifs

La plateforme Xandr catégorise les créations par format, type de média et sous-type de média. Le format définit le type de ressource des créations (flash, image, etc.) ; le type de média définit le style d’affichage général des éléments créatifs (bannière, extensible, vidéo, etc.) ; et le sous-type multimédia définit le style d’affichage spécifique des créatifs (bannière standard, mediamind extensible, STANDARD VAST, etc.).

Modèles standard

Pour chaque combinaison de format, de type de média et de sous-type de média, Xandr fournit un modèle créatif standard qui garantit un rendu correct sur les pages web lorsque les créations sont servies. Vous ne pouvez pas modifier ces modèles, mais le service de modèles créatifs vous permet de les afficher et d’examiner leur code de rendu.

Modèles personnalisés

Si vous souhaitez personnaliser la façon dont certains types de créations s’affichent, vous pouvez créer vos propres modèles. Avec les modèles personnalisés, vous avez un contrôle total du code de rendu JavaScript, HTML ou XML, et vous pouvez définir des macros pour inviter vos trafiquants à entrer des informations et à prendre des décisions sur le comportement des créatifs lorsqu’ils sont chargés.

Remarque

Vous pouvez avoir jusqu’à 100 modèles personnalisés. Toutefois, Xandr ne prend pas en charge les créations qui ne s’affichent pas correctement en raison d’erreurs dans le code de modèle personnalisé.

API REST

HTTP, méthode Endpoint Description
GET https://api.appnexus.com/template Afficher tous les modèles (standard et personnalisé).
GET https://api.appnexus.com/template?member_id=null Afficher uniquement les modèles standard.
GET https://api.appnexus.com/template?id=TEMPLATE_ID Afficher un modèle spécifique.
POST https://api.appnexus.com/template
(modèle JSON)
Ajoutez un nouveau modèle personnalisé.
PUT https://api.appnexus.com/template?id=TEMPLATE_ID
(modèle JSON)

Avertissement :
Lorsque vous modifiez un modèle personnalisé, vos modifications affectent immédiatement toutes les créations qui utilisent déjà le modèle. Si vos modifications entraînent l’arrêt du rendu correct de ces éléments créatifs, leur status d’audit sera remplacé par « rejeté » et ils cesseront de servir sur la plupart des inventaires tiers.
Modifier un modèle personnalisé.
DELETE https://api.appnexus.com/template?id=TEMPLATE_ID

Remarque :
Vous ne pouvez pas supprimer un modèle personnalisé utilisé par un ou plusieurs créateurs, mais vous pouvez archiver le modèle pour empêcher les futurs créatifs de l’utiliser. Pour plus d’informations, consultez l’exemple d’archivage d’un modèle personnalisé ci-dessous.
Supprimer un modèle personnalisé.

Création d’un modèle personnalisé (iPhone uniquement)

Cette fonctionnalité permet à une publicité de télécharger une application spécifique à partir d’iTunes. Un « lien direct » ne fonctionnera pas dans l’iPhone en raison de la sécurité. Par conséquent, il ne peut pas accéder directement à la bibliothèque d’étiquettes vendeurs (AST). Au lieu de cela, nous soulevons un événement.

Avertissement

L’utilisateur doit avoir une certaine connaissance de la création de modèles et de macros personnalisés.

Pour ce faire :

Create un placement qui a un élément créatif par défaut qui utilise un modèle. Cette liste répertorie les modèles auquel le membre a accès. Il existe un ensemble de modèles créatifs Xandr qui ne sont pas des modèles standard. Cette situation nécessite un modèle personnalisé.

Le modèle doit être associé au créatif par défaut. Lorsque ce créatif est sélectionné, il trouve ce modèle. Il envoie une fonction JavaScript supplémentaire, ainsi que le créatif. Il appelle cette fonction, puis envoie cet événement à la bibliothèque Seller Tag. Cela ouvre l’App Store iTunes à partir du cadre de page main, où la bibliothèque Seller Tag est en cours d’exécution.

Résumant:

  1. Le modèle accepte une urI.
  2. Il envoie un événement à la bibliothèque d’étiquettes vendeurs.
  3. Seller Tag core dispose d’un écouteur pour cet événement personnalisé et lance iTunes.
  4. Nous transmettons ce nom d’événement et l’URL de l’App Store que nous voulons ouvrir. L’URL vous dirige vers la ressource spécifique dans l’App Store iTunes.

Exemple de modèle

function iTunesClick(url)
{window.parent.document.dispatchEvent(new CustomEvent('apntag_iTunesLaunch', {
detail: { url: url }})); }
document.write('<a
href="#"
onclick="iTunesClick(\\\'${CLICK_URL}\\\');"><img
width="${CREATIVE_WIDTH}" height="${CREATIVE_HEIGHT}"
style="border-style: none" src="${MEDIA_URL}"/></a>');

Champs JSON

Champ Type Description
id int ID du modèle créatif.
Obligatoire On :PUT/DELETE, dans la chaîne de requête.
name string (30) Nom du modèle créatif.
Obligatoire sur :POST
description string Description du modèle créatif.
member_id int ID du membre propriétaire du modèle. Pour les modèles Xandr standard, il s’agit de null.
En lecture seule.
ad_type string Remarque :
Ce champ s’applique uniquement lorsque vous associez des éléments créatifs à des éléments de ligne augmentée.
Type de création utilisé. Valeurs possibles :
- "banner"
- "video" (inclut les types audio)
- "native"
Cette valeur détermine la façon dont les articles aux enchères sont suivis pour la stratégie d’achat, la stratégie de paiement, les options d’optimisation, l’association créative et les options de ciblage de l’article.

Remarque :
Toutes les créations associées à un élément de ligne doivent avoir le même type d’annonce, qui doit correspondre au ad_type sélectionné dans le service d’élément de ligne - ALI.
media_subtype objet 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 "Standard Banner" sous-type multimédia appartient au "Banner" type de média. Pour plus d’informations, consultez Sous-type de média ci-dessous.
Obligatoire sur :POST
format objet Format des créations qui peuvent utiliser ce modèle, par exemple ou "image""flash". Pour plus d’informations, consultez Format ci-dessous.
Obligatoire sur :POST
is_default valeur booléenne Si truela valeur est , le modèle est automatiquement affecté aux éléments créatifs qui correspondent au type de média, au sous-type de média et au format du modèle. Lorsque les créations sont chargées, cette affectation par défaut peut être remplacée, si nécessaire. Notez qu’il ne peut y avoir qu’un seul modèle créatif par défaut par type de média, sous-type de média et combinaison de format.
Par défaut:false
is_archived valeur booléenne Si truela valeur est , le modèle est archivé. L’archivage d’un modèle empêche les futurs créatifs d’utiliser le modèle, mais n’affecte pas les créatifs qui utilisent déjà le modèle.
Par défaut:false
content_js chaîne Code de rendu du modèle en JavaScript. Le code peut inclure des macros Xandr standard et vos propres macros personnalisées. Les macros Xandr doivent commencer par le symbole $ et les macros personnalisées doivent commencer par le symbole # . Chaque macro personnalisée doit être définie dans le macros tableau.
Obligatoire On :POST, si content_html et content_xml ne sont pas fournis.
content_html string Code de rendu du modèle en HTML. Le code peut inclure des macros Xandr standard et vos propres macros personnalisées. Les macros Xandr doivent commencer par le symbole $ et les macros personnalisées doivent commencer par le symbole # . Chaque macro personnalisée doit être définie dans le macros tableau.
Obligatoire On :POST, si content_js et content_xml ne sont pas fournis.
content_xml string Déconseillé (à compter du 17 octobre 2016).
callback_content_html string Lorsque media_subtype est "Popup" ou "Popunder", content_js définit le code de rendu de la fenêtre contextuelle, et ce champ définit le code de rendu pour le contenu de la fenêtre contextuelle.
macros tableau d’objets Macros personnalisées utilisées dans les content_jschamps , content_htmlou content_xml . Vous pouvez inclure jusqu’à 20 macros personnalisées dans un modèle. Pour plus d’informations, consultez Macros personnalisées ci-dessous.
last_modified Timestamp Date et heure de la dernière modification du modèle créatif.
En lecture seule.

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.

Champ Type Description
id int ID du sous-type de média.
Obligatoire sur :POST
name string Nom du sous-type de média.
En lecture seule.
mediatype_id int ID du type de média auquel appartient le sous-type.
En lecture seule.
media_type_name string Nom du type de média auquel appartient le sous-type.
En lecture seule.

Format

Vous pouvez utiliser le service De format créatif pour afficher tous les formats créatifs pris en charge.

Champ Type Description Filtrer par ? Trier par ?
id int ID du format créatif.
Obligatoire sur :POST
Oui Oui
name chaîne Nom du format créatif.
En lecture seule.
Oui Oui

Macros personnalisées

Vous devez définir chaque macro personnalisée utilisée dans le content_jschamp , content_htmlou content_xml .

Champ Type (Longueur) Description
code string (30) Nom de macro exactement tel qu’il est utilisé dans le content_jschamp , content_htmlou content_xml . Par exemple, si #{BORDER_SIZE} est la macro dans le content_js champ, vous devez passer « BORDER_SIZE » ici.
Obligatoire sur :POST
name string (50) Nom convivial de cette macro que les trafiquants verront lorsqu’ils ajouteront des créations qui utilisent ce modèle via l’interface utilisateur.
Obligatoire sur :POST
type enum Type de valeur que les trafiquants fournissent pour cette macro lorsqu’ils ajoutent des créations qui utilisent ce modèle via le service créatif ou l’interface utilisateur. Valeurs possibles : "true/false", "string", "url", "integer""decimal", "string_list", "select_from_list" et "file". Par exemple, dans l’interface utilisateur, si vous définissez cette valeur sur "true/false", les trafiquants verront le nom de la macro suivi d’une zone de case activée.
Obligatoire sur :POST
is_required valeur booléenne Si truela valeur est , les trafiquants doivent fournir une valeur pour la macro lors de l’ajout de créations qui utilisent ce modèle.
Obligatoire sur :POST
default_value string Si is_required a falsela valeur , il s’agit de la valeur par défaut qui sera utilisée lorsque les trafiquants ne fournissent pas de valeur pour la macro lors de l’ajout de créations qui utilisent ce modèle.
Obligatoire Sur :POST, si is_required a la valeur false.
other_data string Valeurs acceptées pour la macro, si type a la valeur "string_list" ou "select_from_list".

Exemples

Afficher tous les modèles créatifs

{code}
$ curl -b cookies -c cookies 'https://api.appnexus.com/template'

{
    "response": {
        "status": "OK",
        "count": 74,
        "start_element": 0,
        "num_elements": 100,
        "templates": [
            {
                "id": 1,
                "name": "Standard",
                "description": null,
                "last_modified": "2012-02-20 21:36:13",
                "is_archived": false,
                "member_id": null,
                "is_default": true,
                "content_html": "<iframe frameborder=\"0\" width=\"${CREATIVE_WIDTH}\" height=\"
                 ${CREATIVE_HEIGHT}\"marginheight=\"0\" marginwidth=\"0\" target=\"_blank\"
                 scrolling=\"no\" src=\"${MEDIA_URL}\"></iframe>",
                "content_js": "document.write('<iframe frameborder=\"0\" width=\"${CREATIVE_WIDTH}\"
                 height=\"${CREATIVE_HEIGHT}\" marginheight=\"0\" marginwidth=\"0\" target=\"_blank\"
                 scrolling=\"no\" src=\"${MEDIA_URL}\"> </iframe>');",
                "content_xml": null,
                "callback_content_html": null,
                "media_subtype": {
                    "id": 1,
                    "name": "Standard Banner",
                    "media_type_name": "Banner",
                    "media_type_id": 1
                },
                "format": {
                    "id": 1,
                    "name": "url-html"
                },
                "macros": null
            },
            {
                "id": 2,
                "name": "Standard",
                "description": null,
                "last_modified": "2012-01-31 14:33:37",
                "is_archived": false,
                "member_id": null,
                "is_default": true,
                "content_html": "<html><body style=\"margin-left: 0%; margin-right: 0%; margin-top:
                 0%; margin-bottom: 0%\"><script type=\"text/javascript\" src=\"${MEDIA_URL}\">
                 </script></body></html>",
                "content_js": "document.write('<script type=\"text/javascript\" src=\"${MEDIA_URL}\">
                 </scr'+'ipt>');",
                "content_xml": null,
                "callback_content_html": null,
                "media_subtype": {
                    "id": 1,
                    "name": "Standard Banner",
                    "media_type_name": "Banner",
                    "media_type_id": 1
                },
                "format": {
                    "id": 2,
                    "name": "url-js"
                },
                "macros": null
            },
            {
                "id": 3,
                "name": "Standard",
                "description": null,
                "last_modified": "2012-01-31 14:33:37",
                "is_archived": false,
                "member_id": null,
                "is_default": true,
                "content_html": "\u000a<html><body style=\"margin-left: 0%; margin-right: 0%; margin-top:
                 0%;margin-bottom: 0%\"><script type=\"text/javascript\">\u000a<!--\u000a(function()\u000a\
                 u0009{\u000a\u0009var flashAd='<OBJECT id=\"${AUCTION_ID}\" data=\"${MEDIA_URL}\" classid=
                 \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=\"${CREATIVE_WIDTH}\" HEIGHT=\
                 "${CREATIVE_HEIGHT}\"flashvars=\"${FLASHVARS}\"><PARAM NAME=movie VALUE=\"${MEDIA_URL}\">
                 <PARAM NAME=loop VALUE=true><PARAM NAME=menu VALUE=false><PARAM NAME=quality VALUE=high>
                 <PARAM NAME=wmode VALUE=\"opaque\"><PARAM NAME=bgcolor VALUE=#FFFFFF><PARAM NAME=
                 allowscriptaccess VALUE=always><PARAM NAME=flashvarsVALUE=\"${FLASHVARS}\"><OBJECT TYPE=\
                 "application/x-shockwave-flash\" data=\"${MEDIA_URL}?${FLASHVARS}\"
                 ..."
                "content_js": "(function()\u000a\u0009{\u000a\u0009var flashAd='<OBJECT id=\"${AUCTION_ID}\"
                 data=\"${MEDIA_URL}\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=
                 \"${CREATIVE_WIDTH}\"HEIGHT=\"${CREATIVE_HEIGHT}\" flashvars=\"${FLASHVARS}\"><PARAM NAME=movie
                 VALUE=\"${MEDIA_URL}\"><PARAM NAME=loop VALUE=true><PARAM NAME=menu VALUE=false><PARAM NAME=
                 quality VALUE=high><PARAM NAME=wmode VALUE=\"opaque\"><PARAM NAME=bgcolor VALUE=#FFFFFF>
                 <PARAM NAME=allowscriptaccess VALUE=always><PARAM NAME=flashvars VALUE=\"${FLASHVARS}\">
                 <OBJECT TYPE=\"application/x-shockwave-flash\" data=\"${MEDIA_URL}? ${FLASHVARS}\" width=\
                 "${CREATIVE_WIDTH}\" height=\"${CREATIVE_HEIGHT}\" wmode=\"opaque\" allowscriptaccess=
                 \"always\"></OBJECT></OBJECT>';\u000a\u0009var flashBackupUrl='${FLASH_BACKUP_URL}';\u000a\
                 u0009varalternate = '';\u000a\u0009if (flashBackupUrl)\u000a\u0009{\u000a\u0009\u0009alternate=
                 '<a href=\"${CLICK_URL}\" target=\"_blank\">\"<img width=\"${CREATIVE_WIDTH}\" height=
                 ..."
                "content_xml": null,
                "callback_content_html": null,
                "media_subtype": {
                    "id": 1,
                    "name": "Standard Banner",
                    "media_type_name": "Banner",
                    "media_type_id": 1
                },
                "format": {
                    "id": 3,
                    "name": "flash"
                },
                "macros": null
            },
            {
                "id": 4,
                "name": "Standard",
                "description": null,
                "last_modified": "2012-01-31 14:33:37",
                "is_archived": false,
                "member_id": null,
                "is_default": true,
                "content_html": "<a href=\"${CLICK_URL}\" target=\"_blank\"><img width=\"${CREATIVE_WIDTH}
                 \" height=\"${CREATIVE_HEIGHT}\" style=\"border-style: none\" src=\"${MEDIA_URL}\"/></a>",
                "content_js": "document.write('<a href=\"${CLICK_URL}\" target=\"_blank\"><img width=
                 \"${CREATIVE_WIDTH}\" height=\"${CREATIVE_HEIGHT}\" style=\"border-style: none\" src=
                 \"${MEDIA_URL}\"/></a>');",
                "content_xml": null,
                "callback_content_html": null,
                "media_subtype": {
                    "id": 1,
                    "name": "Standard Banner",
                    "media_type_name": "Banner",
                    "media_type_id": 1
                },
                "format": {
                    "id": 4,
                    "name": "image"
                },
                "macros": null
            },
            ...
        ]
    }
}
{code}

Afficher un modèle créatif spécifique

Dans cet exemple, la demande obtient des détails sur le modèle standard Xandr pour le rendu des créations du type "Banner"de média , du sous-type "Standard Banner"multimédia et du format "flash".

{code}
$ curl -b cookies -c cookies 'https://api.appnexus.com/template?id=3'

{
    "response": {
        "status": "OK",
        "count": 1,
        "start_element": null,
        "num_elements": null,
        "template": {
            "id": 3,
            "name": "Standard",
            "description": null,
            "last_modified": "2012-01-31 14:33:37",
            "is_archived": false,
            "member_id": null,
            "is_default": true,
            "content_html": "\u000a<html><body style=\"margin-left: 0%; margin-right: 0%; margin-top:
             0%;margin-bottom: 0%\"><script type=\"text/javascript\">\u000a<!--\u000a(function()\u000a\
             u0009{\u000a\u0009var flashAd='<OBJECT id=\"${AUCTION_ID}\" data=\"${MEDIA_URL}\" classid=
             \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=\"${CREATIVE_WIDTH}\" HEIGHT=\
             "${CREATIVE_HEIGHT}\"flashvars=\"${FLASHVARS}\"><PARAM NAME=movie VALUE=\"${MEDIA_URL}\">
             <PARAM NAME=loop VALUE=true><PARAM NAME=menu VALUE=false><PARAM NAME=quality VALUE=high>
             <PARAM NAME=wmode VALUE=\"opaque\"><PARAM NAME=bgcolor VALUE=#FFFFFF><PARAM NAME=
             allowscriptaccess VALUE=always><PARAM NAME=flashvarsVALUE=\"${FLASHVARS}\"><OBJECT TYPE=\
             "application/x-shockwave-flash\" data=\"${MEDIA_URL}?${FLASHVARS}\"
             ..."
            "content_js": "(function()\u000a\u0009{\u000a\u0009var flashAd='<OBJECT id=\"${AUCTION_ID}\"
             data=\"${MEDIA_URL}\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=
             \"${CREATIVE_WIDTH}\"HEIGHT=\"${CREATIVE_HEIGHT}\" flashvars=\"${FLASHVARS}\"><PARAM NAME=movie
             VALUE=\"${MEDIA_URL}\"><PARAM NAME=loop VALUE=true><PARAM NAME=menu VALUE=false><PARAM NAME=
             quality VALUE=high><PARAM NAME=wmode VALUE=\"opaque\"><PARAM NAME=bgcolor VALUE=#FFFFFF>
             <PARAM NAME=allowscriptaccess VALUE=always><PARAM NAME=flashvars VALUE=\"${FLASHVARS}\">
             <OBJECT TYPE=\"application/x-shockwave-flash\" data=\"${MEDIA_URL}? ${FLASHVARS}\" width=\
             "${CREATIVE_WIDTH}\" height=\"${CREATIVE_HEIGHT}\" wmode=\"opaque\" allowscriptaccess=
             \"always\"></OBJECT></OBJECT>';\u000a\u0009var flashBackupUrl='${FLASH_BACKUP_URL}';\u000a\
             u0009varalternate = '';\u000a\u0009if (flashBackupUrl)\u000a\u0009{\u000a\u0009\u0009alternate=
             '<a href=\"${CLICK_URL}\" target=\"_blank\">\"<img width=\"${CREATIVE_WIDTH}\" height=
             ..."
            "content_xml": null,
            "callback_content_html": null,
            "media_subtype": {
                "id": 1,
                "name": "Standard Banner",
                "media_type_name": "Banner",
                "media_type_id": 1
            },
            "format": {
                "id": 3,
                "name": "flash"
            },
            "macros": null
        }
    }
}
{code} 

Ajouter un modèle personnalisé

Dans cet exemple, la POST demande crée un modèle créatif personnalisé pour le rendu des images de bannière standard avec une bordure. Le modèle contient deux macros personnalisées pour définir la taille et la couleur de bordure.

{code}$ cat template

{
    "template": {
        "name": "Image with border",
        "media_subtype":
            {
                "id": 1
            },
        "format":
            {
                "id": 4
            },
        "content_js": "document.write('<a href=${CLICK_URL}><img src=${MEDIA_URL} border=#{BORDER_SIZE}
         border_color=#{BORDER_COLOR}></img></a>');",
        "macros":[
            {
                "code": "BORDER_SIZE",
                "name": "Image Border Size",
                "type": "integer",
                "is_required": false,
                "default_value": "4"
            },
            {
                "code": "BORDER_COLOR",
                "name": "Image Border Color",
                "type": "string",
                "is_required": false,
                "default_value": "black"
            }
        ]
    }
}{code}
{code}
$ curl -b cookies -c cookies -X POST -d @template 'https://api.appnexus.com/template'

{
    "response": {
        "status": "OK",
        "count": 1,
        "id": 222,
        "start_element": 0,
        "num_elements": 100,
        "template": {
            "id": 222,
            "name": "Image with border",
            "description": null,
            "last_modified": "2012-02-22 23:20:05",
            "is_archived": false,
            "member_id": 1066,
            "is_default": false,
            "content_html": null,
            "content_js": "document.write('<a href=${CLICK_URL}><img src=${MEDIA_URL} border=#{BORDER_SIZE}
             border_color=#{BORDER_COLOR}></img></a>');",
            "content_xml": null,
            "callback_content_html": null,
            "media_subtype": {
                "id": 1,
                "name": "Standard Banner",
                "media_type_name": "Banner",
                "media_type_id": 1
            },
            "format": {
                "id": 4,
                "name": "image"
            },
            "macros": [
                {
                    "code": "BORDER_COLOR",
                    "name": "Image Border Color",
                    "is_required": false,
                    "type": "string",
                    "default_value": "black",
                    "other_data": null
                },
                {
                    "code": "BORDER_SIZE",
                    "name": "Image Border Size",
                    "is_required": false,
                    "type": "integer",
                    "default_value": "4",
                    "other_data": null
                }
            ]
        }
    }
}
{code} 

Modifier un modèle personnalisé

Dans cet exemple, la PUT requête met à jour les valeurs par défaut des macros personnalisées dans le modèle personnalisé 222.

{code}$ cat template_update

{
    "template": {
        "macros":[
            {
                "code": "BORDER_SIZE",
                "name": "Image Border Size",
                "type": "integer",
                "is_required": false,
                "default_value": "6"
            },
            {
                "code": "BORDER_COLOR",
                "name": "Image Border Color",
                "type": "string",
                "is_required": false,
                "default_value": "blue"
            }
        ]
    }
}{code}
{code}
$ curl -b cookies -c cookies -X PUT -d @template_update 'https://api.appnexus.com/template?id=222'

{
    "response": {
        "status": "OK",
        "count": 1,
        "id": "222",
        "start_element": 0,
        "num_elements": 100,
        "template": {
            "id": 222,
            "name": "Image with border",
            "description": null,
            "last_modified": "2012-02-22 23:49:39",
            "is_archived": false,
            "member_id": 1066,
            "is_default": false,
            "content_html": null,
            "content_js": "document.write('<a href=${CLICK_URL}><img src=${MEDIA_URL} border=#{BORDER_SIZE} border_color=#{BORDER_COLOR}></img></a>');",
            "content_xml": null,
            "callback_content_html": null,
            "media_subtype": {
                "id": 1,
                "name": "Standard Banner",
                "media_type_name": "Banner",
                "media_type_id": 1
            },
            "format": {
                "id": 4,
                "name": "image"
            },
            "macros": [
                {
                    "code": "BORDER_COLOR",
                    "name": "Image Border Color",
                    "is_required": false,
                    "type": "string",
                    "default_value": "blue",
                    "other_data": null
                },
                {
                    "code": "BORDER_SIZE",
                    "name": "Image Border Size",
                    "is_required": false,
                    "type": "integer",
                    "default_value": "6",
                    "other_data": null
                }
            ]
        }
    }
}
{code} 

Archiver un modèle personnalisé

Dans cet exemple, la PUT requête définit le is_archived champ sur true, ce qui permet d’archiver le modèle et d’empêcher les futurs créatifs de l’utiliser.

{code}$ cat template_archive

{
    "template": {
         "is_archived": true
    }
}{code}
{code}
$ curl -b cookies -c cookies -X PUT -d @template_archive 'https://api.appnexus.com/template?id=222'

{
    "response": {
        "status": "OK",
        "count": 1,
        "id": "222",
        "start_element": 0,
        "num_elements": 100,
        "template": {
            "id": 222,
            "name": "Image with border",
            "description": null,
            "last_modified": "2012-02-22 23:57:52",
            "is_archived": true,
            "member_id": 1066,
            "is_default": false,
            "content_html": null,
            "content_js": "document.write('<a href=${CLICK_URL}><img src=${MEDIA_URL} border=#{BORDER_SIZE}
             border_color=#{BORDER_COLOR}></img></a>');",
            "content_xml": null,
            "callback_content_html": null,
            "media_subtype": {
                "id": 1,
                "name": "Standard Banner",
                "media_type_name": "Banner",
                "media_type_id": 1
            },
            "format": {
                "id": 4,
                "name": "image"
            },
            "macros": [
                {
                    "code": "BORDER_COLOR",
                    "name": "Image Border Color",
                    "is_required": false,
                    "type": "string",
                    "default_value": "blue",
                    "other_data": null
                },
                {
                    "code": "BORDER_SIZE",
                    "name": "Image Border Size",
                    "is_required": false,
                    "type": "integer",
                    "default_value": "6",
                    "other_data": null
                }
            ]
        }
    }
}
{code} 

Réactiver un modèle personnalisé archivé

Dans cet exemple, la PUT requête définit le is_archived champ sur false, réactivant ainsi le modèle et permettant aux nouveaux créatifs de l’utiliser.

{code}$ cat template_activate

{
    "template": {
         "is_archived": false
    }
}{code}
{code}
$ curl -b cookies -c cookies -X PUT -d @template_activate 'https://api.appnexus.com/template?id=222'

{
    "response": {
        "status": "OK",
        "count": 1,
        "id": "222",
        "start_element": 0,
        "num_elements": 100,
        "template": {
            "id": 222,
            "name": "Image with border",
            "description": null,
            "last_modified": "2012-02-22 23:57:52",
            "is_archived": false,
            "member_id": 1066,
            "is_default": false,
            "content_html": null,
            "content_js": "document.write('<a href=${CLICK_URL}><img src=${MEDIA_URL} border=#{BORDER_SIZE}
             border_color=#{BORDER_COLOR}></img></a>');",
            "content_xml": null,
            "callback_content_html": null,
            "media_subtype": {
                "id": 1,
                "name": "Standard Banner",
                "media_type_name": "Banner",
                "media_type_id": 1
            },
            "format": {
                "id": 4,
                "name": "image"
            },
            "macros": [
                {
                    "code": "BORDER_COLOR",
                    "name": "Image Border Color",
                    "is_required": false,
                    "type": "string",
                    "default_value": "blue",
                    "other_data": null
                },
                {
                    "code": "BORDER_SIZE",
                    "name": "Image Border Size",
                    "is_required": false,
                    "type": "integer",
                    "default_value": "6",
                    "other_data": null
                }
            ]
        }
    }
}
{code} 

Supprimer un modèle personnalisé

Dans cet exemple, la DELETE demande supprime entièrement le modèle personnalisé du système.

{code}$ curl -b cookies -c cookies -X DELETE 'https://api.appnexus.com/template?id=222'

{
    "response": {
        "status": "OK"
    }
}
{code}