As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Registrar um único evento de interação com itens
Depois de criar um conjunto de dados de interações com itens e um rastreador de eventos para o grupo de conjuntos de dados, você já pode registrar eventos de interação. O exemplo a seguir mostra uma operação PutEvents
que transmite um evento de interação com itens. O esquema correspondente é mostrado com uma linha de exemplo do conjunto de dados de interações com itens.
Seu aplicativo gera um sessionId
exclusivo quando alguém visita seu site ou usa seu aplicativo pela primeira vez. Você deve usar o mesmo sessionId
em todos os eventos durante a sessão. O Amazon Personalize usa o sessionId
para associar eventos ao usuário antes que ele faça login (com anonimato). Para obter mais informações, consulte Como registrar eventos de usuários anônimos.
A lista de eventos é uma matriz de objetos Event. eventType
É necessário um para cada evento. Se você não tiver dados do tipo de evento, poderá fornecer um valor de espaço reservado para atender ao requisito.
O trackingId
vem do rastreador de eventos que você criou em Criar um rastreador de eventos de interação com itens. Os sentAt
parâmetros userId
itemId
, e são mapeados para o USER _ID, ITEM _ID e os TIMESTAMP campos de um conjunto de dados histórico Interactions
correspondente. Para obter mais informações, consulte Criação de JSON arquivos de esquema para esquemas do Amazon Personalize.
Colunas correspondentes do conjunto de dados
Dataset columns: USER_ID, ITEM_ID, TIMESTAMP, EVENT_TYPE
Example data: user123, item-xyz, 1543631760, click
Exemplo de código
- SDK for Python (Boto3)
-
import boto3
personalize_events = boto3.client(service_name='personalize-events')
personalize_events.put_events(
trackingId = 'tracking_id
',
userId= 'USER_ID
',
sessionId = 'session_id
',
eventList = [{
'sentAt': 1719511760
,
'eventType': 'click
',
'itemId': 'ITEM_ID
'
}]
)
- SDK for JavaScript v3
-
// Get service clients module and commands using ES6 syntax.
import { PutEventsCommand } from "@aws-sdk/client-personalize-events";
import { personalizeEventsClient } from "./libs/personalizeClients.js";
// Or, create the client here.
// const personalizeEventsClient = new PersonalizeEventsClient({ region: "REGION"});
// Convert your UNIX timestamp to a Date.
const sentAtDate = new Date(1613443801 * 1000); // 1613443801 is a testing value. Replace it with your sentAt timestamp in UNIX format.
// Set put events parameters.
var putEventsParam = {
eventList: [
/* required */
{
eventType: "EVENT_TYPE" /* required */,
sentAt: sentAtDate /* required, must be a Date with js */,
eventId: "EVENT_ID" /* optional */,
itemId: "ITEM_ID" /* optional */,
},
],
sessionId: "SESSION_ID" /* required */,
trackingId: "TRACKING_ID" /* required */,
userId: "USER_ID" /* required */,
};
export const run = async () => {
try {
const response = await personalizeEventsClient.send(
new PutEventsCommand(putEventsParam),
);
console.log("Success!", response);
return response; // For unit tests.
} catch (err) {
console.log("Error", err);
}
};
run();
- AWS CLI
-
aws personalize-events put-events \
--tracking-id tracking_id \
--user-id USER_ID
\
--session-id session_id \
--event-list '[{
"sentAt": 1719511760
,
"eventType": "click
",
"itemId": "ITEM_ID
"
}]'
- SDK for Java 2.x
-
public static void putEvents(PersonalizeEventsClient personalizeEventsClient,
String trackingId,
String sessionId,
String userId,
String itemId,
String eventType) {
try {
Event event = Event.builder()
.sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
.itemId(itemId)
.eventType(eventType)
.build();
PutEventsRequest putEventsRequest = PutEventsRequest.builder()
.trackingId(trackingId)
.userId(userId)
.sessionId(sessionId)
.eventList(event)
.build();
int responseCode = personalizeEventsClient.putEvents(putEventsRequest)
.sdkHttpResponse()
.statusCode();
System.out.println("Response code: " + responseCode);
} catch (PersonalizeEventsException e) {
System.out.println(e.awsErrorDetails().errorMessage());
}
}