

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Registrazione di un evento di interazione con un singolo elemento
<a name="putevents-example"></a>

Dopo aver creato un *set di dati sulle interazioni tra elementi* e un [tracker di eventi](event-get-tracker.md) per il gruppo di set di dati, sei pronto per registrare gli eventi di interazione tra gli elementi. L'esempio seguente mostra un'`PutEvents`operazione che trasmette un evento di interazione tra elementi. Viene mostrato lo schema corrispondente, insieme a una riga di esempio del set di dati Item interaction.

 L'applicazione genera un codice univoco `sessionId` quando un utente visita per la prima volta il sito Web o utilizza l'applicazione. È necessario utilizzare lo stesso `sessionId` in tutti gli eventi durante la sessione. Amazon Personalize lo utilizza `sessionId` per associare gli eventi all'utente prima che effettui l'accesso (è anonimo). Per ulteriori informazioni, consulta [Registrazione di eventi per utenti anonimi](recording-events.md#recording-anonymous-user-events).

L'elenco degli eventi è un array di oggetti [Event](API_UBS_Event.md). Un `eventType` è obbligatorio per ogni evento. Se non disponi di dati sul tipo di evento, puoi fornire un valore segnaposto per soddisfare il requisito. 

`trackingId`Viene dal tracker di eventi in cui hai creato. [Creazione di un tracker degli eventi relativi all'interazione tra gli elementi](event-get-tracker.md) I parametri `userId`, `itemId` e `sentAt` sono mappati ai campi USER\_ID, ITEM\_ID e TIMESTAMP di un corrispondente set di dati `Interactions` storico. Per ulteriori informazioni, consulta [Creazione di file JSON di schema per schemi Amazon Personalize](how-it-works-dataset-schema.md).

**Colonne corrispondenti del set di dati**

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

**Esempio di codice**

------
#### [ 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());
        }
}
```

------