> For the complete documentation index, see [llms.txt](https://docs.quanti.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.quanti.io/connectors/marketing-connectors/googlesearchconsole-advertising.md).

# Google Search Console

<a href="https://dbdiagram.io/e/68555a41f039ec6d36273bf9/685562ddf039ec6d36286cbf" class="button primary" data-icon="table-tree">Prebuilt reports and definition</a>

***

## Prerequisites

To connect Google Search Console to QUANTI, you need access to a [Google Search Console](https://search.google.com/search-console?hl=fr) account with at least one verified property.

***

## Setup Instructions

{% stepper %}
{% step %}
**Authorize Google Connection**

* Click on **Connect to Google**
* You will be redirected to Google's authorization page
* Log in with your Google account credentials
* Review and accept the requested permissions
* Click **Continue** to grant access
  {% endstep %}

{% step %}
**Configure Connector**

* **Connector Name**: Name your connector. It must be unique.
* **Dataset ID**: Define the ID of the dataset. It must not exist yet, as it will be created and data will be sent there.
  {% endstep %}

{% step %}
**Select Account(s)**

* Choose the Google Search Console property (or properties) you want to sync
* Click **Next**
  {% endstep %}

{% step %}
**Select Prebuilt reports**

* Review the available Prebuilt reports (see section below for details)
* All tables are selected by default — you can deselect tables you don't need
* Click **Next**
  {% endstep %}

{% step %}
**Finish Setup**

* Define a sync period and a lookback window — Click **Save**
* For the first sync, you have the following options:
  * Activate auto-sync for recurring syncs based on your sync settings by clicking the switch button
  * Launch a historical data recovery by choosing your desired dates in the historical data tab
  * Launch a manual sync immediately by clicking the **Sync now** button
* Wait for the sync to complete. Then navigate to your data warehouse to verify that tables are populated
* Check the connector dashboard for sync status and any potential errors
  {% endstep %}
  {% endstepper %}

***

## Prebuilt reports

### Search performance

**site\_report\_by\_page** : Site-level search traffic, with metrics aggregated using the `byPage` method. Each record represents one day for a given country, device and search type. Metrics: clicks, impressions, CTR, position.

**site\_report\_by\_site** : Site-level search traffic, with metrics aggregated using the `byProperty` method. Same dimensions as `site_report_by_page`. Metrics: clicks, impressions, CTR, position.

{% hint style="info" %}
`site_report_by_page` and `site_report_by_site` share the same dimensions but use different aggregation methods (`byPage` vs `byProperty`). Google computes metrics differently between the two — totals may vary slightly for the same date and filters.
{% endhint %}

**page\_report** : Search traffic per individual page. Each record shows how a specific page appeared in search results on a given day. Dimensions: date, search type, site, country, device, page. Metrics: clicks, impressions, CTR, position.

**keyword\_site\_report\_by\_page** : Keyword-level search traffic at site scope, aggregated by the `byPage` method. Each record shows how the site appeared for a specific search query on a given day. Dimensions: date, search type, site, country, device, query. Metrics: clicks, impressions, CTR, position.

**keyword\_site\_report\_by\_site** : Keyword-level search traffic at site scope, aggregated by the `byProperty` method. Same dimensions as `keyword_site_report_by_page`.

{% hint style="info" %}
`keyword_site_report_by_page` and `keyword_site_report_by_site` share the same dimensions but use different aggregation methods. The same note on metric discrepancies applies as for the site reports above.
{% endhint %}

**keyword\_page\_report** : The most granular search table — keyword-level traffic per individual page. Each record shows how a specific page appeared for a specific query on a given day. Dimensions: date, search type, site, country, device, page, query. Metrics: clicks, impressions, CTR, position.

***

### Discover

**discover\_report** : Daily Google Discover performance at site level. Discover is Google's content recommendation feed — this table tracks global engagement on that surface. Dimensions: date, site. Metrics: clicks, impressions, CTR.

**discover\_report\_by\_country** : Google Discover performance broken down by country. Dimensions: date, site, country. Metrics: clicks, impressions, CTR.

**discover\_report\_by\_page** : Google Discover performance broken down by page. Dimensions: date, site, page. Metrics: clicks, impressions, CTR.

***

### News

**news\_report** : Daily Google News performance at site level. Tracks how content appears in the Google News surface. Dimensions: date, site. Metrics: clicks, impressions, CTR.

**news\_report\_by\_country** : Google News performance broken down by country. Dimensions: date, site, country. Metrics: clicks, impressions, CTR.

**news\_report\_by\_device** : Google News performance broken down by device. Dimensions: date, site, device. Metrics: clicks, impressions, CTR.

**news\_report\_by\_page** : Google News performance broken down by page. Dimensions: date, site, page. Metrics: clicks, impressions, CTR.

***

### Sitemap

**sitemap** : Dimension table with sitemap file metadata. Each record represents a sitemap submitted in Google Search Console — path, type, last submission date, last download date, number of submitted URLs and indexed URLs.

***

```mermaid
erDiagram
    site_report_by_page {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    site_report_by_site {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    page_report {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        STRING page PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    keyword_site_report_by_page {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        STRING query PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    keyword_site_report_by_site {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        STRING query PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    keyword_page_report {
        DATE   _quanti_date PK
        STRING search_type PK
        STRING site PK
        STRING country PK
        STRING device PK
        STRING page PK
        STRING query PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
        FLOAT  position
    }
    discover_report {
        DATE   _quanti_date PK
        STRING site PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    discover_report_by_country {
        DATE   _quanti_date PK
        STRING site PK
        STRING country PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    discover_report_by_page {
        DATE   _quanti_date PK
        STRING site PK
        STRING page PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    news_report {
        DATE   _quanti_date PK
        STRING site PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    news_report_by_country {
        DATE   _quanti_date PK
        STRING site PK
        STRING country PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    news_report_by_device {
        DATE   _quanti_date PK
        STRING site PK
        STRING device PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    news_report_by_page {
        DATE   _quanti_date PK
        STRING site PK
        STRING page PK
        FLOAT  clicks
        FLOAT  impressions
        FLOAT  ctr
    }
    sitemap {
        TIMESTAMP _quanti_loaded_at PK
        STRING    path PK
        STRING    site PK
        STRING    type
        TIMESTAMP last_submitted
        TIMESTAMP last_downloaded
        INTEGER   submitted
        INTEGER   indexed
    }

    site_report_by_page    ||--o{ page_report              : "site"
    site_report_by_page    ||--o{ keyword_site_report_by_page : "site"
    keyword_site_report_by_page ||--o{ keyword_page_report : "site"
    discover_report        ||--o{ discover_report_by_country : "site"
    discover_report        ||--o{ discover_report_by_page   : "site"
    news_report            ||--o{ news_report_by_country   : "site"
    news_report            ||--o{ news_report_by_device    : "site"
    news_report            ||--o{ news_report_by_page      : "site"
```

***

<a href="https://dbdiagram.io/e/68555a41f039ec6d36273bf9/685562ddf039ec6d36286cbf" class="button primary" data-icon="table-tree">Prebuilt reports and definition</a>

***

## Notes

* **Data Availability Delay**: Google Search Console data is typically available with a **2 to 3 day delay**. The most recent days will not be populated immediately after a sync — this is a Google API limitation. It is recommended to configure a **lookback window of at least 3 days** to ensure complete and finalized data is retrieved.
* **No Real-Time or Fresh Data via API**: The Search Analytics API only returns **finalized data**. The "fresh data" available in the Google Search Console web interface (including the 24-hour view) is not exposed through the API and therefore not available in QUANTI.
* **Data May Retroactively Change**: Data for the last few days before finalization can change slightly as Google continues processing. This is expected behavior — the lookback window ensures these days are re-synced and updated automatically.
* **`byPage` vs `byProperty` Aggregation**: Google computes metrics differently depending on the aggregation type. `byPage` and `byProperty` tables for the same date and dimensions may show slightly different numbers for clicks, impressions, and position. Refer to [Google's documentation](https://support.google.com/webmasters/answer/6155685) for details on how each method calculates data.
* **Historical Data Limit**: The Search Analytics API provides data for up to **16 months** of history.
* **API Rate Limits**: Google enforces quotas on API requests. QUANTI automatically manages these limits to ensure reliable data extraction.


---

# 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:

```
GET https://docs.quanti.io/connectors/marketing-connectors/googlesearchconsole-advertising.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
