

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Registro de un solo evento de interacción de elementos
<a name="putevents-example"></a>

Después de crear un *conjunto de datos de interacciones de elementos* y un [rastreador de eventos](event-get-tracker.md) para su grupo de conjuntos de datos, estará listo para registrar los eventos de interacción de elementos. En el ejemplo siguiente se muestra una operación `PutEvents` que pasa un evento de interacción de elementos. Se muestra el esquema correspondiente, junto con una fila de ejemplo del conjunto de datos de interacciones de elementos.

 La aplicación genera un `sessionId` único cuando un usuario visita por primera vez su sitio web o utiliza su aplicación. Debe usar el mismo `sessionId` en todos los eventos de la sesión. Amazon Personalize usa `sessionId` para asociar eventos con el usuario antes de que inicie sesión (es anónimo). Para obtener más información, consulte [Registro de eventos para usuarios anónimos](recording-events.md#recording-anonymous-user-events).

La lista de eventos es una matriz de objetos [Event](API_UBS_Event.md). Se requiere `eventType` para cada evento. Si no tiene datos de tipo de evento, puede proporcionar un valor de marcador de posición para cumplir el requisito. 

`trackingId` proviene del rastreador de eventos que creó en [Creación de un rastreador de eventos de interacción de elementos](event-get-tracker.md). Los parámetros `userId`, `itemId` y `sentAt` se asignan a los campos USER\$1ID, ITEM\$1ID y TIMESTAMP de un conjunto de datos `Interactions` histórico correspondiente. Para obtener más información, consulte [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md).

**Columnas del conjunto de datos correspondientes**

```
Dataset columns: USER_ID, ITEM_ID, TIMESTAMP, EVENT_TYPE
Example data: user123, item-xyz, 1543631760, click
```

**Ejemplo 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.
const 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());
        }
}
```

------