The [competitive visibility
report](https://support.google.com/merchants/answer/11366442) helps you understand
your competitive landscape on a product category level, and take action to
improve your visibility based on displayed impressions from your Shopping ads
and organic listings (also known as free listings). For information on specific
products and brands, see the [best sellers
reports](https://developers.google.com/shopping-content/guides/reports/market-insights).

Your account must meet minimum eligibility requirements, and you must ensure
that your use, or any third party's use, of Competitive visibility data complies
with the [Merchant Center terms and
conditions](https://support.google.com/merchants/answer/12628444).

See which reporting [tables and fields](https://developers.google.com/shopping-content/guides/reports/fields)
are available with the Content API for Shopping.

## Competitive visibility data

Competitive visibility data is grouped by country, [Google product
category](https://support.google.com/merchants/answer/6324436) and traffic source.

You must specify country and category values in a `WHERE` clause for all
competitive visibility queries. You can change the values in the `WHERE` clause
to customize the report for dates, traffic sources, countries, and categories.

Queries with multiple country and category values might take longer to execute,
or time out.

## View businesses with similar visibility

You can query
[`CompetitiveVisibilityCompetitorView`](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search#competitivevisibility)
to view businesses with a similar number of impressions to your business.

Here's a sample. To make the request, pass the following Merchant Center Query
Language statement to the
[`reports.search`](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search) method:

    SELECT competitive_visibility.domain,
           competitive_visibility.category_id,
           competitive_visibility.country_code,
           competitive_visibility.traffic_source,
           competitive_visibility.is_your_domain,
           competitive_visibility.rank,
           competitive_visibility.ads_organic_ratio,
           competitive_visibility.page_overlap_rate,
           competitive_visibility.higher_position_rate,
           competitive_visibility.relative_visibility
    FROM CompetitiveVisibilityCompetitorView
    WHERE competitive_visibility.date BETWEEN '2023-06-02' AND '2023-06-27'
      AND competitive_visibility.category_id = 536
      AND competitive_visibility.country_code = 'US'
      AND competitive_visibility.traffic_source = 'ADS'
    ORDER BY competitive_visibility.rank 

You can change the values in the `WHERE` clause to customize the report for
other dates, traffic types, countries, and
[categories](https://support.google.com/merchants/answer/6324436).

[Run](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search?apix=true&apix_params=%7B%22merchantId%22:0,%22resource%22:%7B%22query%22:%22SELECT+competitive_visibility.domain,+competitive_visibility.category_id,+competitive_visibility.country_code,+competitive_visibility.traffic_source,+competitive_visibility.is_your_domain,+competitive_visibility.rank,++competitive_visibility.ads_organic_ratio,+competitive_visibility.page_overlap_rate,+competitive_visibility.higher_position_rate,+competitive_visibility.relative_visibility+FROM+CompetitiveVisibilityCompetitorView+WHERE+competitive_visibility.date+BETWEEN+'2023-06-02'+AND+'2023-06-27'++AND+competitive_visibility.category_id+%3D+536++AND+competitive_visibility.country_code+%3D+'US'++AND+competitive_visibility.traffic_source+%3D+'ADS'+ORDER+BY+competitive_visibility.rank%22%7D%7D)

Click **Run** to try the sample in the **API Explorer** . After you click
**Run** , update the merchant ID placeholder to your own merchant ID in the
request URL. You can modify the query. The full query must remain on one line to
work with the **API explorer**.

Here's a sample response from the preceding query:

    {
      "results": [
        {
          "competitiveVisibility": {
            "domain": "examplepetstore.com",
            "isYourDomain": false,
            "countryCode": "US",
            "categoryId": "536",
            "trafficSource": "ADS",
            "rank": "4",
            "adsOrganicRatio": 8,
            "pageOverlapRate": 0.19,
            "higherPositionRate": 0.46,
            "relativeVisibility": 0.5
          }
        },
        {
          "competitiveVisibility": {
            "domain": "example.com",
            "isYourDomain": true,
            "countryCode": "US",
            "categoryId": "536",
            "trafficSource": "ADS",
            "rank": "5",
            "adsOrganicRatio": 30,
            "pageOverlapRate": 1,
            "higherPositionRate": 0,
            "relativeVisibility": 0
          }
        },
      ]
    }

## View businesses with highest visibility

You can query
[`CompetitiveVisibilityTopMerchantView`](https://developers.google.com/shopping-content/guides/reports/fields#CompetitiveVisibilityTopMerchantView)
to see which businesses are getting the most impressions across Google in a
specific category, and how your business compares.

Here's a sample. To make the request, pass the following [Merchant Center Query
Language](https://developers.google.com/shopping-content/guides/reports/query-language/overview) statement to
the [`reports.search`](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search) method:

    SELECT
      competitive_visibility.domain,
      competitive_visibility.category_id,
      competitive_visibility.country_code,
      competitive_visibility.traffic_source,
      competitive_visibility.is_your_domain,
      competitive_visibility.rank,
      competitive_visibility.ads_organic_ratio,
      competitive_visibility.page_overlap_rate,
      competitive_visibility.higher_position_rate
    FROM CompetitiveVisibilityTopMerchantView
    WHERE competitive_visibility.date BETWEEN '2022-08-01' AND '2022-09-01'
      AND competitive_visibility.category_id = 100
      AND competitive_visibility.country_code = 'US'
      AND competitive_visibility.traffic_source = 'ORGANIC'
    ORDER BY competitive_visibility.rank

[Run](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search?apix=true&apix_params=%7B%22merchantId%22:0,%22resource%22:%7B%22query%22:%22SELECT++competitive_visibility.domain,++competitive_visibility.category_id,++competitive_visibility.country_code,++competitive_visibility.traffic_source,++competitive_visibility.is_your_domain,++competitive_visibility.rank,++competitive_visibility.ads_organic_ratio,++competitive_visibility.page_overlap_rate,++competitive_visibility.higher_position_rate+FROM+CompetitiveVisibilityTopMerchantView+WHERE+competitive_visibility.date+BETWEEN+'2022-08-01'+AND+'2022-09-01'++AND+competitive_visibility.category_id+%3D+100++AND+competitive_visibility.country_code+%3D+'US'++AND+competitive_visibility.traffic_source+%3D+'ORGANIC'+ORDER+BY+competitive_visibility.rank%22%7D%7D)

Click **Run** to try the sample in the **API Explorer** . After you click
**Run** , update the merchant ID placeholder to your own merchant ID in the
request URL. You can modify the query. The full query must remain on one line to
work with the **API explorer**.

Here's a sample response from the preceding query:

    {
      "results": [
        {
          "competitiveVisibility": {
            "domain": "examplepetstore.com",
            "isYourDomain": false,
            "countryCode": "US",
            "categoryId": "100",
            "trafficSource": "ORGANIC",
            "rank": "1",
            "adsOrganicRatio": 0.2,
            "pageOverlapRate": 0.3,
            "higherPositionRate": 0.45
          }
        },
        {
          "competitiveVisibility": {
            "domain": "example.com",
            "isYourDomain": false,
            "countryCode": "US",
            "categoryId": "100",
            "trafficSource": "ORGANIC",
            "rank": "2",
            "adsOrganicRatio": 5,
            "pageOverlapRate": 0.67,
            "higherPositionRate": 0.89
          }
        }
      ]
    }

## Compare your visibility to the category benchmark

You can query
[`CompetitiveVisibilityBenchmarkView`](https://developers.google.com/shopping-content/guides/reports/fields#CompetitiveVisibilityBenchmarkView)
to see how your number of impressions trends over time compared to the average
trend of other sellers.

Here's a sample. To make the request, pass the following Merchant Center Query
Language statement to the [`reports.search`](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search)
method:

    SELECT
      competitive_visibility.category_id,
      competitive_visibility.country_code,
      competitive_visibility.traffic_source,
      competitive_visibility.date,
      competitive_visibility.your_domain_visibility_trend,
      competitive_visibility.category_benchmark_visibility_trend
    FROM CompetitiveVisibilityBenchmarkView
    WHERE competitive_visibility.date BETWEEN '2022-09-01' AND '2022-09-07'
      AND competitive_visibility.category_id = 100
      AND competitive_visibility.country_code = 'US'
      AND competitive_visibility.traffic_source = 'ORGANIC'
    ORDER BY competitive_visibility.date

[Run](https://developers.google.com/shopping-content/reference/rest/v2.1/reports/search?apix=true&apix_params=%7B%22merchantId%22:0,%22resource%22:%7B%22query%22:%22SELECT++competitive_visibility.category_id,++competitive_visibility.country_code,++competitive_visibility.traffic_source,++competitive_visibility.date,++competitive_visibility.your_domain_visibility_trend,++competitive_visibility.category_benchmark_visibility_trend+FROM+CompetitiveVisibilityBenchmarkView+WHERE+competitive_visibility.date+BETWEEN+'2022-09-01'+AND+'2022-09-07'++AND+competitive_visibility.category_id+%3D+100++AND+competitive_visibility.country_code+%3D+'US'++AND+competitive_visibility.traffic_source+%3D+'ORGANIC'+ORDER+BY+competitive_visibility.date%22%7D%7D)

Click **Run** to try the sample in the **API Explorer** . After you click
**Run** , update the merchant ID placeholder to your own merchant ID in the
request URL. You can modify the query. The full query must remain on one line to
work with the **API explorer**.

Here's a sample response from the preceding query:

    {
      "results": [
        {
          "competitiveVisibility": {
            "date": {
              "year": 2022,
              "month": 9,
              "day": 1
            },
            "countryCode": "US",
            "categoryId": "100",
            "trafficSource": "ORGANIC",
            "yourDomainVisibilityTrend": 0,
            "categoryBenchmarkVisibilityTrend": 0
          }
        },
        {
          "competitiveVisibility": {
            "date": {
              "year": 2022,
              "month": 9,
              "day": 2
            },
            "countryCode": "US",
            "categoryId": "100",
            "trafficSource": "ORGANIC",
            "yourDomainVisibilityTrend": 0.3,
            "categoryBenchmarkVisibilityTrend": -0.15
          }
        },
      ]
    }