Show Menu
SUJETS×

Attributs d’entité personnalisés

Utilisez des attributs d’entité personnalisés à une ou plusieurs valeurs pour définir des informations supplémentaires sur les éléments de votre catalogue.

Limites

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’attributs d’entité personnalisés

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
Recommendations ne prend pas en charge différents types de valeurs dans les attributs d’entité à plusieurs valeurs. Par exemple, ["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.
Pour modifier un attribut de plusieurs à une seule valeur, vous devez supprimer votre catalogue et télécharger les données de produit corrigées. La suppression du catalogue ne supprime pas les données historiques associées à vos ID de produit. Pour plus d’informations, reportez-vous à la section Suppression de tous les éléments du système dans la documentation d’ Adobe Recommendations Classic .
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érer entity.environment à l’aide de targetPageParams , 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

Les attributs d’entité personnalisés à plusieurs valeurs sont pris en charge lors de l’utilisation de flux (CSV), de targetPageParams , d’API de diffusion et de l’API Enregistrer les entités 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 ci-après illustre 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]' 
  }; 
}

À l’aide d’un fichier 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.
À l’aide d’API
See the Adobe Recommendations API documentation for information about using the Delivery and Save entities APIs.

À l’aide d’opérateurs avec des attributs à plusieurs valeurs

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 contient abc .
Cas 2 : entity.genre = ["abcde","de","ef"] . Le résultat est true car une valeur contient abc .
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 au tableau ci-dessous 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.
Opérateur
Comportement
Exemple
Est égal
Si une valeur d’attribut est égale à la valeur d’entrée, le résultat est true.
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 car abc 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.
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 car abc 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.
genre contains abc
Cas 1 : entity.genre = ["ab", "bc", "de"] . Le résultat est false car aucune valeur ne contient abc .
Cas 2 : entity.genre = ["abcde", "de", "ef"] . Le résultat est true car une valeur contient abc .
Ne contient pas
Si aucune valeur d’attribut ne contient la valeur d’entrée, le résultat est true.
genre does not contain abc
Cas 1 : entity.genre = ["ab", "bc", "de"] . Le résultat est true car aucune valeur ne contient abc .
Cas 2 : entity.genre = ["abcde", "de", "ef"] . La règle aura le résultat false car une valeur contient abc .
Commence par
Si une valeur d’attribut commence par la valeur d’entrée, le résultat est true.
genre starts with abc
Cas 1 : entity.genre = ["ab", "bc", "de"] . Le résultat est false car aucune valeur ne commence par abc .
Cas 2 : entity.genre = ["abcde", "de", "ef"] . Le résultat est true car une valeur commence par abc .
Cas 3 : entity.genre = ["ab", "de", "abc"] . Le résultat est true car une valeur commence par abc (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.
genre ends with abc
Cas 1 : entity.genre = ["ab", "bc", "de"] . Le résultat est false car aucune valeur ne se termine par abc .
Cas 2 : entity.genre = ["deabc", "de", "ef"] . Le résultat est true car une valeur se termine par abc .
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, chaque valeur d’attribut supérieure ou égale à la valeur d’entrée a le résultat true.
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 valeur de 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, chaque valeur d’attribut inférieure ou égale à la valeur d’entrée a le résultat true.
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 valeur de 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.
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.
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 une plage spécifiée, le résultat est true.
price dynamically ranges in 80% to 120% of 100
Cas 1 : entity.price = ["101", "200", "125"] . Le résultat est false car 101 se trouve dans la plage de 80 à 120 % de 100. La valeur de 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.
La double est un type de données Java. Pour les opérateurs qui requièrent des valeurs numériques, la conversion en double élimine les valeurs non numériques du calcul des résultats.

Attributs à plusieurs valeurs dans les conceptions

Lorsqu’ils sont référencés dans une conception, les attributs à plusieurs valeurs apparaissent sous la forme d’une liste séparée par des virgules.
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 .