> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/api-targets/es/motores-de-busqueda/google/ai-overviews.md).

# AI Overviews

Las `google_search` y `google_ads` las fuentes pueden devolver AI Overviews 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 “La gente también pregunta” y “Cosas que saber.”

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 dinámicamente este contenido 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án disponibles en la mayoría de los países, salvo algunas excepciones. Actualmente, los países excluidos más importantes 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 continuamente, 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 [**Realtime**](/products/es/web-scraper-api/integration-methods/realtime.md) método de integración sincrónica en nuestros ejemplos. Si deseas usar [**Proxy Endpoint**](/products/es/web-scraper-api/integration-methods/proxy-endpoint.md) o asincrónica [**Push-Pull**](/products/es/web-scraper-api/integration-methods/push-pull.md) integración, consulta la [**métodos de integración**](/products/es/web-scraper-api/integration-methods.md) sección.

## Valores de los parámetros de solicitud

### General

Opciones básicas de configuración y personalización para extraer resultados de búsqueda web de Google 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>Configura 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="/spaces/xofNngbwiAAH0MB3lMAb/pages/47852075b446d7f11217f4c0334348f21fb197b8#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 parseados cuando se establece en <code>true</code>.</td><td><code>false</code></td></tr><tr><td><code>callback_url</code></td><td>URL de tu endpoint de callback. <a href="/spaces/xofNngbwiAAH0MB3lMAb/pages/28181dba27c108c1684f7f17f5d8fef78bd80d90"><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 avanzados de búsqueda de Google

Al extraer datos, puede resultarte útil combinar operadores avanzados de búsqueda de Google con tu consulta. Te permite personalizar el alcance de la búsqueda, asegurando que los resultados sean más relevantes y concretos. 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 la consulta de ejemplo 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 para la que debe adaptarse el resultado. Usar este parámetro correctamente es extremadamente importante para obtener los datos correctos. Para más información, lee sobre nuestras sugerencias de <code>geo_location</code> estructuras de parámetros <a href="/spaces/xofNngbwiAAH0MB3lMAb/pages/7ba8016b17441e2b1496d43e14d3e47b6eefb6f9#google"><strong>aquí</strong></a><strong>.</strong></td><td>-</td></tr><tr><td><code>locale</code></td><td><code>Accept-Language</code> valor de encabezado que cambia el idioma de la interfaz web de la página de búsqueda de Google. <a href="/spaces/xofNngbwiAAH0MB3lMAb/pages/6eb70a43f15a81321802a17be08ec05b79c90a3f#google"><strong>Más información</strong></a>.</td><td>-</td></tr></tbody></table>

### Paginación

Controles para gestionar la paginación y la recuperació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 establecida). Al especificar los números de página en un array JSON con la <code>page</code> clave e indicando el número de resultados orgánicos por página usando la <code>limit</code> clave, puedes minimizar la posibilidad de ver resultados orgánicos superpuestos entre páginas (p. ej., 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 desplazamiento continuo

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

#### Límite por página

{% hint style="warning" %}
Debido a cambios recientes en los límites 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 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> (incluido) 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 diversos criterios. Aprende a usar 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 por 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 activarlo.</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>A emparejar 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 es como un contenedor para parámetros de Google más oscuros, como limitar/ordenar resultados por fecha, así como otros filtros, algunos de los cuales dependen del <code>tbm</code> parámetro (p. ej. <code>tbs=app_os:1</code> solo está disponible con <code>tbm</code> valor <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 pueden usarse juntos en una sola solicitud de scraping; selecciona solo uno. Usar ambos al mismo tiempo puede provocar conflictos o un comportamiento inesperado.
{% endhint %}

### Otros

Configuraciones y controles avanzados adicionales 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 <code>fpstate</code> valor en <code>aig</code> hará que Google cargue más aplicaciones. Este parámetro solo es útil si se usa junto con el <code>render</code> parámetro.</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 añadirse al `context` array como objetos con `key` y `valor` pares, por ejemplo:

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

## Estructura de datos y procesamiento

### 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 de consulta de Google Search.</td><td>arreglo</td></tr><tr><td><code>bullet_list</code></td><td>Indica información sobre elementos mostrados en una lista con viñetas dentro de la función SERP de AI Overviews.</td><td>arreglo</td></tr><tr><td><code>products</code></td><td>Una lista de productos con sus detalles correspondientes.</td><td>objeto</td></tr><tr><td><code>source_panel</code></td><td>Una lista de fuentes utilizadas para generar el resultado de AI Overviews en la función SERP de Google.</td><td>objeto</td></tr><tr><td><code>additional_questions</code></td><td>Una lista de preguntas adicionales con sus detalles correspondientes.</td><td>objeto</td></tr><tr><td><code>recipes</code></td><td>Una lista de recetas con sus detalles correspondientes.</td><td>objeto</td></tr><tr><td><code>info_list</code></td><td>Una lista de información usada con mayor frecuencia para representar los pasos de un proceso relevante para la consulta de búsqueda.</td><td>arreglo</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>entero</td></tr></tbody></table>

### Trabajar con múltiples AI Overviews

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

{% 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 'fragments' in answer:
                for text_item in answer['fragments']:
                    print(f"Answer text: {fragment['text']}")
    
    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']:
                    point_text = point['text']
                    print(f"- {point_text}")
    # 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['fragments']) && is_array($answer['fragments'])) {
                    foreach ($answer['fragments'] as $fragment) {
                        $textItem = $fragment['text'];
                        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) {
                        $pointText = $point['text'];
                        echo "- {$pointText}\n";
                    }
                }
            }
        }
        // Continue processing other elements...
    }
}
?>
```

{% endtab %}
{% endtabs %}

En la mayoría de los casos, habrá solo 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 distintas 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": [
        {
          "fragments": [
            {
              "references": [
                {
                  "source": "italist.com",
                  "url": "https://www.italist.com/magazine/what-is-emporio-armani/"
                }
              ],
              "text": "Emporio Armani es una marca de lujo conocida por sus diseños atemporales y su compromiso con la artesanía italiana."
            },
            {
              "text": "Las gafas graduadas Emporio Armani EA3192 están diseñadas para hombre."
            },
            {
              "text": "Tienen una montura rectangular hecha de plástico hipoalergénico y ligero."
            },
            {
              "text": "Las lentes son UV y antirreflejo."
            },
            {
              "text": "Aquí hay algunas ideas de las reseñas:"
            }
          ],
          "pos": 1
        }
      ],
      "bullet_list": [
       {
          "list_title": "Ventajas",
          "points": [
            {
              "text": "Cómodo"
            },
            {
              "text": "Marca mínima"
            }
        ],
        "pos": 1
      }
  ],
      "products": {
        "items": [
          {
            "product_name": "Gafas para hombre Emporio Armani negro brillante Talla: 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": "5 de mayo de 2023",
            "title": "¿Qué es Emporio Armani y es Emporio Armani una marca de lujo?",
            "pos": 1
          },
        ...
        ]
      },
      "additional_questions": {
        "items": [
          {
           "question": "¿Emporio Armani es lo mismo que 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>fragmentos</code></td><td>Una respuesta breve a la consulta de Google Search.</td><td>arreglo</td></tr><tr><td><mark style="background-color:green;"><strong><code>fragments.text</code></strong></mark></td><td>El contenido del texto de respuesta del fragmento. </td><td>cadena</td></tr><tr><td><code>fragments.references</code></td><td>Una lista de fuentes referenciadas por el fragmento.</td><td>arreglo</td></tr><tr><td><code>fragments.references.source</code></td><td>El nombre de la fuente referenciada.</td><td>cadena</td></tr><tr><td><mark style="background-color:green;"><strong><code>fragments.references.url</code></strong></mark></td><td>La URL de la fuente referenciada. </td><td>cadena</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>entero</td></tr></tbody></table>

&#x20;   \- parámetro obligatorio

**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>cadena</td></tr><tr><td><code>points</code></td><td>Los elementos mostrados en la lista con viñetas. Todos los elementos están separados por comas.</td><td>arreglo</td></tr><tr><td><mark style="background-color:green;"><strong><code>points.text</code></strong></mark></td><td>El contenido de texto del punto con viñeta.</td><td>cadena</td></tr><tr><td><code>points.references</code></td><td>Una lista de fuentes referenciadas por el punto con viñeta.</td><td>arreglo</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 la lista con viñetas de AI Overviews.</td><td>entero</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 detalles correspondientes.</td><td>arreglo</td></tr><tr><td><code>items.product_name</code></td><td>El nombre del producto.</td><td>cadena</td></tr><tr><td><code>items.price</code></td><td>El precio actual del producto.</td><td>cadena</td></tr><tr><td><code>items.previous_price</code></td><td>El precio inicial del producto (si corresponde).</td><td>cadena</td></tr><tr><td><code>items.seller</code></td><td>El vendedor del producto.</td><td>cadena</td></tr><tr><td><code>items.shipping</code></td><td>El tipo de envío disponible para el producto.</td><td>cadena</td></tr><tr><td><code>items.url</code></td><td>La URL del producto.</td><td>cadena</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 productos de AI Overviews.</td><td>entero</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 utilizadas para generar el resultado de AI Overviews en la función SERP de Google.</td><td>objeto</td></tr><tr><td><code>items.url</code></td><td>La URL del sitio web.</td><td>cadena</td></tr><tr><td><code>items.source</code></td><td>El nombre del sitio web.</td><td>cadena</td></tr><tr><td><code>items.date</code></td><td>La fecha en que se publicó el artículo.</td><td>cadena</td></tr><tr><td><code>items.title</code></td><td>El título del artículo.</td><td>cadena</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>entero</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, separadas por comas, relevantes para la consulta de búsqueda original.</td><td>arreglo</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>entero</td></tr></tbody></table>

### Receta

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

<figure><img src="/files/539d6ad1da773b8a618966a5cdd04efef0e2fcc9" alt=""><figcaption></figcaption></figure>

```json
...  
 "ai_overviews": [
   {
      "recipes": {
        "items": [
          {
            "description": "Esta receta sencilla incluye una masa casera, manzanas Granny Smith y especias cálidas.",
            "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": "Pastel de manzana de 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 detalles correspondientes.</td><td>arreglo</td></tr><tr><td><code>items.description</code></td><td>Una breve descripción de la receta.</td><td>cadena</td></tr><tr><td><code>items.image</code></td><td>Una imagen en miniatura codificada en base64 de la receta.</td><td>cadena</td></tr><tr><td><code>items.source</code></td><td>El nombre del sitio donde se publica la receta.</td><td>cadena</td></tr><tr><td><code>items.rating</code></td><td>La valoración de la receta.</td><td>cadena</td></tr><tr><td><code>items.rating_count</code></td><td>El número de valoraciones.</td><td>cadena</td></tr><tr><td><code>items.duration</code></td><td>El tiempo necesario para preparar el plato.</td><td>cadena</td></tr><tr><td><code>items.url</code></td><td>La URL de la receta completa.</td><td>cadena</td></tr><tr><td><code>items.title</code></td><td>El título de la receta.</td><td>cadena</td></tr></tbody></table>

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

<figure><img src="/files/ecf63c25b2bb29285cd5a3cb633d9073c458481f" 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>cadena</td></tr><tr><td><code>list_items</code></td><td>Contiene una lista de elementos con sus detalles respectivos.</td><td>arreglo</td></tr><tr><td><code>list_items.title</code></td><td>El título de la sección dentro de la lista.</td><td>cadena</td></tr><tr><td><code>list_items.content</code></td><td>Una breve descripción de la sección.</td><td>arreglo</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 información de AI Overviews.</td><td>entero</td></tr></tbody></table>

### Instrucción

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

<figure><img src="/files/95ea65f19cf1582bd7724711a13e9753e26b068f" alt=""><figcaption></figcaption></figure>

```json
...
  "ai_overviews": [
    {
      "answer_text": [
        {
          "fragments": [
            "El docker execExecEn informática, 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 potente que puede usarse para diversas tareas, como solucionar problemas de un contenedor, ejecutar un script o instalar software."
          ],
          "pos": 1
        },
        {
          "fragments": [
            "La sintaxis del comando docker exec es la siguiente:"
          ],
          "command": [
            "docker exec [OPTIONS] CONTAINER COMMAND [ARG...]"
          ],
          "pos": 2
        },
        ...
        }
      ]
    }
  ],
...
```

**Texto de respuesta del comando**

{% hint style="info" %}
Nota: los detalles se muestran en el mismo arreglo 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 relacionada 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 una computadora o software para realizar una tarea específica.</td><td>cadena</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/api-targets/es/motores-de-busqueda/google/ai-overviews.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
