# AI Overviews

El `google_search` y `google_ads` las fuentes pueden devolver AI Overviews a partir de los resultados de Google Search en todas las regiones globales compatibles. `ai_overviews` el array de resultados admite varios bloques de IA en una sola respuesta, incluidas secciones como “People also ask” y “Things to know.”

Para maximizar la posibilidad de recibir contenido de AI Overviews completamente renderizado, debes incluir los siguientes parámetros:

| Parámetro         | Valor                          |
| ----------------- | ------------------------------ |
| `source`          | `google_search` o `google_ads` |
| `render`          | `html`                         |
| `user_agent_type` | `desktop` o `mobile`           |

Usar estos parámetros también te permite recibir tanto la respuesta general como el contenido de AI Overviews con una sola solicitud.

{% hint style="danger" %}
Google genera este contenido dinámicamente o carga una versión en caché, por lo que las respuestas generadas por IA pueden variar con el tiempo, incluso con parámetros idénticos.
{% endhint %}

{% hint style="success" %}
Explora[ **diccionario de datos**](#data-dictionary) para algunas de las funciones SERP de AI Overviews.
{% endhint %}

## Disponibilidad regional de AI Overviews

Google AI Overviews está disponible en la mayoría de los países, con algunas excepciones. Actualmente, los principales países excluidos son:

* Francia
* Mónaco
* China
* Irán
* Sudán
* Siria
* Cuba
* Corea del Norte

{% hint style="warning" %}
La función Google AI Overviews se está implementando de forma continua, con más países incluidos con el tiempo.
{% endhint %}

## Ejemplos de solicitud

{% tabs %}
{% tab title="cURL" %}

```shell
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
        "source": "google_search",
        "query": "how to sell on amazon",
        "render": "html",
        "user_agent_type": "desktop",
        "parse": true
        
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint

# Updated payload.
payload = {
    'source': 'google_search',
    'query': 'how to sell on amazon',
    'render': 'html',
    'user_agent_type': 'desktop',
}

# Get response.
response = requests.request(
    'POST',
    'https://realtime.oxylabs.io/v1/queries',
    auth=('user', 'pass1'),
    json=payload,
)

# Print prettified response to stdout.
pprint(response.json())
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = [
    'source' => 'google_search',
    'query' => 'how to sell on amazon',
    'render' => 'html',
    'user_agent_type' => 'desktop',
];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "user" . ":" . "pass1");

$headers = [];
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
```

{% endtab %}

{% tab title="HTTP" %}

```http
https://realtime.oxylabs.io/v1/queries?source=google_search&query=Emporio%20Armani%20EA3192&render=html&user_agent_type=desktop&access_token=12345abcde
```

{% endtab %}

{% tab title="JSON" %}

```json
{
    "source": "google_search",
    "query": "how to sell on amazon",
    "render": "html",
    "user_agent_type": "desktop"
}
```

{% endtab %}
{% endtabs %}

Usamos el método de integración sincrónico [**Realtime**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/realtime) en nuestros ejemplos. Si deseas usar [**Proxy Endpoint**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/proxy-endpoint) o la integración [**Push-Pull**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/push-pull) asíncrona, consulta la sección de [**métodos de integración**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods) .

## Valores de los parámetros de solicitud

### Genérico

Configuración básica y opciones de personalización para extraer resultados de Google Web search con AI Overviews.

<table><thead><tr><th width="191">Parámetro</th><th width="377.3333333333333">Descripción</th><th>Valor predeterminado</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong>source</strong></mark></td><td>Define el scraper. Usa <code>google_search</code> o <code>google_ads</code>.</td><td><code>google_search</code></td></tr><tr><td><mark style="background-color:green;"><strong>query</strong></mark></td><td>La palabra clave o frase que se va a buscar.</td><td>-</td></tr><tr><td><code>render</code></td><td>Habilita el renderizado de JavaScript cuando se establece en <code>html</code>. <a href="../../features/js-rendering-and-browser-control/javascript-rendering"><strong>Más información</strong></a><strong>.</strong></td><td>-</td></tr><tr><td><code>context</code>:<br><code>expand_aio</code></td><td>Establécelo en <code>true</code> para expandir Google AI Overviews (renderizado de JavaScript habilitado).</td><td><code>false</code></td></tr><tr><td><code>parse</code></td><td>Devuelve datos analizados cuando se establece en <code>true</code>.</td><td><code>false</code></td></tr><tr><td><code>callback_url</code></td><td>URL a tu endpoint de callback. <a href="../../../integration-methods/push-pull#callback"><strong>Más información</strong></a>.</td><td>-</td></tr><tr><td><code>user_agent_type</code></td><td>Tipo de dispositivo y navegador. Usa <code>desktop</code> o <code>mobile</code>.</td><td><code>desktop</code></td></tr></tbody></table>

&#x20;   \- parámetro obligatorio

#### Operadores de búsqueda avanzada de Google

Al extraer datos, puede resultarte útil combinar operadores avanzados de búsqueda de Google con tu consulta. Esto te permite personalizar el alcance de la búsqueda, asegurando que los resultados sean más relevantes y específicos. Explora estos comandos especiales [**aquí**](https://ahrefs.com/blog/google-advanced-search-operators/) y [**aquí**](https://www.semrush.com/kb/831-how-to-use-google-advanced-search-operators). Consulta el ejemplo de consulta a continuación.

```json
{
    "source": "google_search",
    "query": "iphone 15 launch inurl:apple", 
    "render": "html",
    "user_agent_type": "desktop"
}
```

### Localización

Adapta los resultados de búsqueda a ubicaciones geográficas e idiomas específicos.

<table><thead><tr><th width="222">Parámetro</th><th width="350.3333333333333">Descripción</th><th>Valor predeterminado</th></tr></thead><tbody><tr><td><code>geo_location</code></td><td>La ubicación geográfica a la que debe adaptarse el resultado. Usar correctamente este parámetro es extremadamente importante para obtener los datos correctos. Para más información, lee sobre nuestras <code>geo_location</code> estructuras de parámetros <a href="../../../features/localization/serp-localization#google"><strong>sugeridas aquí.</strong></a></td><td>-</td></tr><tr><td><code>locale</code></td><td><code>Accept-Language</code> valor del encabezado que cambia el idioma de la interfaz web de tu página de búsqueda de Google. <a href="../../../features/localization/domain-locale-results-language#locale-1"><strong>Más información</strong></a>.</td><td>-</td></tr><tr><td><code>context</code>:<br><code>results_language</code></td><td>Idioma de los resultados. La lista de idiomas de Google compatibles se puede encontrar <a href="../../../features/localization/domain-locale-results-language#results-language"><strong>aquí</strong></a>.<br>Aprende a usar los parámetros de contexto <a href="#context-parameters"><strong>aquí</strong></a>.</td><td>-</td></tr></tbody></table>

### Paginación

Controles para gestionar la paginación y la obtención de resultados de búsqueda.

<table><thead><tr><th width="222">Parámetro</th><th width="350.3333333333333">Descripción</th><th width="167">Valor predeterminado</th></tr></thead><tbody><tr><td><code>start_page</code></td><td>Número de página inicial.</td><td><code>1</code></td></tr><tr><td><code>pages</code></td><td>Número de páginas a recuperar.</td><td><code>1</code></td></tr><tr><td><code>limit</code></td><td>Número de resultados a recuperar en cada página.</td><td><code>10</code></td></tr><tr><td><code>context</code>:<code>limit_per_page</code></td><td>Extrae varias páginas usando la misma dirección IP y sesión (cookie set). Al especificar los números de página en un array JSON con la clave <code>page</code> e indicar el número de resultados orgánicos por página usando la clave <code>limit</code> , puedes minimizar la posibilidad de ver resultados orgánicos superpuestos entre páginas (por ejemplo, que el último resultado orgánico de la primera página sea el mismo que el primer resultado orgánico de la segunda página). <a href="#request-sample"><strong>Ver ejemplo</strong></a><strong>.</strong></td><td>-</td></tr></tbody></table>

#### Compatibilidad con scroll continuo

La Web Scraper API admite completamente el scroll continuo de Google Search. Detecta automáticamente diseños de desplazamiento continuo, cargando de forma eficiente los resultados orgánicos solicitados sin requerir parámetros adicionales.

#### Límite por página

{% hint style="warning" %}
Debido a cambios recientes en el límite de Google, hemos ajustado el comportamiento de Web Scraper API. El máximo de resultados por página coincidirá con la salida orgánica de Google, que normalmente es de 10 resultados.
{% endhint %}

Para usar esta función, incluye un array JSON con objetos JSON que contengan los siguientes datos:

<table><thead><tr><th width="142">Parámetro</th><th width="446.3333333333333">Descripción</th><th>Ejemplo</th></tr></thead><tbody><tr><td><code>page</code></td><td>El número de la página que deseas extraer. Cualquier valor entero mayor que <code>0</code> funcionará</td><td><code>1</code></td></tr><tr><td><code>limit</code></td><td>El número de resultados en la página en cuestión. Cualquier valor entero entre <code>1</code> y <code>100</code> (inclusive) funcionará.</td><td><code>90</code></td></tr></tbody></table>

#### Ejemplo de solicitud

```json
{
    "source": "google_search",
    "query": "how to sell on amazon",
    "render": "html",
    "user_agent_type": "dekstop",
    "parse": true,
    "context": [
        {
            "key": "limit_per_page",
            "value": [
                {"page": 1, "limit": 10},
                {"page": 2, "limit": 90}
                    ]
        }]
}
```

### Filtrado

Opciones para filtrar y refinar resultados de búsqueda según varios criterios. Aprende a usar los parámetros de contexto [**aquí**](#context-parameters).

<table><thead><tr><th width="245">Parámetro</th><th width="350.3333333333333">Descripción</th><th>Valor predeterminado</th></tr></thead><tbody><tr><td><code>context</code>:<br><code>filter</code></td><td>Establecer el valor de este parámetro en <code>0</code> te permite ver resultados que de otro modo se excluirían debido a su similitud con otros resultados.</td><td><code>1</code></td></tr><tr><td><code>context</code>:<br><code>safe_search</code></td><td>Búsqueda segura. Establécelo en <code>true</code> para habilitarla.</td><td><code>false</code></td></tr><tr><td><code>context</code>:<br><code>udm</code></td><td><code>udm</code> el parámetro permite cambiar entre distintas pestañas de búsqueda, como imágenes, lugares o vídeos, para personalizar el tipo de resultados mostrados. Encuentra los valores aceptados <a href="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FeoShpvYuZlb4hGpCIXNG%2Fudm_values%20(eu%2Bus).json?alt=media&#x26;token=a6b77fab-b170-478c-b06f-b8fbf7ab64c7"><strong>aquí</strong></a>.</td><td>-</td></tr><tr><td><code>context</code>:<br><code>tbm</code></td><td>To-be-matched o <code>tbm</code> parámetro. Los valores aceptados son: <code>app</code>, <code>blg</code>, <code>bks</code>, <code>dsc</code>, <code>isch</code>, <code>nws</code>, <code>pts</code>, <code>plcs</code>, <code>rcp</code>, <code>lcl</code></td><td>-</td></tr><tr><td><code>context</code>:<br><code>tbs</code></td><td>Este parámetro funciona como un contenedor para parámetros de Google más específicos, como limitar/ordenar los resultados por fecha, además de otros filtros, algunos de los cuales dependen del parámetro <code>tbm</code> p. ej. <code>tbs=app_os:1</code> solo está disponible con el valor <code>tbm</code> de <code>app</code>. Más información <a href="https://stenevang.wordpress.com/2013/02/22/google-advanced-power-search-url-request-parameters/"><strong>aquí</strong></a>.</td><td>-</td></tr></tbody></table>

{% hint style="warning" %}
`udm` y `tbm` Los parámetros de contexto no se pueden usar juntos en una sola solicitud de extracción; selecciona solo uno. Usar ambos al mismo tiempo puede provocar conflictos o un comportamiento inesperado.
{% endhint %}

### Otros

Configuraciones y controles adicionales avanzados para requisitos especializados.

<table><thead><tr><th width="222">Parámetro</th><th width="350.3333333333333">Descripción</th><th>Valor predeterminado</th></tr></thead><tbody><tr><td><code>context</code>:<br><code>fpstate</code></td><td>Establecer el valor de <code>fpstate</code> en <code>aig</code> hará que Google cargue más aplicaciones. Este parámetro solo es útil si se usa junto con el parámetro <code>render</code> .</td><td>-</td></tr><tr><td><code>context</code>:<br><code>nfpr</code></td><td><code>true</code> desactivará la autocorrección ortográfica</td><td><code>false</code></td></tr></tbody></table>

### Parámetros de contexto

Todos los parámetros de contexto deben agregarse al array `context` como objetos con pares `key` y `de` , por ejemplo:

```json
...
"context": [
    {
        "key": "filter",
        "value": "0"
    }
]
...
```

## Estructura y procesamiento de datos

### Diccionario de datos

Todas las claves disponibles dentro de la función SERP de AI Overviews se definen en la tabla siguiente:

<table><thead><tr><th width="249">Clave (results.ai_overview)</th><th width="383">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>answer_text</code></td><td>Información general sobre el término consultado en Google Search.</td><td>array</td></tr><tr><td><code>bullet_list</code></td><td>Indica información sobre elementos renderizados en una lista con viñetas dentro de la función SERP de AI Overviews.</td><td>array</td></tr><tr><td><code>products</code></td><td>Una lista de productos con sus respectivos detalles.</td><td>object</td></tr><tr><td><code>source_panel</code></td><td>Una lista de fuentes usadas para generar el resultado de AI Overviews en la función SERP de Google.</td><td>object</td></tr><tr><td><code>additional_questions</code></td><td>Una lista de preguntas adicionales con sus respectivos detalles.</td><td>object</td></tr><tr><td><code>recipes</code></td><td>Una lista de recetas con sus respectivos detalles.</td><td>object</td></tr><tr><td><code>info_list</code></td><td>Una lista de información usada con mayor frecuencia para representar pasos de un proceso relevantes para la consulta de búsqueda.</td><td>array</td></tr><tr><td><code>pos_overall</code></td><td>Una indicación de la posición del resultado de la función SERP de AI Overviews entre todos los resultados SERP disponibles de Google.</td><td>integer</td></tr></tbody></table>

### Trabajar con varios AI Overviews

Como ahora los AI Overviews se devuelven como un array, debes iterar sobre ellos:

{% tabs %}
{% tab title="JavaScript" %}

```javascript
// Processing all AI Overviews in a response
response.results.ai_overviews.forEach((aiOverview, index) => {
  console.log(`Processing AI Overview #${index + 1}`);
  // Process individual components
  if (aiOverview.answer_text) {
    // Handle answer text
  }
  if (aiOverview.bullet_list) {
    // Handle bullet lists
  }
  // And so on...
});
```

{% endtab %}

{% tab title="Python" %}

```python
# Processing all AI Overviews in a response
for index, ai_overview in enumerate(response['results']['ai_overviews']):
    print(f"Processing AI Overview #{index + 1}")
    # Process individual components
    if 'answer_text' in ai_overview:
        answer_texts = ai_overview['answer_text']
        for answer in answer_texts:
            # Process each answer text
            if 'text' in answer:
                for text_item in answer['text']:
                    print(f"Answer text: {text_item}")
    
    if 'bullet_list' in ai_overview:
        bullet_lists = ai_overview['bullet_list']
        for bullet_list in bullet_lists:
            if 'list_title' in bullet_list:
                print(f"List title: {bullet_list['list_title']}")
            if 'points' in bullet_list:
                for point in bullet_list['points']:
                    print(f"- {point}")
    # Continue processing other elements...
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
// Processing all AI Overviews in a response
if (isset($response['results']['ai_overviews']) && is_array($response['results']['ai_overviews'])) {
    foreach ($response['results']['ai_overviews'] as $index => $aiOverview) {
        $indexNumber = $index + 1;
        echo "Processing AI Overview #{$indexNumber}\n";
        
        // Process answer text
        if (isset($aiOverview['answer_text']) && is_array($aiOverview['answer_text'])) {
            foreach ($aiOverview['answer_text'] as $answer) {
                if (isset($answer['text']) && is_array($answer['text'])) {
                    foreach ($answer['text'] as $textItem) {
                        echo "Answer text: {$textItem}\n";
                    }
                }
            }
        }
        
        // Process bullet lists
        if (isset($aiOverview['bullet_list']) && is_array($aiOverview['bullet_list'])) {
            foreach ($aiOverview['bullet_list'] as $bulletList) {
                if (isset($bulletList['list_title'])) {
                    echo "List title: {$bulletList['list_title']}\n";
                }
                if (isset($bulletList['points']) && is_array($bulletList['points'])) {
                    foreach ($bulletList['points'] as $point) {
                        echo "- {$point}\n";
                    }
                }
            }
        }
        // Continue processing other elements...
    }
}
?>
```

{% endtab %}
{% endtabs %}

En la mayoría de los casos, solo habrá un AI Overview, pero tu código debe estar preparado para manejar varias entradas.

Explora a continuación ejemplos de resultados de AI Overviews, categorizados por diferentes consultas de búsqueda: [**Elemento**](#item), [**Recetas**](#recipe), [**Instrucción**](#instruction).

### Elemento

En el siguiente ejemplo, se usó la consulta "Emporio Armani EA3192".

<figure><img src="https://lh7-us.googleusercontent.com/Ecp6t0NHm0ZDg2qopAN4uLilI5onTqfLK8i_GdT_NTeEawPopV-CFGMqHwfi7mX3sTRgD7PnWGks1gsn3yu5Ekmo5tadyQQyMgGpbx0qSwhHlnWSs4RO9_Y7f-0Bww8SIaF4uD9X3z8xO4tIfd948rY" alt=""><figcaption></figcaption></figure>

```json
...
  "ai_overviews": [
    {
      "answer_text": [
        {
          "text": [
            "Emporio Armani es una marca de lujo conocida por sus diseños atemporales y su compromiso con la artesanía italiana.",
            "The Emporio Armani EA3192 is a pair of prescription glasses that are designed for men.",
            "Tienen una montura rectangular hecha de plástico ligero e hipoalergénico.",
            "Las lentes son UV y antirreflectantes.",
            "Aquí hay algunas ideas de las reseñas:"
          ],
          "pos": 1
        }
      ],
      "bullet_list": [
        {
          "list_title": "Pros",
          "points": [
            "Cómodas",
            "Marca mínima"
          ],
          "pos": 1
        }
      ],
      "products": {
        "items": [
          {
            "product_name": "Emporio Armani Men Eyeglasses Shiny Black Size: 53",
            "price": "$163.00",
            "previous_price": null,
            "seller": "Lenscrafters",
            "shipping": "Entrega gratuita",
            "url": "https://www.lenscrafters.com/lc-us/emporio-armani/8056597975810?srsltid=AfmBOoqWO55KIJevhQp_c5OAp0JOM_8Uza3_gCvn9S4x4Vz342AUSQewzJI",
            "pos": 1
          }
        ]
      },
      "source_panel": {
        "items": [
          {
            "url": "https://www.italist.com/magazine/what-is-emporio-armani/#:~:text=Emporio%20Armani%20is%20a%20luxury,reinforce%20the%20perception%20of%20luxury.",
            "source": "italist.com",
            "date": "May 5, 2023",
            "title": "What is Emporio Armani and is Emporio Armani a luxury brand?",
            "pos": 1
          },
        ...
        ]
      },
      "additional_questions": {
        "items": [
          {
           "question": "Is Emporio Armani the same as Giorgio Armani?",
           "pos": 1
          }
        ]
      },
      "pos_overall": 1
    }
  ],
...
```

#### Texto de respuesta

<table><thead><tr><th width="273">Clave (results.ai_overviews.answer_text)</th><th width="368">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>text</code></td><td>Una respuesta breve a la consulta de Google Search.</td><td>array</td></tr><tr><td><code>pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados de respuesta de AI Overviews.</td><td>integer</td></tr></tbody></table>

**Lista con viñetas**

<table><thead><tr><th width="268">Clave (results.ai_overviews.bullet_list)</th><th width="364">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>list_title</code></td><td>El título de la lista con viñetas.</td><td>string</td></tr><tr><td><code>points</code></td><td>Los elementos renderizados en la lista con viñetas. Todos los elementos están separados por comas.</td><td>array</td></tr><tr><td><code>pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados de lista con viñetas de AI Overviews.</td><td>integer</td></tr></tbody></table>

**Productos**

<table><thead><tr><th width="271">Clave (results.ai_overviews.products)</th><th width="364">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>items</code></td><td>Una lista de productos con sus respectivos detalles.</td><td>array</td></tr><tr><td><code>items.product_name</code></td><td>El nombre del producto.</td><td>string</td></tr><tr><td><code>items.price</code></td><td>El precio actual del producto.</td><td>string</td></tr><tr><td><code>items.previous_price</code></td><td>El precio inicial del producto (si aplica).</td><td>string</td></tr><tr><td><code>items.seller</code></td><td>El vendedor del producto.</td><td>string</td></tr><tr><td><code>items.shipping</code></td><td>El tipo de envío disponible para el producto.</td><td>string</td></tr><tr><td><code>items.url</code></td><td>La URL del producto.</td><td>string</td></tr><tr><td><code>items.pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados de producto de AI Overviews.</td><td>integer</td></tr></tbody></table>

#### Panel de fuentes

<table><thead><tr><th width="274">Clave (results.ai_overviews.source_panel)</th><th width="353">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>items</code></td><td>Una lista de fuentes usadas para generar el resultado de AI Overviews en la función SERP de Google.</td><td>object</td></tr><tr><td><code>items.url</code></td><td>La URL del sitio web.</td><td>string</td></tr><tr><td><code>items.source</code></td><td>El nombre del sitio web.</td><td>string</td></tr><tr><td><code>items.date</code></td><td>La fecha en que se publicó el artículo.</td><td>string</td></tr><tr><td><code>items.title</code></td><td>El título del artículo.</td><td>string</td></tr><tr><td><code>items.pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados del panel de fuentes de AI Overviews.</td><td>integer</td></tr></tbody></table>

#### Preguntas adicionales

<table><thead><tr><th width="275">Clave (results.ai_overviews.additional_questions)</th><th width="343">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>items.question</code></td><td>Una lista de preguntas adicionales relevantes para la consulta de búsqueda original, separadas por comas.</td><td>array</td></tr><tr><td><code>items.pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados de preguntas adicionales de AI Overviews.</td><td>integer</td></tr></tbody></table>

### Receta

En el siguiente ejemplo, se usó la consulta "recipe for an apple pie".

<figure><img src="https://338917265-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FBqo3YSylUPTuTuoo5wPH%2Frecipe_for_an_apple_pie.png?alt=media&#x26;token=fba1b0f9-4ac8-4421-abb8-f35b03e542b1" alt=""><figcaption></figcaption></figure>

```json
...  
 "ai_overviews": [
   {
      "recipes": {
        "items": [
          {
            "description": "This simple recipe features a homemade crust, Granny Smith apples, and warm spices.",
            "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...",
            "source": "Allrecipes",
            "rating": "4.8",
            "rating_count": "13K",
            "duration": "90 min",
            "url": "https://www.allrecipes.com/recipe/12682/apple-pie-by-grandma-ople/",
            "title": "Apple Pie by Grandma Ople"
          },
...
        ]
      }
    }
  ],
...
```

**Recetas**

<table><thead><tr><th width="234">Clave (results.ai_overviews.recipes)</th><th width="375">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>items</code></td><td>Una lista de recetas con sus respectivos detalles.</td><td>array</td></tr><tr><td><code>items.description</code></td><td>Una breve descripción de la receta.</td><td>string</td></tr><tr><td><code>items.image</code></td><td>Una imagen en miniatura de la receta codificada en base64.</td><td>string</td></tr><tr><td><code>items.source</code></td><td>El nombre del sitio donde se publica la receta.</td><td>string</td></tr><tr><td><code>items.rating</code></td><td>La calificación de la receta.</td><td>string</td></tr><tr><td><code>items.rating_count</code></td><td>El número de valoraciones.</td><td>string</td></tr><tr><td><code>items.duration</code></td><td>El tiempo necesario para preparar el plato.</td><td>string</td></tr><tr><td><code>items.url</code></td><td>La URL de la receta completa.</td><td>string</td></tr><tr><td><code>items.title</code></td><td>El título de la receta.</td><td>string</td></tr></tbody></table>

En el siguiente ejemplo, se usó la consulta "recipe of a juicy succulent steak".

<figure><img src="https://338917265-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FnSGAvuTLJoNsEKNxZaa6%2Frecipe_of_a_juicy_succulent_steak.png?alt=media&#x26;token=709025b4-80a5-4a43-8d9f-7429bc4da446" alt=""><figcaption></figcaption></figure>

#### Lista de información

<table><thead><tr><th width="276">Clave (results.ai_overviews.info_list)</th><th width="353">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>list_title</code></td><td>El título de la lista.</td><td>string</td></tr><tr><td><code>list_items</code></td><td>Contiene una lista de elementos con sus respectivos detalles.</td><td>array</td></tr><tr><td><code>list_items.title</code></td><td>El título de la sección dentro de la lista.</td><td>string</td></tr><tr><td><code>list_items.content</code></td><td>Una breve descripción de la sección.</td><td>array</td></tr><tr><td><code>list_item.pos</code></td><td>Un indicador que denota la posición de un elemento dado entre todos los resultados de la lista de AI Overviews Info.</td><td>integer</td></tr></tbody></table>

### Instrucción

En el siguiente ejemplo, se usó la consulta "docker exec commands explained".

<figure><img src="https://338917265-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2Fb3YBmQk5cYVULbAAPokZ%2Fdocker_exec_command_explained.png?alt=media&#x26;token=bf50d5e7-b4f1-48a0-ab76-80475d2323fa" alt=""><figcaption></figcaption></figure>

```json
...
  "ai_overviews": [
    {
      "answer_text": [
        {
          "text": [
            "The docker execExecIn computing, exec es una funcionalidad de un sistema operativo que ejecuta un archivo ejecutable en el contexto de un proceso ya existente, reemplazando el ejecutable anterior...",
            "Es una herramienta poderosa que puede usarse para una variedad de tareas, como solucionar problemas de un contenedor, ejecutar un script o instalar software."
          ],
          "pos": 1
        },
        {
          "text": [
            "La sintaxis del comando docker exec es la siguiente:"
          ],
          "command": [
            "docker exec [OPTIONS] CONTAINER COMMAND [ARG...]"
          ],
          "pos": 2
        },
        ...
        }
      ]
    }
  ],
...
```

**Comando de texto de respuesta**

{% hint style="info" %}
Nota: los detalles se renderizan en el mismo array que para [**consulta de búsqueda relacionada con el elemento**](#answer-text), sin embargo, aparece un nuevo tipo de clave (command) para el tipo de consulta relacionado con instrucciones
{% endhint %}

<table><thead><tr><th width="268">Clave (results.ai_overviews.answer_text)</th><th width="342">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>command</code></td><td>Una instrucción dada a un ordenador o software para realizar una tarea específica.</td><td>string</td></tr></tbody></table>
