Liste des offres personnalisées list-personalized-offers
Une offre personnalisée est un message marketing personnalisable basé sur des règles et des contraintes d’éligibilité.
Vous pouvez afficher une liste de toutes les offres personnalisées en adressant une seule requête GET à l’API Offer Library.
Format d’API
GET /{ENDPOINT_PATH}/offers?offer-type=personalized&{QUERY_PARAMS}
{ENDPOINT_PATH}
https://platform.adobe.io/data/core/dps
{QUERY_PARAMS}
limit=2
Requête
curl -X GET 'https://platform.adobe.io/data/core/dps/offers?offer-type=personalized&limit=2' \
-H 'Accept: *,application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Utiliser des paramètres de requête using-query-parameters
Vous pouvez utiliser des paramètres de requête pour paginer et filtrer les résultats lors de l'organisation en liste des ressources.
Pagination paging
Les paramètres de requête les plus courants pour la pagination sont les suivants :
property
Un filtre de propriété facultatif :
- Les propriétés sont regroupées par opération AND.
- Les paramètres peuvent être répétés comme suit : property={PROPERTY_EXPR}[&property={PROPERTY_EXPR2}…] ou property={PROPERTY_EXPR1}[,{PROPERTY_EXPR2}…].
- Les expressions de propriété sont au format
[!]field[op]value
, avecop
dans[==,!=,<=,>=,<,>,~]
, prenant en charge les expressions régulières.
property=name!=abc&property=id~.*1234.*&property=description equivalent with property=name!=abc,id~.*1234.*,description.
orderBy
orderby=field1[,-fields2,field3,...]
orderby=id
,-name
limit
limit=5
Réponse
Une réponse réussie renvoie une liste d’offres personnalisées présentes aux côtés de celles auxquelles vous avez accès.
{
"results": [
{
"created": "2023-05-15T14:35:16.781+00:00",
"modified": "2023-05-15T14:38:26.691+00:00",
"etag": 2,
"schemas": [
"https://ns.adobe.com/experience/offer-management/personalized-offer;version=0.15"
],
"createdBy": "{CREATED_BY}",
"lastModifiedBy": "{MODIFIED_BY}",
"id": "personalizedOffer1234",
"name": "Test personalized offer with frequency constraint",
"status": "draft",
"representations": [
{
"channel": "https://ns.adobe.com/xdm/channel-types/web",
"placement": "offerPlacement1234",
"components": [
{
"type": "html",
"format": "text/html",
"language": [
"en-us"
],
"content": "Hello You qualify for our Discount of 60%"
}
]
}
],
"selectionConstraint": {
"startDate": "2022-07-27T05:00:00.000+00:00",
"endDate": "2023-07-29T05:00:00.000+00:00",
"profileConstraintType": "none"
},
"rank": {
"priority": 0
},
"cappingConstraint": {},
"frequencyCappingConstraints": [
{
"enabled": false,
"limit": 1,
"startDate": "2023-05-15T14:25:49.622+00:00",
"endDate": "2023-05-25T14:25:49.622+00:00",
"scope": "global",
"entity": "offer",
"repeat": {
"enabled": false,
"unit": "month",
"unitCount": 1
}
}
]
}
],
"count": 1,
"total": 1,
"_links": {
"self": {
"href": "/offers?offer-type=personalized&href={SELF_HREF}",
"type": "application/json"
}
}
}
Effectuez la pagination si plusieurs offres personnalisées sont manquantes dans la réponse.
Réponse
{
"results": [...],
"count": 2,
"total": 43,
"_links": {
"self": {
"href": "/offers?orderby=-modified&limit=2&offer-type=PERSONALIZED",
"type": "application/json"
},
"next": {
"href": "/offers?orderby=-modified&limit=2&start={TIMESTAMP}&offer-type=PERSONALIZED",
"type": "application/json"
}
}
}
total
count
Récupérez le point d’entrée depuis _links.next.href
, par exemple /offers?orderby=-modified&limit=2&start={TIMESTAMP}&offer-type=PERSONALIZED
, et ajoutez-le à l’API.
Format d’API
GET /{ENDPOINT_PATH}/offers?orderby=-modified&limit=2&start={TIMESTAMP}&offer-type=PERSONALIZED
{
"results": [...],
"count": 2,
"total": 43,
"_links": {
"self": {...},
"next": {
"href": "/offers?orderby=-modified&limit=2&start={TIMESTAMP}&offer-type=PERSONALIZED",
"type": "application/json"
}
}
}
De même, si vous n’êtes pas sur la première page et que vous devez récupérer la page précédente des offres personnalisées, utilisez la valeur href
depuis _links.prev
. Envoyez une requête à l’URL pour récupérer le jeu de résultats précédent, comme illustré dans l’exemple ci-dessous.
Réponse
{
"results": [...],
"count": 2,
"total": 43,
"_links": {
"self": {...},
"next": {...},
"prev": {
"href": "/offers?orderby=-modified&limit=2&start={TIMESTAMP}&offer-type=PERSONALIZED",
"type": "application/json"
}
}
}