Cet article fournit un aperçu des informations générales nécessaires pour comprendre et utiliser avec succès les API Adobe Target Admin. Le contenu suivant suppose que vous comprenez commentconfigurer l'authentificationpour les API Adobe Target Admin.
NOTE
Si vous souhaitez administrer Target via l'interface utilisateur, consultez lesection administration du Guide Adobe Target Business Practitioner.
Les API d'administration et les API de profil sont souvent désignées collectivement (« API d'administration et de profil »), mais peuvent également être désignées séparément (« API d'administration » et « API de profil »). L'API Recommendations est une implémentation spécifique d'une API d'administration cible.
Avant que tu commences
Dans tous les exemples de code fournis pour leAPI d'administration, remplacez {locataire} par votre valeur de locataire,jeton-de-votre-porteur
avec le jeton d'accès que vous générez avec votre JWT etvotre-clé-api
avec votre clé API depuis leConsole de développement Adobe. Pour plus d'informations sur les locataires et les JWT, veuillez consulter l'article sur la façon deconfigurer l'authentificationpour les API Adobe Target Admin.
Gestion des versions
Toutes les API ont une version associée. Il est important de fournir la bonne version de l'API que vous souhaitez utiliser.
Si la requête contient une charge utile (POST ou PUT), leType de contenu
l'en-tête de la requête est utilisé pour spécifier la version.
Si la requête ne contient pas de charge utile (GET, DELETE ou OPTIONS), leAccepter
header est utilisé pour spécifier la version.
Si aucune version n'est fournie, l'appel sera par défaut V1 (application/vnd.adobe.target.v1+json).
NOTE
Si la version correcte n'est pas spécifiée (par exemple, si vous utilisez une charge utile V2 mais que vous ne spécifiez pas l'en-tête Content-Type), l'API répondra avec une erreur non prise en charge si l'API n'est pas rétrocompatible.
Message d'erreur pour les fonctionnalités non prises en charge
{ "httpStatus": 406, "requestId": "8752b736-cf71-4d81-86c3-94be2b5ae648", "requestTime": "2018-02-02T21:39:06.405Z", "errors": [ { "errorCode": "Unsupported.Feature", "message": "Fonctionnalités non prises en charge détectées" } ]}
Collecte du facteur administratif
Postman est une application qui facilite le déclenchement des appels API. CeCollection Postman de l'API d'administration ciblecontient tous les appels de l'API Target Admin qui nécessitent une authentification à l'aide d'Activités, d'Audiences, d'Offres, de Rapports, de Mbox et d'Environnements
Codes de réponse
Voici les codes de réponse courants pour les API d'administration cible.
Statut | Signification | Description |
---|---|---|
200 | D'ACCORD | D'ACCORD |
400 | Mauvaise demande | Mauvaise demande. Très probablement, les données fournies dans la demande ne sont pas valides. |
401 | Non autorisé | L'utilisateur n'est pas autorisé à effectuer cette opération. |
403 | Interdit | L'accès à cette ressource est interdit. |
404 | Pas trouvé | La ressource référencée est introuvable. |
Activités
Une activité vous permet de tester ou de personnaliser du contenu pour vos utilisateurs. Les activités peuvent être de l'un des types suivants :
- UN B
- Ciblage d'expérience (XT)
- Recommandations
- Personnalisation automatisée
- Test multivarié (MVT)
Mises à jour par lots
Plusieurs API d'administration peuvent être exécutées en une seule requête par lot.
Exécuter des appels par lots
POST /{locataire}/cible/lot
Empilez plusieurs appels d'API et exécutez-les en un seul lot.
Le traitement par lots vous permet de transmettre des instructions pour plusieurs opérations dans une seule requête HTTP. Vous pouvez également spécifier des dépendances entre des opérations liées (décrites dans une section ci-dessous). TNT traitera chacune de vos opérations indépendantes (éventuellement en parallèle) et traitera séquentiellement vos opérations dépendantes. Une fois toutes les opérations terminées, une réponse consolidée sera renvoyée et la connexion HTTP sera fermée.
L'API batch prend en charge un tableau de requêtes HTTP logiques représentées sous forme de tableaux JSON - chaque requête a une méthode (correspondant à la méthode HTTP GET/PUT/POST/DELETE etc.), une relativeUrl (la partie de l'URL après admin/rest/ ), un tableau d'en-têtes facultatif (correspondant aux en-têtes HTTP) et un corps facultatif (pour les requêtes POST et PUT). L'API Batch renvoie un tableau de réponses HTTP logiques représentées sous forme de tableaux JSON - chaque réponse a un code d'état, un tableau d'en-têtes facultatif et un corps facultatif (qui est une chaîne encodée JSON). Pour effectuer des requêtes par lots, créez un objet JSON qui décrit chaque opération individuelle à effectuer. Le nombre maximum d'opérations autorisées est de 256 (de 0 à 255).
Spécification des dépendances entre les opérations dans la requête Par défaut, les opérations spécifiées dans la requête API batch sont indépendantes - elles peuvent être exécutées dans un ordre arbitraire sur le serveur et une erreur dans une opération n'affecte pas l'exécution des autres opérations.
Souvent, les opérations dans la demande sont dépendantes - par exemple, la sortie d'une opération peut être utilisée dans l'entrée de l'opération suivante. Par exemple, l'offre créée dans operationId=0 doit être utilisée dans la création de la campagne operationId=1.
Afin de lier deux opérations par lots, spécifiez dans l'opération dépendante l'identifiant de l'opération requise, par exemple : "dependsOnOperationId" : 5. Les identifiants des ressources créées via les requêtes POST des opérations par lots peuvent également être utilisés dans les opérations dépendantes à la fois dans " et le corps".
Autorisations et limitation
Afin d'exécuter des actions d'API par lots, l'utilisateur sous-jacent doit avoir au moins des droits "d'éditeur" (pour chaque opération individuelle, si des droits supplémentaires sont requis par rapport à l'utilisateur, l'opération individuelle échouera). Les stratégies de limitation habituelles sont appliquées aux actions d'API par lots comme si chaque opération avait été effectuée individuellement.
Le traitement par lots se termine lorsque toutes les opérations sont terminées, une opération peut soit réussir (code d'état 2xx), échouer (code d'état 4xx, 5xx) ou être ignorée car une opération de dépendance a échoué ou a été ignorée.
Paramètres d'objet de requête
Attribut | Description | Limites | Défaut |
---|---|---|---|
corps | corps pour l'opération par lot HTTP. sera ignoré pour toutes les actions sauf POST et PUT. peut faire référence aux ID des actions par lots précédentes, par exemple : "offerId": "{operationIdResponse:0}", "segmentId": "{operationIdResponse:1}" | doit être un JSON valide ; en cas de référence à une operationIdResponse, la réponse operationId référencée doit être un ID valide et la méthode sur cette action doit être POST | objet vide {} |
dependOnOperationIds | liste des ID de contrainte qui garantiront que l'opération en cours ne s'exécutera que si les opérations spécifiées se sont terminées avec succès. Peut être utilisé pour réaliser un chaînage des opérations. | 255 opérations au maximum sont autorisées ; seules les valeurs uniques sont autorisées ; doit pointer vers un operationId valide dans le tableau ; les dépendances cycliques ne sont pas autorisées | |
en-têtes | tableau d'en-têtes clé-valeur à envoyer avec une opération particulière. Si l'authentification pour l'API batch a été effectuée via l'en-tête d'autorisation, elle sera également copiée pour les opérations individuelles. | le nombre maximum d'en-têtes dans le tableau autorisé est de 50 | Type de contenu : application/json |
en-têtes-> nom | nom d'en-tête | doit être unique parmi les autres noms d'en-tête. les en-têtes sont insensibles à la casse par rfc, sinon les valeurs se remplaceront. | |
en-têtes-> valeur | valeur d'en-tête | N / A | chaîne vide |
méthode | Méthode HTTP à utiliser. Options disponibles : GET, POST, PUT, PATCH, DELETE | seules les méthodes GET, POST, PUT, PATCH, DELETE sont autorisées | |
opérationId | ID d'opération utilisé pour identifier une opération parmi d'autres opérations pour les réponses et les résultats de référence. | unique parmi d'autres opérations ; valeurs de 0 à 255 | |
opérations | liste des opérations à effectuer dans un batch. la commande n'est pas pertinente. | 256 opérations au maximum sont autorisées | |
relativeUrl | URL relative pour l'API admin rest, la partie après "/admin/rest/". Peut contenir des paramètres de chaîne de requête tels que : "/v2/campaigns?limit=10&offset=10". peut faire référence à des URL contenant des ID d'actions par lots précédentes, par exemple : "/v1/offers/{operationIdResponse:0}". Si des paramètres de requête sont envoyés, ils doivent être encodés en URL. | devrait commencer par / (être relatif); seules les nouvelles API JSON valides sont prises en charge ; en cas d'URL relative invalide, une réponse 404 pour une opération particulière sera renvoyée ; en cas de référence à une operationIdResponse, la réponse operationId référencée doit être un ID valide et la méthode sur cette action doit être POST |
Exemple d'objet de requête
{ "operations": [ { "operationId": 1, "dependsOnOperationIds~": [0], "method": "POST", "relativeUrl": "/v1/offers", "headers~": [ { "nom ": "Content-Type", "value": "application/json" } ], "body~": { "key": "value" } } ]}
Paramètres de l'objet de réponse
Paramètre | Description |
---|---|
opérationId | ID d'opération utilisé pour identifier une opération parmi d'autres opérations, le même ID que celui qui a été envoyé dans la requête POST. |
sauté | indicateur booléen pour marquer si l'opération a été exécutée ou ignorée. Sera vrai dans le cas où l'opération en cours dépend d'une opération qui a échoué (a renvoyé une valeur statusCode différente de 2xx). |
statusCode | renvoyé, toutes les opérations qui en dépendent seront ignorées (non exécutées). |
en-têtes | tableau d'en-têtes clé-valeur à envoyer en réponse à une opération particulière. |
en-têtes-> nom | nom d'en-tête |
en-têtes-> valeur | valeur d'en-tête |
corps | corps pour l'opération de réponse par lot HTTP |
Exemple d'objet de réponse
{ "results": [ { "operationId": 1, "skipped~": false, "statusCode~": 200, "headers~": [ { "name": "Content-Type", "value": "application /json; charset=UTF-8" } ], "body~": { "id": 5 } } ]}