Skip to main content

Ingest data from Google Search Console

Beta

This feature is in Beta. To use it, a workspace admin must turn on Lakeflow Connect for Google Search Console from the Previews page. See Manage Databricks previews.

This page shows how to create a managed Google Search Console ingestion pipeline using Lakeflow Connect.

Requirements​

  • To create an ingestion pipeline, first meet the following requirements:

    • Your workspace must be enabled for Unity Catalog.

    • Serverless compute must be enabled for your workspace. See Serverless compute requirements.

    • To create a new connection, you must have CREATE CONNECTION privileges on the metastore. See Manage privileges in Unity Catalog.

      If the connector supports UI-based pipeline authoring, an admin can create the connection and the pipeline at the same time by completing the steps on this page. However, if the users who create pipelines use API-based pipeline authoring or are non-admin users, an admin must first create the connection in Catalog Explorer. See Connect to managed ingestion sources.

    • To use an existing connection, you must have USE CONNECTION privileges or ALL PRIVILEGES on the connection object.

    • You must have USE CATALOG privileges on the target catalog.

    • You must have USE SCHEMA and CREATE TABLE privileges on an existing schema or CREATE SCHEMA privileges on the target catalog.

  • To ingest from Google Search Console, first configure authentication from Databricks and create a connection. See Configure authentication to Google Search Console and Create a Google Search Console connection.

Connector options​

Set pipeline-scoped options in source_configurations and table-scoped options on the individual object. See Examples for usage.

Option

Scope

Required

Applies to

Description

site_urls

Pipeline

Yes

All tables

One or more verified Google Search Console property URLs to ingest (for example, https://example.com/ or sc-domain:example.com). Each URL must be a property verified in Google Search Console.

start_date

Pipeline

No

All incremental tables (search_analytics_*, hourly_search_analytics_*, custom_report)

Earliest date from which to ingest data, in yyyy-MM-dd format. Defaults to 500 days before the first sync. Has no effect on sites or sitemaps.

data_state

Table

No

Daily search performance tables (search_analytics_*) and custom_report

Data freshness for daily search performance tables and custom_report. all (default) includes finalized and fresh data. final includes finalized data only. Set it only on search_analytics_* and custom_report objects. The sites, sitemaps, and hourly_search_analytics_* tables do not accept this option.

dimensions

Table

Yes

custom_report only

The dimensions to group the report by, for example '["country", "device"]'. Allowed values are date, country, device, page, and query. The connector includes date even if you don't list it.

search_types

Table

Yes

custom_report only

The search types to run the report for, for example '["web", "image"]'. Allowed values are web, image, video, news, discover, and googleNews.

aggregation_type

Table

No

custom_report only

How Google Search Console aggregates metrics. One of auto (default), byPage, or byProperty. byProperty doesn't support the page dimension or the discover and googleNews search types.

Option

Scope

Required

Applies to

Description

site_urls

Pipeline

Yes

All tables

One or more verified Google Search Console property URLs to ingest (for example, https://example.com/ or sc-domain:example.com). Each URL must be a property verified in Google Search Console.

start_date

Pipeline

No

All incremental tables (search_analytics_*, hourly_search_analytics_*, custom_report)

Earliest date from which to ingest data, in yyyy-MM-dd format. Defaults to 500 days before the first sync. Has no effect on sites or sitemaps.

data_state

Table

No

Daily search performance tables (search_analytics_*) and custom_report

Data freshness for daily search performance tables and custom_report. all (default) includes finalized and fresh data. final includes finalized data only. Set it only on search_analytics_* and custom_report objects. The sites, sitemaps, and hourly_search_analytics_* tables do not accept this option.

dimensions

Table

Yes

custom_report only

The dimensions to group the report by, for example '["country", "device"]'. Allowed values are date, country, device, page, and query. The connector includes date even if you don't list it.

search_types

Table

Yes

custom_report only

The search types to run the report for, for example '["web", "image"]'. Allowed values are web, image, video, news, discover, and googleNews.

aggregation_type

Table

No

custom_report only

How Google Search Console aggregates metrics. One of auto (default), byPage, or byProperty. byProperty doesn't support the page dimension or the discover and googleNews search types.

Create an ingestion pipeline​

For the list of supported source tables, see Supported source tables.

  1. In the sidebar of the Databricks workspace, click Data Ingestion.
  2. On the Add data page, under Databricks connectors, click Google Search Console.
  3. On the Connection page of the ingestion wizard, select the connection that stores your Google Search Console credentials. If you have the CREATE CONNECTION privilege on the metastore, click Plus icon. Create connection to create a connection with the credentials from Configure authentication to Google Search Console.
  4. Click Next.
  5. On the Ingestion setup page, enter a name for the pipeline.
  6. Select a catalog and a schema to write event logs to. If you have USE CATALOG and CREATE SCHEMA privileges on the catalog, click Plus icon. Create schema in the drop-down menu to create a schema.
  7. For Site URLs, enter one or more verified Google Search Console property URLs to ingest. Optionally, set a Start date. See Connector options.
  8. Click Create pipeline and continue.
  9. On the Source page, select the tables to ingest. Optionally, set Data state for daily search performance tables (search_analytics_*).
  10. Click Save and continue.
  11. On the Destination page, select a catalog and a schema to load data into. If you have USE CATALOG and CREATE SCHEMA privileges on the catalog, click Plus icon. Create schema in the drop-down menu to create a schema.
  12. Click Save and continue.
  13. (Optional) On the Schedules and notifications page, click Plus icon. Create schedule. Set the frequency to refresh the destination tables.
  14. (Optional) Click Plus icon. Add notification to set email notifications for pipeline operation success or failure, then click Save and run pipeline.

Examples​

The Google Search Console connector makes available the following source tables under the default source schema:

Table type

Tables

Site tables

sites, sitemaps

Daily search performance report tables

search_analytics_all_fields, search_analytics_by_country, search_analytics_by_date, search_analytics_by_device, search_analytics_by_page, search_analytics_by_query, search_analytics_page_report, search_analytics_site_report_by_page, search_analytics_site_report_by_site

Hourly search performance report tables

hourly_search_analytics_page_report, hourly_search_analytics_site_report_by_page, hourly_search_analytics_site_report_by_site

Custom report table

custom_report

Table type

Tables

Site tables

sites, sitemaps

Daily search performance report tables

search_analytics_all_fields, search_analytics_by_country, search_analytics_by_date, search_analytics_by_device, search_analytics_by_page, search_analytics_by_query, search_analytics_page_report, search_analytics_site_report_by_page, search_analytics_site_report_by_site

Hourly search performance report tables

hourly_search_analytics_page_report, hourly_search_analytics_site_report_by_page, hourly_search_analytics_site_report_by_site

Custom report table

custom_report

For schema details, see Supported source tables.

Ingest a search performance report table​

The following example ingests search_analytics_all_fields, which returns daily performance data aggregated on all five dimensions (date, country, device, page, query).

YAML
resources:
pipelines:
google_search_console_pipeline:
name: google_search_console_pipeline
catalog: 'main'
target: 'google_search_console_data'
ingestion_definition:
connection_name: google_search_console_connection
source_configurations:
- api_source_connector_config:
configs:
site_urls: '["<site-url>"]'
start_date: '<start-date>'
objects:
- table:
source_schema: 'default'
source_table: 'search_analytics_all_fields'
destination_catalog: 'main'
destination_schema: 'google_search_console_data'
destination_table: 'search_analytics_all_fields'
connector_options:
api_source_connector_options:
options:
data_state: 'all'

Ingest a site table​

The following example ingests sites, which returns metadata about your verified Google Search Console properties. Site tables are fully refreshed on every pipeline run, so start_date has no effect on them, and they do not accept data_state.

YAML
resources:
pipelines:
google_search_console_pipeline:
name: google_search_console_pipeline
catalog: 'main'
target: 'google_search_console_data'
ingestion_definition:
connection_name: google_search_console_connection
source_configurations:
- api_source_connector_config:
configs:
site_urls: '["<site-url>"]'
objects:
- table:
source_schema: 'default'
source_table: 'sites'
destination_catalog: 'main'
destination_schema: 'google_search_console_data'
destination_table: 'sites'

Ingest a custom report​

The following example ingests a custom report that aggregates daily web and image search performance by query and country. To ingest more than one custom report in the same pipeline, add a custom_report object for each report, each with a different destination_table. For the options, see Custom reports.

YAML
resources:
pipelines:
google_search_console_pipeline:
name: google_search_console_pipeline
catalog: 'main'
target: 'google_search_console_data'
ingestion_definition:
connection_name: google_search_console_connection
source_configurations:
- api_source_connector_config:
configs:
site_urls: '["<site-url>"]'
start_date: '<start-date>'
objects:
- table:
source_schema: 'default'
source_table: 'custom_report'
destination_catalog: 'main'
destination_schema: 'google_search_console_data'
destination_table: 'search_performance_by_query_and_country'
connector_options:
api_source_connector_options:
options:
dimensions: '["query", "country"]'
search_types: '["web", "image"]'
aggregation_type: 'auto'
data_state: 'final'

Ingest site and search performance tables together​

The following example combines a site table and a search performance report table in a single pipeline.

YAML
resources:
pipelines:
google_search_console_pipeline:
name: google_search_console_pipeline
catalog: 'main'
target: 'google_search_console_data'
ingestion_definition:
connection_name: google_search_console_connection
source_configurations:
- api_source_connector_config:
configs:
site_urls: '["<site-url>"]'
start_date: '<start-date>'
objects:
# sites does not accept data_state, so it has no connector_options block.
- table:
source_schema: 'default'
source_table: 'sites'
destination_catalog: 'main'
destination_schema: 'google_search_console_data'
destination_table: 'sites'
- table:
source_schema: 'default'
source_table: 'search_analytics_by_page'
destination_catalog: 'main'
destination_schema: 'google_search_console_data'
destination_table: 'search_analytics_by_page'
connector_options:
api_source_connector_options:
options:
data_state: 'final'

Declarative Automation Bundles job definition file​

The following is an example job definition file for use with Declarative Automation Bundles. The job runs daily.

YAML
resources:
jobs:
google_search_console_job:
name: google_search_console_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: google_search_console_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.google_search_console_pipeline.id}

Common patterns​

For advanced pipeline configurations, see Common patterns for managed ingestion pipelines.

Next steps​

Start, schedule, and set alerts on your pipeline. See Common pipeline maintenance tasks.

Additional resources​