Présentation de l’API d’administration de Target

Cet article présente un aperçu des informations générales nécessaires pour comprendre et utiliser correctement les Adobe Target Admin APIs. Le contenu suivant suppose que vous comprenez comment configurer l’authentification pour les Adobe Target Admin APIs.

NOTE
Si vous souhaitez administrer Target via l’interface utilisateur, reportez-vous à la section d’administration du Guide du praticien d’entreprise Adobe Target.
Les API d’administration et les API de profil sont souvent appelées collectivement ("API d’administration et de profil"), mais peuvent également être référencé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 Target.

Avant de commencer

Dans tous les exemples de code fournis pour les API d'administration, remplacez {tenant} par la valeur de votre client, your-bearer-token par le jeton d'accès que vous générez avec vos JWT et your-api-key avec votre clé d'API provenant de Adobe Developer Console. Pour plus d’informations sur les clients et les JWT, consultez l’article sur la configuration de l’authentification pour les API d’administration d’Adobe Target.

Contrôle de version

Toutes les API sont associées à une version. Il est important de fournir la version appropriée de l’API que vous souhaitez utiliser.

Si la requête contient un payload (POST ou PUT), l’en-tête Content-Type de la requête est utilisé pour spécifier la version.

Si la requête ne contient pas de payload (GET, DELETE ou OPTIONS), l’en-tête Accept est utilisé pour spécifier la version.

Si aucune version n’est fournie, l’appel est défini par défaut sur V1 (application/vnd.adobe.target.v1+json).

NOTE
Si la version correcte n’est pas spécifiée (par exemple, si vous utilisez une payload V2 mais 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": "Unsupported features detected"
        }
    ]
}

Collecte Postman d’administration

Postman est une application qui permet de déclencher facilement des appels API. Cette collection Postman de l’API d’administration Targetcontient tous les appels de l’API d’administration Target qui nécessitent une authentification à l’aide des activités, audiences, offres, rapports, mbox et environnements.

Codes de réponse

Voici les codes de réponse courants pour les API d’administration Target.

État
Signification
Description
200
OK
OK
400
Requête incorrecte
Requête incorrecte. Il est probable que les données fournies dans la requête ne soient pas valides.
401
Non autorisé
L’utilisateur n’est pas autorisé à effectuer cette opération.
403
Forbidden
L'accès à cette ressource est interdit.
404
Introuvable
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 :

Mises à jour par lots

Plusieurs API d’administration peuvent être exécutées en tant que requête de lot unique.

Exécution des appels par lot

POST /{tenant}/target/batch

Empilez plusieurs appels d’API ensemble et exécutez-les dans un seul lot.

Le traitement par lot 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 les opérations associées (décrites dans une section ci-dessous). TNT traitera chacune de vos opérations indépendantes (éventuellement en parallèle) et traitera vos opérations dépendantes de manière séquentielle. Une fois toutes les opérations terminées, une réponse consolidée est renvoyée et la connexion HTTP est fermée.

L’API de lot accepte un tableau de requêtes HTTP logiques représentées sous la forme de tableaux JSON : chaque requête comporte une méthode (correspondant à la méthode HTTP GET/PUT/POST/DELETE, etc.), une valeur relativeUrl (la partie de l’URL après admin/rest/), un tableau d’en-têtes facultatifs (correspondant aux en-têtes HTTP) et un corps facultatif (pour les requêtes de POST et de PUT). L’API de lot renvoie un tableau de réponses HTTP logiques représentées sous la forme de tableaux JSON : chaque réponse comporte un code d’état, un tableau d’en-têtes facultatif et un corps facultatif (qui est une chaîne codée au format JSON). Pour effectuer des requêtes par lot, créez un objet JSON qui décrit chaque opération à effectuer. Le nombre maximal 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 de l’API de lot sont indépendantes : elles peuvent être exécutées dans un ordre arbitraire sur le serveur et une erreur dans une opération n’a aucune incidence sur l’exécution d’autres opérations.

Souvent, les opérations de la requête dépendent ; 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 operationId=1 de création de campagne.

Afin de lier deux opérations par lots ensemble, spécifiez dans l’opération dépendante l’identifiant de l’opération requise, par exemple : "dépendOnOperationId" : 5. En outre, les identifiants des ressources créées via les demandes POST d’opérations par lots peuvent être utilisés dans des opérations dépendantes à la fois dans "relativeUrl" et "body".

Autorisations et limitation

Pour exécuter des actions d’API par lot, l’utilisateur sous-jacent doit disposer au moins des droits "d’éditeur" (pour chaque opération individuelle, au cas où des droits supplémentaires seraient requis par rapport à l’utilisateur, l’opération individuelle échouera). Les stratégies de ralentissement classiques sont appliquées aux actions de l’API de lot comme si chaque opération avait été effectuée individuellement.

Le traitement par lots se termine une fois toutes les opérations terminées, une opération peut être une réussite (2xx statusCode), un échec (4xx, 5xx status code) ou une saut en raison d’un échec ou d’une saut d’une opération de dépendance.

Paramètres de l’objet de requête

Attribut
Description
Limites
Par défaut
corps
corps pour l’opération de lot HTTP. seront ignorés pour toutes les actions, à l’exception de POST et de PUT. peut faire référence aux identifiants des actions par lots précédentes, par exemple : "offerId": "{operationIdResponse:0}", "segmentId": "{operationIdResponse:1}"
doit être un JSON valide ; si vous référencez une operationIdResponse, la réponse operationId référencée doit être un ID valide et la méthode de cette action doit être POST.
objet vide {}
dependingOnOperationIds
liste des ID de contrainte qui garantissent que l’opération en cours s’exécutera uniquement si les opérations spécifiées sont terminées avec succès. Peuvent être utilisées pour enchaîner les opérations.
255 opérations au maximum sont autorisées ; les valeurs uniques ne sont autorisées que ; 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 de lot a été effectuée via l’en-tête d’autorisation, elle sera également copiée pour des opérations individuelles.
Le nombre maximal d’en-têtes dans le tableau autorisé est de 50.
Content-Type: application/json
headers->name
nom de l’en-tête
doit être unique parmi d’autres noms d’en-tête. les en-têtes ne sont pas sensibles à la casse par rfc, sinon les valeurs se remplaceront les unes les autres.
headers->value
valeur d’en-tête
S.O.
chaîne vide
method
méthode HTTP à utiliser. Options disponibles : GET, POST, PUT, PATCH, DELETE
seules les méthodes GET, POST, PUT, PATCH et DELETE sont autorisées
operationId
identifiant d’opération utilisé pour identifier une opération parmi d’autres opérations pour les réponses et le référencement des résultats.
unique parmi d’autres opérations ; valeurs comprises entre 0 et 255
opérations
liste des opérations à effectuer dans un lot. l’ordre n’est pas pertinent.
256 opérations au maximum sont autorisées
relativeUrl
URL relative de l’API de repos de l’administrateur, 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 aux URL contenant des identifiants provenant d’actions par lots précédentes, par exemple : "/v1/offer/{operationIdResponse:0}". Si des paramètres de requête sont envoyés, ils doivent être codés en URL.
doit commencer par / (être relatif) ; seules les nouvelles API JSON valides sont prises en charge ; en cas d’URL relative non valide, une réponse 404 pour une opération particulière est renvoyée ; en cas de référencement d’une operationIdResponse, la réponse operationId référencée doit être un ID valide et la méthode de cette action doit être POST.

Exemple d’objet de requête

{
  "operations": [
    {
      "operationId": 1,
      "dependsOnOperationIds~": [0],
      "method": "POST",
      "relativeUrl": "/v1/offers",
      "headers~": [
        {
          "name": "Content-Type",
          "value": "application/json"
        }
      ],
      "body~": {
        "key": "value"
      }
    }
  ]
}

Paramètres d’objet de réponse

Paramètre
Description
operationId
identifiant d’opération utilisé pour identifier une opération parmi d’autres opérations, même identifiant qu’il a été envoyé dans une demande de POST.
ignoré
indicateur boolean pour marquer si l’opération a été exécutée ou ignorée. Est définie sur true si 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ée, alors toutes les opérations dépendantes seront ignorées (non exécutées).
en-têtes
tableau d’en-têtes clé-valeur à envoyer en tant que réponse pour une opération particulière.
headers->name
nom de l’en-tête
headers->value
valeur d’en-tête
corps
corps de l’opération de réponse par lots HTTP

Exemple d’objet Response

{
  "results": [
    {
      "operationId": 1,
      "skipped~": false,
      "statusCode~": 200,
      "headers~": [
        {
          "name": "Content-Type",
          "value": "application/json; charset=UTF-8"
        }
      ],
      "body~": {
        "id": 5
      }
    }
  ]
}
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3