Attributs d’entité personnalisés
Utilisez des attributs d’entité personnalisés à une ou plusieurs valeurs dans Adobe Target Recommendations pour définir des informations supplémentaires sur les éléments de votre catalogue.
Limites limits
Vous pouvez inclure jusqu’à 100 attributs d’entité personnalisés pour définir des informations supplémentaires sur les éléments de votre catalogue. Par exemple, vous pouvez créer un attribut personnalisé appelé entity.genre
pour définir un livre ou un film. Ou, un vendeur de billets peut créer des attributs pour le lieu d’un événement pour inclure un interprète secondaire ; par exemple, pour une équipe en déplacement dans le cas d’un événement sportif ou une première partie dans le cas d’un concert.
La longueur maximale des attributs personnalisés d’entité à valeur unique est de 15 000 caractères (pour les langues codées UTF-8 à un et deux octets, telles que l’anglais et les autres langues en alphabet latin) ou de 10 000 caractères (pour les langues codées UTF-8 à trois octets, telles que le chinois, le japonais et le coréen).
Les attributs personnalisés d’entité à plusieurs valeurs ne peuvent pas contenir plus de 500 valeurs. Chaque valeur individuelle est limitée à 100 caractères. Le nombre total de caractères pour toutes les valeurs doit se conformer aux limites de la longueur maximale des attributs personnalisés d’entité à une valeur unique (voir ci-dessus).
Valeurs d’attribut d’entité personnalisées section_313331A9F8194A89B5EDD89363018651
Les attributs d’entité personnalisés peuvent contenir une seule ou plusieurs valeurs. Les valeurs d’attribut d’entité s’affichent dans la vue du produit.
Un attribut d’entité personnalisé avec une seule valeur est formé de la même manière qu’un attribut d’entité prédéfini à une valeur :
entity.genre=genre1
Un attribut d’entité personnalisé à plusieurs valeurs doit être envoyé en tant que tableau JSON valide :
entity.genre=["genre1", "genre2"]
Exemples de tableaux JSON valides pris en charge par Recommendations:
["AB","BC"]
toutes les valeurs sont des chaînes[1,2]
toutes les valeurs sont des chiffres
["AB",1,true, [1,2,3]]
est un tableau JSON valide, mais il n’est pas pris en charge dans Recommendations, car il inclut des types de valeurs mixtes (chaîne, chiffre, opérateur booléen, objet).Une fois qu’un attribut personnalisé est envoyé en tant que tableau JSON valide, l’attribut est traité comme un attribut à plusieurs valeurs pour tous les produits du catalogue.
Restrictions :
- Vous ne pouvez pas utiliser de noms d’attributs d’entité prédéfinis pour les attributs d’entité personnalisés. (Consultez les Attributs d’entité).
- L’attribut
entity.environment
est réservé par le système et ne peut pas être utilisé pour les attributs d’entité personnalisés. Toute tentative de transférerentity.environment
à l’aide detargetPageParams
, de flux ou d’API sera ignorée. - Les tableaux doivent contenir un type de valeur unique. Les tableaux à valeurs mixtes (
["AB",1,true]
) ne sont pas pris en charge. - Un attribut à plusieurs valeurs incluant un tableau JSON imbriqué (
[10,12,[1,2,3]]
) est traité comme un attribut à une seule valeur.
Implémentation d’attributs à plusieurs valeurs section_80FEFE49E8AF415D99B739AA3CBA2A14
Les attributs d’entité personnalisés à plusieurs valeurs sont pris en charge lors de l’utilisation de flux (CSV), targetPageParams
et de l’API de diffusion pour télécharger des produits. Les nouvelles valeurs remplacent les valeurs actuelles ; elles ne sont pas ajoutées. Les tableaux vides ( [] ) sont traités comme ne comportant aucune valeur.
Les guillemets doubles doivent être précédés d’un caractère d’échappement. Par exemple, "[""test"", ""value""]"
est un tableau JSON valide qui peut être utilisé dans le fichier CSV.
Vous pouvez inclure jusqu’à 500 valeurs dans un attribut multi-valeurs.
Utilisation de targetPageParams
L’exemple suivant montre comment utiliser targetPageParams
function targetPageParams() {
return {
'entity.id': '123',
'entity.categoryId': '["A", "A:B", "A:B:C", "A:B:C:D"]',
'entity.MultiValueAttribute': '["X", "Y", "Z"]',
'entity.event.detailsOnly': 'true',
'excludedIds": '[123, 3232, 2323, 4344]',
'orderId": '123456',
'orderTotal": '195.32',
'productPurchaseId": '[001,002,003]'
};
}
Utilisation de CSV
Vous pouvez gérer vos fichiers CSV à l’état brut en utilisant un éditeur de texte ou vous pouvez utiliser un logiciel de feuille de calcul.
Le fichier CSV brut ressemblera à ceci :
Le même catalogue ressemblera à ceci dans une feuille de calcul :
Lors de la conversion au format .csv, le logiciel de feuille de calcul encadre le contenu de la cellule avec des guillemets doubles pour éviter que les apostrophes présentes dans la cellule n’agissent comme séparateurs de colonne. Il fait de même avec les valeurs de chaîne JSON que vous incluez dans des attributs personnalisés à plusieurs valeurs. Le fait de travailler directement avec le fichier à l’état brut peut dès lors s’avérer peu commode. Par exemple :
- Feuille de calcul :
["1","2","3"]
- Brut :
"[""1"",""2"",""3""]"
Soyez vigilant lorsque vous éditez directement un fichier CSV de catalogue à l’état brut.
Utilisation des API
Vous pouvez transmettre des attributs à plusieurs valeurs à l’aide de l’API de diffusion dans un paramètre de mbox sous la forme d’une valeur de chaîne contenant un tableau JSON avec échappement.
"execute": {
"mboxes": [
{
"index": 0,
"name": "first-mbox",
"parameters": {
"entity.id": "32323",
"entity.categoryId": "My Category",
"entity.MultiValueAttribute": "[\"X\", \"Y\", \"Z\"]"
}
}
]
}
Pour plus d’informations sur l’utilisation des API Diffusion et Enregistrer les entités, voir la documentation de l’API Adobe Recommendations.
Utilisation d’opérateurs avec des attributs à plusieurs valeurs section_83C2288A805242D9A02EBC4F07DEE945
Lorsque vous appliquez des opérateurs à des attributs personnalisés à plusieurs valeurs dans des règles d’inclusion d’algorithme, des règles de catalogue et des règles d’exclusion, le résultat sera true si au moins une valeur de la liste transfère l’opération (opérateur booléen ou).
Dans l’exemple suivant, la règle est message contains abc
.
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur ne contientabc
. - Cas 2 :
entity.genre = ["abcde","de","ef"]
. Le résultat est true car une valeur contientabc
.
Pour les opérateurs négatifs, toutes les valeurs d’attribut doivent être transmises (opérateur booléen et). Par exemple, si l’opérateur est notEquals
, le résultat sera false si une valeur correspond.
Reportez-vous aux sections suivantes pour connaître le comportement des opérateurs dans les règles d’inclusion d’algorithme, les règles de catalogue et les règles d’exclusion.
Est égal
Si une valeur d’attribut est égale à la valeur d’entrée, le résultat est true.
Exemple : genre equals abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur n’est égale àabc
. - Cas 2 :
entity.genre = ["abc", "de", "ef"]
. Le résultat est true car une valeur est égale àabc
. - Cas 3 :
entity.genre = ["abcde", "de", "ef"]
. Le résultat est false carabc
n’est égal à aucun élément de la liste.
N’est pas égal à
Si aucune valeur d’attribut n’est égale à la valeur d’entrée, le résultat est true.
Exemple : genre not equals abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est true car aucune valeur n’est égale àabc
. - Cas 2 :
entity.genre = ["abc", "de", "ef"]
. Le résultat est false car une valeur est égale àabc
. - Cas 3 :
entity.genre = ["abcde", "de", "ef"]
. Le résultat est true carabc
n’est égal à aucun élément de la liste.
Contient
Si une valeur d’attribut contient la valeur d’entrée, le résultat est true.
Exemple : genre contains abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur ne contientabc
. - Cas 2 :
entity.genre = ["abcde", "de", "ef"]
. Le résultat est true car une valeur contientabc
.
Ne contient pas
Si aucune valeur d’attribut ne contient la valeur d’entrée, le résultat est true.
Exemple : genre does not contain abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est true car aucune valeur ne contientabc
. - Cas 2 :
entity.genre = ["abcde", "de", "ef"]
. La règle aura le résultat false car une valeur contientabc
.
Commence par
Si une valeur d’attribut commence par la valeur d’entrée, le résultat est true.
Exemple : genre starts with abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur ne commence parabc
. - Cas 2 :
entity.genre = ["abcde", "de", "ef"]
. Le résultat est true car une valeur commence parabc
. - Cas 3 :
entity.genre = ["ab", "de", "abc"]
. Le résultat est true car une valeur commence parabc
(pas nécessairement le premier élément de la liste).
Se termine par
Si une valeur d’attribut se termine par la valeur d’entrée, le résultat est true.
Exemple : genre ends with abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur ne se termine parabc
. - Cas 2 :
entity.genre = ["deabc", "de", "ef"]
. Le résultat est true car une valeur se termine parabc
.
Supérieur ou égal à (valeurs numériques uniquement)
La valeur d’attribut est convertie en double. Les attributs qui ne peuvent pas être convertis sont ignorés lors de l’exécution de la règle.
Après le traitement, toute valeur d’attribut supérieure ou égale à la valeur d’entrée a le résultat true.
Exemple : price greater than or equal to 100
- Cas 1 :
entity.price = ["10", "20", "45"]
. Le résultat est false car aucune valeur n’est supérieure ou égale à 100. La valeurde
est ignorée car elle ne peut pas être convertie en double. - Cas 2 :
entity.price = ["100", "101", "90", "80"]
. Le résultat est true car deux valeurs sont supérieures ou égales à 100.
Inférieur ou égal à (valeurs numériques uniquement)
La valeur d’attribut est convertie en double. Les attributs qui ne peuvent pas être convertis sont ignorés lors de l’exécution de la règle.
Après le traitement, toute valeur d’attribut inférieure ou égale à la valeur d’entrée a le résultat true.
Exemple : price less than or equal to 100
- Cas 1 :
entity.price = ["101", "200", "141"]
. Le résultat est false car aucune valeur n’est inférieure ou égale à 100. La valeurde
est ignorée car elle ne peut pas être convertie en double. - Cas 2 :
entity.price = ["100", "101", "90", "80"]
. Le résultat est true car deux valeurs sont inférieures ou égales à 100.
Correspond de manière dynamique (uniquement disponible dans les algorithmes basés sur un élément)
Si une valeur d’attribut correspond à la valeur d’entrée, le résultat est true.
Exemple : genre matches abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est false car aucune valeur ne correspond àabc
. - Cas 2 :
entity.genre = ["abc", "de", "ef"]
. Le résultat est true car une valeur correspond àabc
.
Ne correspond pas de manière dynamique (uniquement disponible dans les algorithmes basés sur un élément)
Si une valeur d’attribut correspond à la valeur d’entrée, le résultat est false.
Exemple : genre does not match abc
- Cas 1 :
entity.genre = ["ab", "bc", "de"]
. Le résultat est true car aucune valeur ne correspond àabc
. - Cas 2 :
entity.genre = ["abc", "de", "ef"]
. La règle aura le résultat false car une valeur correspond àabc
.
Se trouve dynamiquement dans la plage (uniquement disponible dans les algorithmes basés sur un élément, valeurs numériques uniquement)
Si une valeur d’attribut numérique se trouve dans la plage spécifiée, le résultat est true.
Exemple : price dynamically ranges in 80% to 120% of 100
- Cas 1 :
entity.price = ["101", "200", "125"]
. Le résultat est false car101
se trouve dans la plage de 80 à 120 % de 100. La valeurde
est ignorée car elle ne peut pas être convertie en double. - Cas 2 :
entity.price = ["130", "191", "60", "75"]
. Le résultat est false car aucune valeur ne se trouve dans la plage de 80 à 120 % de 100.
Attributs à plusieurs valeurs dans les conceptions section_F672E4F6E1D44B3196B7ADE89334ED4A
Les attributs à plusieurs valeurs apparaissent sous la forme d’une liste séparée par des virgules lorsqu’ils sont référencés dans une conception.
Exemple :
Lorsque entity.genre=["genre1","genre2"]
est référencé dans une conception sous la forme $entity<N>.genre
, le résultat est genre1, genre2
.