

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 eventos de interação com itens usando os dados de impressões
<a name="putevents-including-impressions-data"></a>

Se você usar a [User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) receita ou adicionar o campo IMPRESSÕES ao seu esquema para um conjunto de dados em um grupo de conjuntos de dados do Domínio, poderá registrar dados de impressões em sua operação. PutEvents Impressões são listas de itens que estavam visíveis para um usuário durante a interação (por exemplo, clicar ou assistir) com determinado item. O Amazon Personalize usa dados de impressões para orientar a exploração, considerando que as recomendações incluem itens com menos dados de interações ou relevância. Para mais informações sobre as impressões *implícitas* e *explícitas* que o Amazon Personalize pode modelar, consulte [Dados de impressões](interactions-datasets.md#interactions-impressions-data). 

**Importante**  
Se você fornecer dados de impressões implícitas e explícitas conflitantes nas solicitações de `PutEvents`, o Amazon Personalize usa as impressões explícitas por padrão.

Para registrar as recomendações do Amazon Personalize que você apresenta ao usuário como dados de impressões, inclua o `recommendationId` na sua solicitação de [PutEvents](API_UBS_PutEvents.md). O Amazon Personalize derivará as impressões implícitas com base nos dados de recomendações.

Para registrar manualmente os dados de impressões de um evento, liste as impressões no parâmetro de entrada de `impression` do comando [PutEvents](API_UBS_PutEvents.md). O exemplo de código a seguir mostra como incluir a `recommendationId` e an `impression` em uma PutEvents operação com o SDK para Python (Boto3) ou o SDK para Java 2.x. Se incluir os dois, o Amazon Personalize usará as impressões explícitas por padrão.

------
#### [ 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 ]

Use o método de `putEvents` a seguir para registrar um evento com dados de impressões e um recommendationId. Para o parâmetro impressions, passe a lista de itemIDs como um. 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());
    }
}
```

------