Configurar controles de publicación

Los controles de publicación (también llamados controles) cambian el comportamiento predeterminado de cómo se publica una solicitud cuando se devuelven resultados. Los controles de servicio actúan a nivel de almacén de datos.

Por ejemplo, los controles pueden destacar y ocultar resultados, filtrar entradas de los resultados devueltos, asociar cadenas entre sí como sinónimos o redirigir resultados a URIs específicos.

Acerca de los controles de publicación

Para cambiar los resultados de una solicitud, primero crea un control de publicación. Después, asocia ese control a la configuración de servicio de una aplicación. Una configuración de servicio configura metadatos que se usan para generar resultados en tiempo de servicio, como resultados de búsqueda o respuestas. Un control de servicio solo afecta a las solicitudes que sirve la aplicación si el control está asociado a la configuración de servicio de la aplicación.

Algunos controles, como los de aumento, dependen de los almacenes de datos. Si se elimina un almacén de datos de una aplicación, los controles que dependan de ese almacén también se eliminarán de la aplicación y se desactivarán, pero no se borrarán.

Tipos de control de publicación

Están disponibles los siguientes tipos de controles de servicio:

Control Descripción Disponible para
Aumentar el control Cambia el orden de los resultados devueltos. Buscar aplicaciones con almacenes de datos que admitan un esquema, como almacenes de datos que contengan datos estructurados o datos sin estructurar con metadatos
Control de filtros Elimina entradas de los resultados devueltos. Buscar aplicaciones con almacenes de datos que admitan un esquema, como almacenes de datos que contengan datos estructurados o datos sin estructurar con metadatos
Control de sinónimos Asocia las consultas entre sí Buscar aplicaciones con almacenes de datos estructurados o no estructurados
Control de redirección Redirige a un URI especificado. Todas las aplicaciones de búsqueda
Promover el control Promueve un enlace especificado para una consulta. Buscar aplicaciones con almacenes de datos estructurados o no estructurados

Acerca de las condiciones

Al crear un control, puedes definir una condición que determine cuándo se aplica. Las condiciones se definen mediante campos de condición. Están disponibles los siguientes campos de condición:

  • queryTerms: control opcional que se aplica cuando se buscan consultas específicas. Cuando se usa la condición queryTerms, el control se aplica cuando el valor de queryTerms coincide con un término de SearchRequest.query. Los términos de consulta solo se pueden usar cuando Control.searchUseCase se define como SOLUTION_TYPE_SEARCH. Se pueden especificar hasta 10 queryTerms diferentes en un solo Control.condition. Si no se especifican términos de consulta, se ignora el campo queryTerms.

    Para crear correctamente un control de promoción, debe especificar el campo queryTerms con fullMatch definido como true o false.

  • activeTimeRange: un control opcional que se aplica cuando se produce una solicitud en un intervalo de tiempo especificado. Comprueba que la hora en la que se recibió una solicitud esté entre las activeTimeRange.startTime y las activeTimeRange.endTime. Se pueden especificar hasta 10 intervalos de activeTimeRange en un solo Control.condition. Si no se especifica el campo activeTimeRange, se ignora.

Si se especifican varias condiciones para un control, este se aplica a la solicitud de búsqueda cuando se cumplen ambos tipos de condiciones. Si se especifican varios valores para la misma condición, solo es necesario que coincida uno de ellos para que se cumpla la condición.

Por ejemplo, supongamos que se especifica la siguiente condición con dos términos de consulta:

"queryTerms": [
  {
    "value": "gShoe",
    "fullMatch": true
  },
  {
    "value": "gBoot",
    "fullMatch": true
  }
]

La condición se cumplirá en una solicitud con SearchRequest.query="gShoe" o con SearchRequest.query="gBoot", pero no con SearchRequest.query="gSandal" ni con ninguna otra cadena.

Si no se especifica ninguna condición, el control se aplica siempre.

Para obtener más información, consulta el campo Condition en la referencia de la API.

Crear y adjuntar controles de publicación de la mejora

Un control de servicio de impulso se define como un control con un boostAction.

Sigue estas instrucciones para crear un control de publicación de la mejora.

Para obtener información detallada sobre los campos, consulta la referencia de la API engines.controls y la referencia de la API engines.controls.create.

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Gemini Enterprise.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Ejecuta los siguientes comandos curl para crear tus controles.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
    "displayName": "DISPLAY_NAME",
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "useCases": [
      "USE_CASE"
    ],
    "conditions": {
     "queryTerms": [
       {
         "value": "VALUE",
         "fullMatch": FULL_MATCH
       }
     ],
     "activeTimeRange": [
       {
         "startTime": "START_TIMESTAMP",
         "endTime": "END_TIMESTAMP"
       }
     ]
    },
    "boostAction": {
      "boost": BOOST_VALUE,
      "filter": "FILTER",
      "dataStore": "DATA_STORE_RESOURCE_PATH"
     }
    }'

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.
    • APP_ID: el ID de la aplicación.
    • CONTROL_ID: identificador único del control. El ID puede contener entre 1 y 63 caracteres, que pueden ser letras, dígitos, guiones y guiones bajos.
    • DISPLAY_NAME: nombre del control legible por humanos. Google recomienda que este nombre indique cuándo o por qué usar el control. Debe ser una cadena codificada en UTF-8 con una longitud de entre 1 y 128 caracteres.
    • USE_CASE: debe ser SEARCH_USE_CASE_SEARCH o SEARCH_USE_CASE_BROWSE. Si se especifica SEARCH_USE_CASE_BROWSE, no se puede usar Condition.queryTerms en la condición.
    • CONDITION: campo opcional que define cuándo se debe aplicar el control. Contiene los siguientes campos:
      • VALUE: el valor de consulta específico con el que se va a comparar. Es una cadena UTF-8 en minúsculas con una longitud de [1, 5000]. Si FULL_MATCH_1 es true, este campo puede tener un máximo de tres términos separados por espacios.
      • FULL_MATCH: valor booleano que indica si la consulta de búsqueda debe coincidir exactamente con el término de consulta. Si se define como true, SearchRequest.query debe coincidir completamente con queryTerm.value. Si se le asigna el valor false, SearchRequest.query debe contener queryTerm.value como una subcadena.
      • START_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" para indicar el inicio de un periodo.
      • END_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" que indica el final de un periodo.
    • BOOST_VALUE: un número de punto flotante en el intervalo [-1,1]. Si el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Si el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados). Para obtener más información, consulta boostAction.
    • FILTER: una cadena que especifica los requisitos que debe cumplir el documento. Si el documento cumple todos los requisitos, se aplica el aumento. De lo contrario, no habrá ningún cambio. Si este campo está vacío, el aumento se aplica a todos los documentos del almacén de datos. Para obtener información sobre la sintaxis de los filtros, consulta Sintaxis de las expresiones de filtro. Nota: El campo de documento title no se puede filtrar.
    • DATA_STORE_RESOURCE_PATH: la ruta completa del recurso del almacén de datos cuyos documentos se deben potenciar con este control. El formato de la ruta completa del recurso es projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID. Este almacén de datos debe estar asociado al motor especificado en la solicitud.
  3. Asocia el control a la configuración de servicio de la aplicación mediante el método engines.servingConfigs.patch.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=boost_control_ids" \
    -d '{
     "boostControlIds": ["BOOST_ID_1", "BOOST_ID_2"]
    }'

    Sustituye BOOST_ID_N por los IDs de los controles que has creado en el paso anterior.

Crear y adjuntar controles de publicación de filtros

Un control de servicio de filtros se define como un control con un filterAction.

Sigue estas instrucciones para crear un control de publicación de filtros.

Para obtener información detallada sobre los campos, consulta la referencia de la API engines.controls y la referencia de la API engines.controls.create.

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Gemini Enterprise.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Ejecuta los siguientes comandos curl para crear tus controles.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
    "displayName": "DISPLAY_NAME",
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "useCases": ["USE_CASE"],
    "conditions": {
      "queryTerms": [
        {
          "value": "VALUE",
          "fullMatch": FULL_MATCH
        }
      ],
      "activeTimeRange": [
        {
          "startTime": "START_TIMESTAMP",
          "endTime": "END_TIMESTAMP"
        }
      ]
    },
    "filterAction": {
      "filter": "FILTER"
     }
    }'

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.
    • APP_ID: el ID de la aplicación.
    • CONTROL_ID: identificador único del control. El ID puede contener entre 1 y 63 caracteres, que pueden ser letras, dígitos, guiones y guiones bajos.
    • DISPLAY_NAME: nombre del control legible por humanos. Google recomienda que este nombre indique cuándo o por qué usar el control. Debe ser una cadena codificada en UTF-8 con una longitud de entre 1 y 128 caracteres.
    • USE_CASE: debe ser SEARCH_USE_CASE_SEARCH o SEARCH_USE_CASE_BROWSE. Si se especifica SEARCH_USE_CASE_BROWSE, no se puede usar Condition.queryTerms en la condición.
    • CONDITION: campo opcional que define cuándo se debe aplicar el control. Contiene los siguientes campos:
      • VALUE: el valor de consulta específico con el que se va a comparar. Es una cadena UTF-8 en minúsculas con una longitud de [1, 5000]. Si FULL_MATCH_1 es true, este campo puede tener un máximo de tres términos separados por espacios.
      • FULL_MATCH: valor booleano que indica si la consulta de búsqueda debe coincidir exactamente con el término de consulta. Si se define como true, SearchRequest.query debe coincidir completamente con queryTerm.value. Si se le asigna el valor false, SearchRequest.query debe contener queryTerm.value como una subcadena.
      • START_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" para indicar el inicio de un periodo.
      • END_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" que indica el final de un periodo.
    • FILTER: una cadena que especifica los requisitos que debe cumplir el documento. Si el documento cumple todos los requisitos, se devolverá en los resultados. De lo contrario, el documento no se incluirá en los resultados. Para obtener información sobre la sintaxis de los filtros, consulta Sintaxis de las expresiones de filtro. Para obtener más información, consulta filterAction. Nota: El campo de documento title no se puede filtrar.
  3. Asocia el control a la configuración de servicio de la aplicación mediante el método engines.servingConfigs.patch.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=filter_control_ids" \
    -d '{
      "filterControlIds": ["FILTER_ID_1", "FILTER_ID_2"]
    }'

    Sustituye FILTER_ID_N por los IDs de los controles que has creado en el paso anterior.

Crear y adjuntar controles de publicación de sinónimos

Un control de servicio de sinónimos se define como un control con un synonymsAction.

Sigue estas instrucciones para crear un control de servicio de sinónimos.

Para obtener información detallada sobre los campos, consulta la referencia de la API engines.controls y la referencia de la API engines.controls.create.

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Gemini Enterprise.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Ejecuta los siguientes comandos curl para crear tus controles.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
    "displayName": "DISPLAY_NAME",
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "useCases": ["USE_CASE"],
    "conditions": {
      "queryTerms": [
        {
          "value": "VALUE",
          "fullMatch": FULL_MATCH
        }
      ],
      "activeTimeRange": [
        {
          "startTime": "START_TIMESTAMP",
          "endTime": "END_TIMESTAMP"
        }
      ]
    },
    "synonymsAction": {
      "synonyms": ["SYNONYMS_1","SYNONYMS_2"]
     }
    }'

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.
    • APP_ID: el ID de la aplicación.
    • CONTROL_ID: identificador único del control. El ID puede contener entre 1 y 63 caracteres, que pueden ser letras, dígitos, guiones y guiones bajos.
    • DISPLAY_NAME: nombre del control legible por humanos. Google recomienda que este nombre indique cuándo o por qué usar el control. Debe ser una cadena codificada en UTF-8 con una longitud de entre 1 y 128 caracteres.
    • USE_CASE: debe ser SEARCH_USE_CASE_SEARCH o SEARCH_USE_CASE_BROWSE. Si se especifica SEARCH_USE_CASE_BROWSE, no se puede usar Condition.queryTerms en la condición.
    • CONDITION: campo opcional que define cuándo se debe aplicar el control. Contiene los siguientes campos:
      • VALUE: el valor de consulta específico con el que se va a comparar. Es una cadena UTF-8 en minúsculas con una longitud de [1, 5000]. Si FULL_MATCH_1 es true, este campo puede tener un máximo de tres términos separados por espacios.
      • FULL_MATCH: valor booleano que indica si la consulta de búsqueda debe coincidir exactamente con el término de consulta. Si se define como true, SearchRequest.query debe coincidir completamente con queryTerm.value. Si se le asigna el valor false, SearchRequest.query debe contener queryTerm.value como una subcadena.
      • START_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" para indicar el inicio de un periodo.
      • END_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" que indica el final de un periodo.
    • SYNONYMS_N: lista de cadenas asociadas entre sí, lo que hace que sea más probable que cada una muestre resultados similares. Aunque es más probable que obtengas resultados similares, si buscas cada una de las entradas de sinónimos, es posible que no recibas todos los resultados relevantes de todos los sinónimos asociados. Debes especificar al menos dos sinónimos y puedes especificar hasta 100. Cada sinónimo debe estar codificado en UTF-8 y en minúsculas. No se permiten cadenas duplicadas. Por ejemplo, puedes añadir "pixel", "teléfono Android" y "teléfono de Google" como sinónimos. Para obtener más información, consulta synonymsAction.
  3. Asocia el control a la configuración de servicio de la aplicación mediante el método engines.servingConfigs.patch.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=synonyms_control_ids" \
    -d '{
      "synonymsControlIds": ["SYNONYMS_ID_1", "SYNONYMS_ID_2"]
    }'

    Sustituye SYNONYMS_ID_N por los IDs de los controles que has creado en el paso anterior.

Crear y adjuntar controles de publicación de redirecciones

Un control de servicio de redirección permite redirigir a los usuarios a un URI proporcionado. Los controles de redirección se definen como controles con un redirectAction.

Sigue estas instrucciones para crear un control de publicación de redirecciones.

Para obtener información detallada sobre los campos, consulta la referencia de la API engines.controls y la referencia de la API engines.controls.create.

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Gemini Enterprise.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Ejecuta los siguientes comandos curl para crear tus controles.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
    "displayName": "DISPLAY_NAME",
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "useCases": ["USE_CASE"],
    "conditions": {
      "queryTerms": [
        {
          "value": "VALUE",
          "fullMatch": FULL_MATCH
        }
      ],
      "activeTimeRange": [
        {
          "startTime": "START_TIMESTAMP",
          "endTime": "END_TIMESTAMP"
        }
      ]
    },
    "redirectAction": {
      "redirectURI": "REDIRECT_URI"
     }
    }'

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.
    • APP_ID: el ID de la aplicación.
    • CONTROL_ID: identificador único del control. El ID puede contener entre 1 y 63 caracteres, que pueden ser letras, dígitos, guiones y guiones bajos.
    • DISPLAY_NAME: nombre del control legible por humanos. Google recomienda que este nombre indique cuándo o por qué usar el control. Debe ser una cadena codificada en UTF-8 con una longitud de entre 1 y 128 caracteres.
    • USE_CASE: debe ser SEARCH_USE_CASE_SEARCH o SEARCH_USE_CASE_BROWSE. Si se especifica SEARCH_USE_CASE_BROWSE, no se puede usar Condition.queryTerms en la condición.
    • CONDITION: campo opcional que define cuándo se debe aplicar el control. Contiene los siguientes campos:
      • VALUE: el valor de consulta específico con el que se va a comparar. Es una cadena UTF-8 en minúsculas con una longitud de [1, 5000]. Si FULL_MATCH_1 es true, este campo puede tener un máximo de tres términos separados por espacios.
      • FULL_MATCH: valor booleano que indica si la consulta de búsqueda debe coincidir exactamente con el término de consulta. Si se define como true, SearchRequest.query debe coincidir completamente con queryTerm.value. Si se le asigna el valor false, SearchRequest.query debe contener queryTerm.value como una subcadena.
      • START_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" para indicar el inicio de un periodo.
      • END_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" que indica el final de un periodo.
    • REDIRECT_URI_N: un URI al que se te redirige. Puede tener una longitud máxima de 2000 caracteres. Por ejemplo, si el valor del término de consulta es "asistencia", puede configurar una redirección a su página de asistencia técnica en lugar de devolver (o no devolver) resultados de búsqueda para "asistencia". En este ejemplo, el URI de redirección pasa a ser "https://www.example.com/support". Para obtener más información, consulta redirectAction.
  3. Asocia el control a la configuración de servicio de la aplicación mediante el método engines.servingConfigs.patch.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=redirect_control_ids" \
    -d '{
      "redirectControlIds": ["REDIRECT_ID_1", "REDIRECT_ID_2"]
    }'

    Sustituye REDIRECT_ID_N por los IDs de los controles que has creado en el paso anterior.

Crear y adjuntar controles de publicación de promociones

Un control de publicación de promoción te permite mostrar un enlace como resultado promocionado. Este control está disponible para las aplicaciones de búsqueda con almacenes de datos estructurados o sin estructurar y para las aplicaciones de búsqueda combinada.

Para que el control de promoción surta efecto, debes adjuntarlo a la configuración de servicio de la aplicación.

Los controles de promoción se definen mediante un promoteAction.

Para crear correctamente un control de promoción, debe especificar el campo queryTerms con fullMatch definido como true o false.

Sigue estas instrucciones para crear un control de publicación de promociones.

Para obtener información detallada sobre los campos, consulta la referencia de la API engines.controls y la referencia de la API engines.controls.create.

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Gemini Enterprise.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Ejecuta los siguientes comandos curl para crear tus controles.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
    "displayName": "DISPLAY_NAME",
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "useCases": ["USE_CASE"],
    "conditions": {
      "queryTerms": [
        {
          "value": "VALUE",
          "fullMatch": FULL_MATCH_TRUE|FALSE
        }
      ],
      "activeTimeRange": [
        {
          "startTime": "START_TIMESTAMP",
          "endTime": "END_TIMESTAMP"
        }
      ],
    },
    "promoteAction": {
      "dataStore": "DATA_STORE_RESOURCE_PATH",
      "searchLinkPromotion": {
         "document": "DOCUMENT_RESOURCE_PATH",
         "title": "TITLE",
         "uri": "URI",
         "description": "URI_DESCRIPTION",
      }
     }
    }'

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.
    • APP_ID: el ID de la aplicación.
    • CONTROL_ID: identificador único del control. El ID puede contener entre 1 y 63 caracteres, que pueden ser letras, dígitos, guiones y guiones bajos.
    • DISPLAY_NAME: nombre del control legible por humanos. Google recomienda que este nombre indique cuándo o por qué usar el control. Debe ser una cadena codificada en UTF-8 con una longitud de entre 1 y 128 caracteres.
    • USE_CASE: debe ser SEARCH_USE_CASE_SEARCH o SEARCH_USE_CASE_BROWSE. Si se especifica SEARCH_USE_CASE_BROWSE, no se puede usar Condition.queryTerms en la condición.
    • Condition: objeto opcional que define cuándo se debe aplicar el control. Contiene los siguientes campos:
      • queryTerms:
        • VALUE: el valor de consulta específico con el que se va a comparar. Es una cadena UTF-8 en minúsculas con una longitud de [1, 5000].
        • FULL_MATCH_TRUE|FALSE: valor booleano que indica si el término de consulta debe coincidir por completo.
      • activeTimeRange:
        • START_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" para indicar el inicio de un periodo.
        • END_TIMESTAMP: marca de tiempo en formato RFC 3339 UTC "Zulu" que indica el final de un periodo.
    • DATA_STORE_RESOURCE_PATH: la ruta completa del recurso del almacén de datos cuyos resultados de búsqueda contienen la URL promocionada. El formato de la ruta completa del recurso es projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID. Este almacén de datos debe estar asociado al motor especificado en la solicitud.
    • DOCUMENT_RESOURCE_PATH: un campo para especificar la ruta de recurso del documento que se va a promocionar. Debe proporcionar el ID del documento en el campo DOCUMENT_RESOURCE_PATH, el URI en el campo URI o ambos.

      El formato de la ruta completa del recurso es: projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID.

    • TITLE: un campo obligatorio para especificar el título del documento o de la página web que se va a promocionar. Este título se muestra en el resultado de búsqueda.

    • URI: campo para especificar el URI al que se dirige al usuario con el resultado de búsqueda. Debe proporcionar el ID del documento en el campo DOCUMENT_RESOURCE_PATH, el URI en el campo URI o ambos.

    • URI_DESCRIPTION: campo opcional para describir el URI, que se muestra en el resultado de búsqueda.

    La respuesta contiene los IDs de control de la promoción que necesitas para adjuntar el control de la promoción a tu aplicación de búsqueda.

  3. Asocia el control a la configuración de servicio de la aplicación mediante el método engines.servingConfigs.patch. El orden en el que adjuntes los promoteControlIds en la siguiente solicitud es el orden en el que se devuelven los resultados promocionados.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=promote_control_ids" \
    -d '{
      "promoteControlIds": ["PROMOTE_ID_1", "PROMOTE_ID_2"]
    }'

    Sustituye PROMOTE_ID_N por los IDs de control que has recibido en el paso anterior.

Siguientes pasos