

# Conexión a Google Search Console
<a name="connecting-to-data-google-search-console"></a>

Google Search Console es una plataforma gratuita diseñada para que los propietarios de sitios web supervisen cómo Google percibe su sitio y optimicen su presencia en los resultados orgánicos. Esto incluye la visualización de los dominios de referencia, el rendimiento del sitio en dispositivos móviles, los resultados de búsqueda enriquecidos, así como las consultas y páginas con mayor tráfico. Si es usuario de Google Search Console, puede conectar AWS Glue a la cuenta de Google Search Console. Puede utilizar Google Search Console como origen de datos en los trabajos de ETL. Ejecute estos trabajos para transferir datos entre Google Search Console y los servicios de AWS u otras aplicaciones compatibles.

**Topics**
+ [Compatibilidad de AWS Glue con Google Search Console](google-search-console-support.md)
+ [Políticas que contienen las operaciones de la API para crear y usar conexiones](google-search-console-configuring-iam-permissions.md)
+ [Configuración de Google Search Console](google-search-console-configuring.md)
+ [Configuración de las conexiones a Google Search Console](google-search-console-configuring-connections.md)
+ [Cómo leer de entidades de Google Search Console](google-search-console-reading-from-entities.md)
+ [Opciones de conexión de Google Search Console](google-search-console-connection-options.md)
+ [Limitaciones de Google Search Console](google-search-console-limitations.md)

# Compatibilidad de AWS Glue con Google Search Console
<a name="google-search-console-support"></a>

AWS Glue es compatible con Google Search Console de la siguiente manera:

**¿Es compatible como origen?**  
Sí. Puede usar los trabajos de ETL de AWS Glue para consultar datos de Google Search Console.

**¿Es compatible como destino?**  
No.

**Versiones de la API de Google Search Console compatibles**  
Se admiten las siguientes versiones de la API de Google Search Console:
+ v3

# Políticas que contienen las operaciones de la API para crear y usar conexiones
<a name="google-search-console-configuring-iam-permissions"></a>

En el siguiente ejemplo de política se describen los permisos de AWS IAM necesarios para crear y utilizar conexiones. Si va a crear un nuevo rol, cree una política que contenga lo siguiente:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Si no desea utilizar el método anterior, puede utilizar las siguientes políticas de IAM administradas:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): da acceso a recursos que precisan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tienen los permisos necesarios. Normalmente, esta política se asocia a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de conexión de desarrollo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): otorga acceso total a los recursos de AWS Glue cuando una identidad a la que está asociada la política utiliza la Consola de administración de AWS. Si sigue la convención de nomenclatura para los recursos especificados en esta política, los usuarios dispondrán de todas las funciones de la consola. Esta política se suele adjuntar a los usuarios de la consola AWS Glue.

# Configuración de Google Search Console
<a name="google-search-console-configuring"></a>

Antes de poder utilizar AWS Glue para transferir datos desde Google Search Console, deberá cumplir estos requisitos:

## Requisitos mínimos
<a name="google-search-console-configuring-min-requirements"></a>

Los requisitos mínimos son los siguientes:
+ Tener una cuenta de Google Search Console.
+ Tener una cuenta de Google Cloud Platform y un proyecto de Google Cloud.
+ Haber habilitado la API de Google Search Console en el proyecto de Google Cloud.
+ Haber configurado en el proyecto de Google Cloud una pantalla de consentimiento OAuth para usuarios externos. Para obtener más información, consulte [Configuración de la pantalla de consentimiento de OAuth](https://support.google.com/cloud/answer/10311615) en la Ayuda de la Consola de Google Cloud Platform.
+ Haber configurado un ID de cliente OAuth 2.0 en el proyecto de Google Cloud. Consulte [Configuración de OAuth 2.0](https://support.google.com/cloud/answer/6158849) para conocer las credenciales de cliente que AWS Glue utiliza para acceder a los datos de forma segura cuando realiza llamadas autenticadas a la cuenta.

Si cumple estos requisitos, estará listo para conectar AWS Glue a la cuenta de Google Search Console. Para conexiones típicas, no necesita hacer nada más en Google Search Console.

# Configuración de las conexiones a Google Search Console
<a name="google-search-console-configuring-connections"></a>

Google Search Console admite el tipo de concesión AUTHORIZATION\$1CODE para OAuth2. El tipo de concesión determina la forma en que AWS Glue se comunica con Google Search Console para solicitar acceso a los datos.
+ Este tipo de concesión se considera un OAuth de “tres vías”, ya que se basa en redirigir a los usuarios a un servidor de autorización externo para autenticar al usuario. Se utiliza para crear conexiones a través de la consola de AWS Glue.
+ Los usuarios aún pueden optar por crear una aplicación conectada propia en Google Search Console y proporcionar un identificador de cliente y un secreto de cliente propios al crear conexiones a través de la consola de AWS Glue. En este caso, aún serán redirigidos a Google Search Console para iniciar sesión y autorizar a AWS Glue a acceder a sus recursos.
+ Este tipo de concesión da como resultado un token de actualización y un token de acceso. El token de acceso es de corta duración y se puede actualizar automáticamente sin la interacción del usuario mediante el token de actualización.
+ Para consultar la documentación pública de Google Search Console sobre la creación de una aplicación conectada para el flujo OAuth del código de autorización, consulte [Uso de OAuth 2.0 para acceder a las API de Google](https://developers.google.com/identity/protocols/oauth2).

Para configurar una conexión a Google Search Console:

1. En AWS Secrets Manager, cree un secreto con los siguientes detalles:

   1. En el caso de las aplicaciones conectadas administradas por el cliente, el secreto debe contener el secreto del consumidor de la aplicación conectada con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` como clave.

   1. Nota: Debe crear un secreto para las conexiones en AWS Glue.

1. En AWS Glue Glue Studio, cree una conexión en **Conexiones de datos** según los pasos que se indican a continuación:

   1. Cuando elija un **Tipo de conexión**, seleccione Google Search Console.

   1. Seleccione el rol de AWS IAM que AWS Glue pueda asumir y que tenga permisos para las siguientes acciones:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Seleccione el `secretName` que desee usar para esta conexión en AWS Glue para colocar los tokens.

   1. Seleccione las opciones de red si quiere usar su red.

1. Conceda el rol de IAM asociado a su permiso de trabajo de AWS Glue para leer `secretName`.

# Cómo leer de entidades de Google Search Console
<a name="google-search-console-reading-from-entities"></a>

**Requisito previo**

Un objeto de Google Search Console desde el cual le gustaría leer. Necesitará el nombre del objeto.

**Entidades compatibles como origen:**


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite partición | 
| --- | --- | --- | --- | --- | --- | 
| Análisis de búsqueda | Sí | Sí | No | Sí | No | 
| Sitios | No | No | No | Sí | No | 
| Mapas del sitio | No | No | No | Sí | No | 

**Ejemplo:**

```
googleSearchConsole_read = glueContext.create_dynamic_frame.from_options(
    connection_type="googlesearchconsole",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v3"
    }
```

**Detalles de la entidad y el campo de Google Search Console**:

Google Search Console proporciona puntos de conexión para obtener metadatos de forma dinámica para las entidades compatibles. Por lo tanto, la compatibilidad del operador se captura según el tipo de datos.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/google-search-console-reading-from-entities.html)

**nota**  
Para obtener una lista actualizada de los valores válidos para los filtros, consulte la documentación de la API de [Google Search Console](https://developers.google.com/webmaster-tools/v1/searchanalytics/query).  
El campo `start_end_date` es una combinación de `start_date` y `end_date`.

## Consultas de partición
<a name="google-search-console-reading-partitioning-queries"></a>

No se admiten las particiones basadas en filtros ni las particiones basadas en registros.

# Opciones de conexión de Google Search Console
<a name="google-search-console-connection-options"></a>

A continuación se indican las opciones de conexión de Google Search Console:
+ `ENTITY_NAME`(cadena): (obligatorio) se usa para lectura. El nombre del objeto en Google Search Console.
+ `API_VERSION`(cadena): (obligatorio) se usa para lectura. Versión de la API de Rest de Google Search Console que desea utilizar.
+ `SELECTED_FIELDS`(lista<Cadena>): predeterminado: empty(SELECT \$1). Se usa para leer. Columnas que desee seleccionar para el objeto.
+ `FILTER_PREDICATE` (cadena): Valor predeterminado: “start\$1end\$1date entre <hace 30 días de la fecha actual> Y <ayer: es decir, hace 1 día desde la fecha actual>”. Se usa para leer. Debe estar en el formato de Spark SQL.
+ `QUERY` (cadena): Valor predeterminado: “start\$1end\$1date entre <hace 30 días de la fecha actual> Y <ayer: es decir, hace 1 día de la fecha actual>”. Se utiliza para leer. Consulta completa de Spark SQL.
+ `INSTANCE_URL`(cadena): se usa para leer. Una URL de instancia de Google Search Console válida.

# Limitaciones de Google Search Console
<a name="google-search-console-limitations"></a>

Las siguientes son limitaciones o notas de Google Search Console:
+ Google Search Console aplica límites de uso a la API. Para obtener más información, consulte [Límites de uso](https://developers.google.com/webmaster-tools/limits).
+ Cuando no se transmite ningún filtro de la entidad de `Search Analytics`, la API suma todos los clics, impresiones, CTR y otros datos de todo el sitio dentro del intervalo de fechas predeterminado especificado y los presenta como un único registro.
+ Para desglosar los datos en segmentos más pequeños, es necesario introducir dimensiones en la consulta. Dimensiones indica a la API cómo desea segmentar los datos.
  + Por ejemplo, si agrega `filterPredicate: dimensions="country"` obtendrá un registro por cada país en el que el sitio haya recibido tráfico durante el periodo especificado.
  + Ejemplo para transmitir varias dimensiones: `filterPredicate: dimensions="country" AND dimensions="device" AND dimensions="page"`. En este caso, obtendrá una fila en la respuesta por cada combinación única de estas tres dimensiones.
+ Los valores predeterminados se establecen para los campos `start_end_date` y `dataState`.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/google-search-console-limitations.html)