# Recomendaciones

Para medir correctamente las recomendaciones, se deben enviar eventos en dos momentos clave: cuando el cliente visualiza el widget y cuando interactúa con él.

**1. Visualización del widget**

Cuando el cliente ve el widget, se debe enviar el evento **`view_item_list`**, incluyendo:

* Nombre de la personalización
* Ítems recomendados

Para esto, utilizar la función: `trackGopersonalProductImpression` que envía el evento a GA4.

<figure><img src="/files/bdOfKmOI9UOfDuestfKi" alt=""><figcaption></figcaption></figure>

**2. Click en un ítem del widget**

Cuando el cliente hace click en un ítem, se debe enviar el evento **`select_item`**, incluyendo:

* Nombre de la personalización
* Ítem seleccionado
* Posición dentro del listado

Este evento es enviado automáticamente por el SDK mediante la *interaction view*.\
Para que funcione correctamente, es importante que la URL del producto incluya:

* Nombre de la personalización
* Posición del ítem

<figure><img src="/files/Ss9k8QLtMKwk57Umweb8" alt=""><figcaption></figcaption></figure>

En otros casos (por ejemplo si tienen botón de agregar al carrito) se debe agregarlo a través de la sdk usando la función ***trackGopersonalProductClickById*** o ***trackGopersonalProductClickByField*** &#x20;

#### Verificación&#x20;

Es posible verificar que los eventos se estén enviando correctamente desde la consola del navegador, inspeccionando el objeto `dataLayer`. &#x20;

<figure><img src="/files/mu7wxHCLHsTRczqojphz" alt=""><figcaption></figcaption></figure>

**IMPORTANTE**:&#x20;

Pueden existir implementaciones personalizadas de GA4. En estos casos, aunque los eventos aparezcan en `dataLayer`, es posible que no se envíen correctamente a GA4.

{% hint style="warning" %}
Como parte de la verificación se debe corroborar que los eventos se envían de igual manera que los otros eventos en el sitio.
{% endhint %}

Si los eventos difieren, deben enviarse como eventos personalizados utilizando la función:\
`trackGopersonalToDataLayer`, incluyendo todo el *body* necesario para GA4.

<figure><img src="/files/oPGEmhpojKHDgzZOUSXy" alt=""><figcaption></figcaption></figure>

El evento **`select_item`** también debe enviarse de esta forma en caso de implementaciones personalizadas.

**OBS**: Al usar `trackGopersonalToDataLayer`  es necesario usar la función `parseItemsForGA4` para llevar a un formato esperado por GA4.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.gopersonal.ai/developers/google-analytics/recomendaciones.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
