Arbeiten mit Attributen mit mehreren Werten
Manchmal möchten Sie vielleicht mit einem Feld mit mehreren Werten arbeiten. Sehen Sie sich folgende Beispiele an:
- Sie bieten Benutzern Spielfilme an. In der Regel wirken an jedem Film mehrere Schauspieler mit.
- Sie verkaufen Konzerttickets. Die meisten Benutzer haben mehrere Lieblingsbands.
- Sie verkaufen Bekleidung. Jedes Hemd ist in verschiedenen Größen erhältlich.
Um Empfehlungen in diesen Szenarien zu verarbeiten, können Sie Daten mit mehreren Werten an Target Recommendations übergeben und spezielle Operatoren mit mehreren Werten verwenden.
Damit Recommendations Daten mit mehreren Werten identifizieren kann, sollten sie als JSON-Array gesendet werden, wie in den folgenden Codebeispielen dargestellt.
Mehrwertige Parameter in JavaScript übergeben
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]'
};
}
Weitere Informationen finden Sie unter Implementieren von Attributen mit mehreren Werten in Benutzerdefinierte Entitätsattribute.
Entitätsattribute mit mehreren Werten in einer CSV-Datei übergeben
## RECSRecommendations Upload File,,,,,,,,,,,,,,,,,,,
## RECS''## RECS'' indicates a Recommendations pre-process header. Please do not remove these lines.,,,,,,,,,,,,,,,,,,,
## RECS,,,,,,,,,,,,,,,,,,,
## RECSUse this file to upload product display information to Recommendations. Each product has its own row. Each line must contain 19 values and if not all are filled a space should be left.,,,,,,,,,,,,,,,,,,,
## RECSThe last 100 columns (entity.custom1 - entity.custom100) are custom. The name 'customN' can be replaced with a custom name such as 'onSale' or 'brand'.,,,,,,,,,,,,,,,,,,,
## RECSIf the products already exist in Recommendations then changes uploaded here will override the data in Recommendations. Any new attributes entered here will be added to the product''s entry in Recommendations.,,,,,,,,,,,,,,,,,,,
## RECSentity.id ,entity.name,entity. categoryId ,entity. message ,entity.thumbnailUrl ,entity.value ,entity.pageUrl ,entity.inventory ,entity.margin ,entity.custom1 ,entity.custom2 ,entity.custom3 ,entity.custom4,entity.custom5,entity.custom6,entity.custom7,entity.custom8,entity.custom9,entity.custom10,
1,Sample Product 1,category1,Save 10%,http://sample.store/products/images/product1_th.jpg,325,http://sample.store/products/product_detail.jsp?productId=1,1000,48,a,"[ ""v1"", ""v2"" ]",, , , , , , , ,
2,Sample Product 2,category1,Save 10%,http://sample.store/products/images/product2_th.jpg,369,http://sample.store/products/product_detail.jsp?productId=2,1000,52,a,"[ ""v1"", ""v2"" ]",, , , , , , , ,
3,Sample Product 3,category1,Save 10%,http://sample.store/products/images/product3_th.jpg,479,http://sample.store/products/product_detail.jsp?productId=3,1000,78,a,"[ ""v1"", ""v2"" ]",,,,,,,,,
4,Sample Product 4,category1,Save 10%,http://sample.store/products/images/product4_th.jpg,409,http://sample.store/products/product_detail.jsp?productId=4,1000,66,a,"[ ""v1"", ""v2"" ]",,,,,,,,,
5,Sample Product 5,category1,Save 10%,http://sample.store/products/images/product5_th.jpg,325,http://sample.store/products/product_detail.jsp?productId=5,1000,45,a,"[ ""v1"", ""v2"" ]",,,,,,,,,
Wenn ein Entitätsattribut, Profilattribut oder Mbox-Parameter als Mehrfachwert gemäß dem oben genannten Format bereitgestellt wird, zeigt Recommendations automatisch an, dass das Feld mehrwertig ist.
Die folgenden Operatoren stehen für die Verwendung mit Entitäts-, Profil- und Mbox-Attributen mit mehreren Werten zur Verfügung:
- is contained in list
- is not contained in list
Arbeiten mit Attributen mit mehreren Werten in Einschlussregeln
Beispiel: Zuletzt überwachte Elemente ausschließen
Angenommen, Sie möchten verhindern, dass Filme, die sich in den letzten zehn überwachten Filmen des Benutzers befinden, empfohlen werden. Schreiben Sie zunächst ein Profilskript mit dem Namen user.lastWatchedMovies
, um die letzten zehn angezeigten Filme als JSON-Array zu verfolgen. Anschließend können Sie die Elemente mithilfe der folgenden Einschlussregel ausschließen:
`Profile Attribute Matching`
`id - is not contained in list - user.lastWatchedMovies`
JSON-API-Darstellung der Einschlussregel:
{
"attribute": "id",
"operation": "isNotContainedInList",
"source": {
"name": "user.lastWatchedMovies",
"type": "PROFILE"
}
}
Beispiel: Empfohlene Elemente aus den Favoriten des Benutzers
Nehmen wir an, Sie möchten Tickets nur für Konzerte empfehlen, wenn die Band, die gespielt wird, eine der Lieblingsbands des Benutzers ist. Stellen Sie zunächst sicher, dass Sie über eine Profilvariable mit dem Namen "profile.favoriteBands
" verfügen, die die Lieblingsbands des Benutzers enthält. Stellen Sie dann sicher, dass Ihr Katalog ein Attribut entity.artistPerforming
enthält, das den Künstler enthält, der im Konzert auftritt. Anschließend können Sie die folgende Einschlussregel verwenden:
`Profile Attribute Matching`
`artistPerforming - is contained in list - profile.favoriteBands`
JSON-API-Darstellung der Einschlussregel:
{
"attribute": "artistPerforming",
"operation": "isContainedInList",
"source": {
"name": "profile.favoriteBands",
"type": "PROFILE"
}
}
Beispiel: API-Erstellung von Kriterien, die Elemente aus den Favoriten eines Benutzers empfehlen
Kriterien mit Filterregeln mit mehreren Werten wie alle Kriterien können über Adobe I/O-APIs erstellt werden. Ein Beispiel für einen API-Aufruf zum Erstellen eines Kriteriums, bei dem das Entitätsattribut id
in der Mbox-Parameterliste favorites
enthalten ist:
curl -X POST \
https://<serverhost>/api/recs/<client>/criteria/item \
-H 'Accept: application/vnd.adobe.target.v1+json' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json' \
-H 'User-Agent: <from API client>' \
-H 'X-Target-user-email: <email address>' \
-H 'cache-control: no-cache' \
-d '{
"name": "viewed criteria",
"criteriaTitle": "test title",
"type": "VIEWED_CF",
"key": "CURRENT",
"daysCount": "TWO_WEEKS",
"aggregation": "NONE",
"backupDisabled": false,
"partialDesignAllowed": true,
"configuration": {
"inclusionRules": [
{
"attribute": "id",
"operation": "isContainedInList",
"source": {
"name": "mbox.favorites",
"type": "MBOX"
}
}
]
}
}'
Dies würde mit JavaScript auf der Seite gepaart werden, um die Favoriteninhalte weiterzugeben:
<!-- pass in the value of mbox parameter “favorites” as JSON array -->
<script type="text/javascript">
mboxCreate('myMbox','entity.id=<key>','favorites=["a","b","c"]');
</script>