

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Enregistrement des événements d'interaction avec les objets à l'aide des données d'impressions
<a name="putevents-including-impressions-data"></a>

Si vous utilisez la [Personnalisation par l'utilisateur](native-recipe-new-item-USER_PERSONALIZATION.md) recette ou si vous ajoutez le champ IMPRESSIONS à votre schéma pour un ensemble de données d'un groupe de données de domaine, vous pouvez enregistrer les données d'impressions dans votre PutEvents opération. Les impressions sont des listes d'éléments visibles par un utilisateur lorsqu'il interagissait avec un élément en particulier (par exemple, en cliquant ou en regardant). Amazon Personalize utilise les données d'impressions pour guider l'exploration, et les recommandations incluent des éléments présentant moins de données d'interactions ou de pertinence. Pour plus d'informations sur les impressions *implicites* et *explicites* qu'Amazon Personalize peut modéliser, consultez[Données sur les impressions](interactions-datasets.md#interactions-impressions-data). 

**Important**  
Si vous fournissez des données d'impression implicites et explicites contradictoires dans vos `PutEvents` demandes, Amazon Personalize utilise les impressions explicites par défaut.

Pour enregistrer les recommandations Amazon Personalize, vous montrez à votre utilisateur sous forme de données d'impressions, `recommendationId` incluez-les dans votre [PutEvents](API_UBS_PutEvents.md) demande et Amazon Personalize calcule les impressions implicites en fonction de vos données de recommandation.

Pour enregistrer manuellement les données d'impressions pour un événement, listez les impressions dans le paramètre `impression` d'entrée de la [PutEvents](API_UBS_PutEvents.md) commande. L'exemple de code suivant montre comment inclure a `recommendationId` et an `impression` dans une PutEvents opération avec le SDK pour Python (Boto3) ou le SDK pour Java 2.x. Si vous incluez les deux, Amazon Personalize utilise les impressions explicites par défaut.

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize_events = boto3.client(service_name='personalize-events')

personalize_events.put_events(
    trackingId = 'tracking_id',
    userId= 'userId',
    sessionId = 'sessionId',
    eventList = [{
        'eventId': 'event1',
        'eventType': 'rating',
        'sentAt': 1553631760,
        'itemId': 'item id',
        'recommendationId': 'recommendation id',
        'impression': ['itemId1', 'itemId2', 'itemId3']
        }]
)
```

------
#### [ SDK for Java 2.x ]

Utilisez la `putEvents` méthode suivante pour enregistrer un événement avec des données d'impressions et un RecommendationID. Pour le paramètre impressions, transmettez la liste des ItemIds sous forme de ArrayList.

```
public static void putEvents(PersonalizeEventsClient personalizeEventsClient, 
                                String trackingId, 
                                String sessionId, 
                                String userId, 
                                String eventType, 
                                Float eventValue, 
                                String itemId,
                                ArrayList<String> impressions,
                                String recommendationId) {

    try { 
        Event event = Event.builder()
            .eventType(eventType)
            .sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
            .itemId(itemId)
            .eventValue(eventValue)
            .impression(impressions)
            .recommendationId(recommendationId)
            .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());
    }
}
```

------