Explore your competitive landscape

The competitive visibility report 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.

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.

See which reporting tables and fields are available with the Content API for Shopping.

Competitive visibility data

Competitive visibility data is grouped by country, Google product category 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 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 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.

Run

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 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 statement to the 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

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

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
      }
    },
  ]
}