

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 eventos de interacción de elemento con datos de impresiones
<a name="putevents-including-impressions-data"></a>

Si usa la [User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) receta o agrega el campo IMPRESIONES a su esquema para un conjunto de datos de un grupo de conjuntos de datos de dominio, puede registrar los datos de impresiones en su PutEvents operación. Las impresiones son listas de elementos que estaban visibles para un usuario cuando interactuaba con un elemento concreto (por ejemplo, al hacer clic o verlo). Amazon Personalize utiliza los datos de impresiones para guiar la exploración, donde las recomendaciones incluyen elementos con menos interacciones, datos o relevancia. Para obtener información sobre las impresiones *implícitas* y *explícitas* que Amazon Personalize puede modelar, consulte [Datos de impresiones](interactions-datasets.md#interactions-impressions-data). 

**importante**  
Si proporciona datos de impresiones implícitas y explícitas contradictorios en sus solicitudes de `PutEvents`. Amazon Personalize utiliza las impresiones explícitas de forma predeterminada.

Para registrar las recomendaciones de Amazon Personalize que muestra a sus usuarios como datos de impresiones, incluya `recommendationId` en su solicitud [PutEvents](API_UBS_PutEvents.md) y Amazon Personalize obtiene las impresiones implícitas en función de los datos de sus recomendaciones.

Para registrar manualmente los datos de impresiones de un evento, enumere las impresiones en el parámetro de entrada `impression` del comando [PutEvents](API_UBS_PutEvents.md). En el siguiente ejemplo de código se muestra cómo incluir un `recommendationId` y un `impression` en una PutEvents operación con el SDK para Python (Boto3) o el SDK para Java 2.x. Si incluyes ambos, Amazon Personalize utiliza las impresiones explícitas de forma predeterminada.

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

Utilice el siguiente método `putEvents` para registrar un evento con datos de impresiones y un recommendationId. Para el parámetro de impresiones, pasa la lista de ItemIDs como. 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());
    }
}
```

------