As you may have noticed, Google Ads aggregates the search volume of all close variants and misspellings under the main keyword. It represents the search volume of the main keyword as a sum of the search volumes of close variants, misspellings, and so on. Thus, Google Ads search volume data on keywords is not reliable for granular keyword analysis.
Luckily, we developed a comprehensive solution to address this issue – the DataForSEO Search Volume metric, allowing you to obtain accurate and granular search volume for keywords and their variations.
➤ In Keyword Data API, you can access refined Google search volume via a separate DataForSEO Search Volume endpoint.
➤ In DataForSEO Labs API, the DataForSEO Search Volume metric is available in the Google endpoints listed below and is represented by the keyword_info_normalized_with_bing
and keyword_info_normalized_with_clickstream
objects of the response.
- Related Keywords
- Keyword Suggestions
- Ranked Keywords
- Keyword Ideas
- Keywords For Categories
- Domain Intersection
- Page Intersection
- Historical Search Volume
- Top Searches
- Keywords For Site
Now, let’s explore how the DataForSEO Search Volume works and how to use it.
How is the DataForSEO Search Volume calculated?
The main feature of the DataForSEO Search Volume is that it unveils search volume values for all keyword variations, refined with the Bing Ads search volume data or clickstream data.
Compared to Google Ads, Bing search engine provides more granular search volume data. For instance, Bing Ads shows separate search volumes for different devices and displays exact values precise to the nearest tens without merging search volumes for similar terms.
Clickstream data captures the terms people when searching online and it can be used to estimate the search volume of keywords and their variations. Unlike Bing Ads data, which requires our system to make a separate API request, we fetch clickstream data directly from our regularly updated database. Furthermore, clickstream data allows us to provide results for all locations supported by DataForSEO APIs.
Here’s how we calculate the DataForSEO Search Volume in more detail:
1. We begin by fetching Google Ads search volume data for the keywords you’ve entered in the API request.
2. Next, we identify the relevant Google Ads “keyword groups” with merged search volumes and fetch all other queries within these groups.
3. For Bing Ads-based calculations, we retrieve Bing Ads search volume for each keyword within the identified Google Ads keyword groups. We then calculate the search volume for each search query separately.
4. For clickstream-based calculations, we fetch the quantity of clickstream events for every keyword within the Google Ads keyword groups. We compare these values and calculate a refined search volume for each keyword.
5. In both cases, we calculate the monthly search volume for each keyword over the last 12 months.
6. Finally, we return an API response containing the refined search volume and monthly search values for each keyword.
Now, let’s see examples of how you can fetch refined search volume with DataForSEO Search Volume and DataForSEO Labs API endpoints.
Getting precise search volume with DataForSEO Search Volume endpoint
Let’s imagine that you want to get search volume values for the keyword “pdf,” and its variations, such as “pdfs”, “pdf file”, and “pdf document”.
First, call the DataForSEO Search Volume endpoint:
POST: https://api.dataforseo.com/v3/keywords_data/clickstream_data/dataforseo_search_volume/live
In the request, enter your queries into the keywords
array. You can enter up to 1000 keywords in a single request. Then, specify the location and language.
If you want search volume values normalized with clickstream data, set the parameter use_clickstream
to true
. To get results normalized with Bing Ads data, set this parameter to false
or don’t include use_clickstream
in the request body.
The request should be structured like this:
[
{
"location_code": 2840,
"language_code": "en",
"keywords": [
"pdf",
"pdfs",
"pdf file",
"pdf document"
]
}
]
Here’s the returned result:
{
"version": "0.1.20240801",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0973 sec.",
"cost": 0.15,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "08201609-1535-0589-0000-52f92cc4698a",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0328 sec.",
"cost": 0.15,
"result_count": 1,
"path": [
"v3",
"keywords_data",
"clickstream_data",
"dataforseo_search_volume",
"live"
],
"data": {
"api": "keywords_data",
"function": "dataforseo_search_volume",
"se": "clickstream_data",
"location_code": 2840,
"language_code": "en",
"keywords": [
"pdf",
"pdfs",
"pdf file",
"pdf document"
]
},
"result": [
{
"location_code": 2840,
"language_code": "en",
"use_clickstream": false,
"items_count": 4,
"items": [
{
"keyword": "pdf",
"search_volume": 200069,
"monthly_searches": [
{
"year": 2024,
"month": 7,
"search_volume": 200069
},
{
"year": 2024,
"month": 6,
"search_volume": 200069
},
{
"year": 2024,
"month": 5,
"search_volume": 200069
},
{
"year": 2024,
"month": 4,
"search_volume": 200069
},
{
"year": 2024,
"month": 3,
"search_volume": 200069
},
{
"year": 2024,
"month": 2,
"search_volume": 200069
},
{
"year": 2024,
"month": 1,
"search_volume": 244861
},
{
"year": 2023,
"month": 12,
"search_volume": 164236
},
{
"year": 2023,
"month": 11,
"search_volume": 164236
},
{
"year": 2023,
"month": 10,
"search_volume": 200069
},
{
"year": 2023,
"month": 9,
"search_volume": 200069
},
{
"year": 2023,
"month": 8,
"search_volume": 200069
}
]
},
{
"keyword": "pdfs",
"search_volume": 422,
"monthly_searches": [
{
"year": 2024,
"month": 7,
"search_volume": 422
},
{
"year": 2024,
"month": 6,
"search_volume": 422
},
{
"year": 2024,
"month": 5,
"search_volume": 422
},
{
"year": 2024,
"month": 4,
"search_volume": 422
},
{
"year": 2024,
"month": 3,
"search_volume": 422
},
{
"year": 2024,
"month": 2,
"search_volume": 422
},
{
"year": 2024,
"month": 1,
"search_volume": 517
},
{
"year": 2023,
"month": 12,
"search_volume": 347
},
{
"year": 2023,
"month": 11,
"search_volume": 347
},
{
"year": 2023,
"month": 10,
"search_volume": 422
},
{
"year": 2023,
"month": 9,
"search_volume": 422
},
{
"year": 2023,
"month": 8,
"search_volume": 422
}
]
},
{
"keyword": "pdf file",
"search_volume": 4840,
"monthly_searches": [
{
"year": 2024,
"month": 7,
"search_volume": 4840
},
{
"year": 2024,
"month": 6,
"search_volume": 4840
},
{
"year": 2024,
"month": 5,
"search_volume": 4840
},
{
"year": 2024,
"month": 4,
"search_volume": 4840
},
{
"year": 2024,
"month": 3,
"search_volume": 4840
},
{
"year": 2024,
"month": 2,
"search_volume": 4840
},
{
"year": 2024,
"month": 1,
"search_volume": 4840
},
{
"year": 2023,
"month": 12,
"search_volume": 3957
},
{
"year": 2023,
"month": 11,
"search_volume": 3957
},
{
"year": 2023,
"month": 10,
"search_volume": 4840
},
{
"year": 2023,
"month": 9,
"search_volume": 4840
},
{
"year": 2023,
"month": 8,
"search_volume": 4840
}
]
},
{
"keyword": "pdf document",
"search_volume": 471,
"monthly_searches": [
{
"year": 2024,
"month": 7,
"search_volume": 471
},
{
"year": 2024,
"month": 6,
"search_volume": 471
},
{
"year": 2024,
"month": 5,
"search_volume": 471
},
{
"year": 2024,
"month": 4,
"search_volume": 471
},
{
"year": 2024,
"month": 3,
"search_volume": 471
},
{
"year": 2024,
"month": 2,
"search_volume": 585
},
{
"year": 2024,
"month": 1,
"search_volume": 715
},
{
"year": 2023,
"month": 12,
"search_volume": 471
},
{
"year": 2023,
"month": 11,
"search_volume": 585
},
{
"year": 2023,
"month": 10,
"search_volume": 585
},
{
"year": 2023,
"month": 9,
"search_volume": 585
},
{
"year": 2023,
"month": 8,
"search_volume": 585
}
]
}
]
}
]
}
]
}
The items array contains objects with refined search volume data for each keyword. Specifically, the search_volume field displays the current search volume value for a keyword. The monthly_searches array provides refined monthly search volume values for the keyword over the last 12 months.
Getting refined search volume with DataForSEO Labs API
Suppose you want to generate more terms for your keyword list. You can do so using the Keyword Suggestions endpoint of the DataForSEO Labs API.
Call the Keyword Suggestions endpoint:
POST: https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live
In the request body, specify the seed keyword, location, and language.
To get DataForSEO Search Volume metrics, set the include_clickstream_data
parameter to true
in your request body. This parameter ensures you get both the DataForSEO Search Volume normalized using clickstream data, and the Bing Ads-adjusted DataForSEO Search Volume.
Request example:
[
{
"keyword": "pdf document",
"location_code": 2840,
"language_code": "en",
"limit": 1,
"include_clickstream_data": true
}
]
Response examle:
{
"version": "0.1.20241101",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2777 sec.",
"cost": 0.0201,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "11281445-1535-0399-0000-bbb55d32cc6e",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2318 sec.",
"cost": 0.0201,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"keyword_suggestions",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "keyword_suggestions",
"se_type": "google",
"keyword": "pdf document",
"location_code": 2840,
"language_code": "en",
"limit": 1,
"include_clickstream_data": true
},
"result": [
{
"se_type": "google",
"seed_keyword": "pdf document",
"seed_keyword_data": null,
"location_code": 2840,
"language_code": "en",
"total_count": 8991,
"items_count": 1,
"offset": 0,
"offset_token": "eyJDdXJyZW50T2Zmc2V0IjoxLCJSZXF1ZXN0RGF0YSI6eyJrZXl3b3JkIjoicGRmIGRvY3VtZW50IiwiaW5jbHVkZV9zZWVkX2tleXdvcmQiOmZhbHNlLCJmdWxsX21hdGNoIjpmYWxzZSwibG9hZF9zZXJwX2luZm8iOmZhbHNlLCJzZWFyY2hfYWZ0ZXJfdG9rZW4iOm51bGwsImlnbm9yZV9zeW5vbnltcyI6ZmFsc2UsImxhbmd1YWdlIjoiZW4iLCJzZWFyY2hfZW5naW5lIjoiZ29vZ2xlIiwibG9jYXRpb24iOjI4NDAsInVzZV9uZXdfY2F0ZWdvcmllcyI6dHJ1ZSwib3JkZXJfYnkiOnsib3JkZXJfZmllbGQiOiJrZXl3b3JkX2luZm8uc2VhcmNoX3ZvbHVtZSIsIm9yZGVyX3R5cGUiOiJEZXNjIiwibmV4dCI6bnVsbH0sImxpbWl0IjoxLCJvZmZzZXQiOjAsImFpZCI6MTUzNX0sIlJhd1F1ZXJ5IjpudWxsLCJJZCI6Ijk2YWI1OWFlLTJhNGItNDk4OS1hZGNiLTA5OTAyZDgyM2U0ZCIsIlNlYXJjaEFmdGVyRGF0YSI6WzE2NTAwMCwiOTc4NDI4MWYtYWRlZS0zMGE5LTdhMjgtNDAyZTU1NTI3ZjI5Il19",
"items": [
{
"se_type": "google",
"keyword": "pdf document to jpg",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "google",
"last_updated_time": "2024-11-12 01:32:15 +00:00",
"competition": 0.11,
"competition_level": "LOW",
"cpc": 0.36,
"search_volume": 165000,
"low_top_of_page_bid": 0.06,
"high_top_of_page_bid": 0.47,
"categories": [
10019,
10168,
10885,
12209,
12210
],
"monthly_searches": [
{
"year": 2024,
"month": 10,
"search_volume": 201000
},
{
"year": 2024,
"month": 9,
"search_volume": 165000
},
{
"year": 2024,
"month": 8,
"search_volume": 165000
},
{
"year": 2024,
"month": 7,
"search_volume": 135000
},
{
"year": 2024,
"month": 6,
"search_volume": 135000
},
{
"year": 2024,
"month": 5,
"search_volume": 165000
},
{
"year": 2024,
"month": 4,
"search_volume": 201000
},
{
"year": 2024,
"month": 3,
"search_volume": 165000
},
{
"year": 2024,
"month": 2,
"search_volume": 165000
},
{
"year": 2024,
"month": 1,
"search_volume": 165000
},
{
"year": 2023,
"month": 12,
"search_volume": 165000
},
{
"year": 2023,
"month": 11,
"search_volume": 165000
}
],
"search_volume_trend": {
"monthly": 22,
"quarterly": 22,
"yearly": 0
}
},
"keyword_info_normalized_with_bing": {
"last_updated_time": "2024-11-27 06:09:35 +00:00",
"search_volume": 0,
"is_normalized": true,
"monthly_searches": [
{
"year": 2024,
"month": 10,
"search_volume": 0
},
{
"year": 2024,
"month": 9,
"search_volume": 0
},
{
"year": 2024,
"month": 8,
"search_volume": 0
},
{
"year": 2024,
"month": 7,
"search_volume": 0
},
{
"year": 2024,
"month": 6,
"search_volume": 0
},
{
"year": 2024,
"month": 5,
"search_volume": 0
},
{
"year": 2024,
"month": 4,
"search_volume": 0
},
{
"year": 2024,
"month": 3,
"search_volume": 0
},
{
"year": 2024,
"month": 2,
"search_volume": 0
},
{
"year": 2024,
"month": 1,
"search_volume": 0
},
{
"year": 2023,
"month": 12,
"search_volume": 0
},
{
"year": 2023,
"month": 11,
"search_volume": 0
},
{
"year": 2023,
"month": 10,
"search_volume": 0
},
{
"year": 2023,
"month": 9,
"search_volume": 0
},
{
"year": 2023,
"month": 8,
"search_volume": 0
},
{
"year": 2023,
"month": 7,
"search_volume": 0
}
]
},
"keyword_info_normalized_with_clickstream": {
"last_updated_time": "2024-11-27 06:09:35 +00:00",
"search_volume": 9,
"is_normalized": true,
"monthly_searches": [
{
"year": 2024,
"month": 10,
"search_volume": 11
},
{
"year": 2024,
"month": 9,
"search_volume": 9
},
{
"year": 2024,
"month": 8,
"search_volume": 9
},
{
"year": 2024,
"month": 7,
"search_volume": 7
},
{
"year": 2024,
"month": 6,
"search_volume": 7
},
{
"year": 2024,
"month": 5,
"search_volume": 9
},
{
"year": 2024,
"month": 4,
"search_volume": 11
},
{
"year": 2024,
"month": 3,
"search_volume": 9
},
{
"year": 2024,
"month": 2,
"search_volume": 9
},
{
"year": 2024,
"month": 1,
"search_volume": 9
},
{
"year": 2023,
"month": 12,
"search_volume": 9
},
{
"year": 2023,
"month": 11,
"search_volume": 9
},
{
"year": 2023,
"month": 10,
"search_volume": 9
},
{
"year": 2023,
"month": 9,
"search_volume": 6
},
{
"year": 2023,
"month": 8,
"search_volume": 6
},
{
"year": 2023,
"month": 7,
"search_volume": 5
}
]
},
"clickstream_keyword_info": {
"search_volume": 77,
"last_updated_time": "2024-11-22 04:48:00 +00:00",
"gender_distribution": {
"female": 100,
"male": null
},
"age_distribution": {
"18-24": null,
"25-34": null,
"35-44": 100,
"45-54": null,
"55-64": null
},
"monthly_searches": [
{
"year": 2024,
"month": 10,
"search_volume": 80
},
{
"year": 2024,
"month": 9,
"search_volume": 80
},
{
"year": 2024,
"month": 8,
"search_volume": 80
},
{
"year": 2024,
"month": 7,
"search_volume": 80
},
{
"year": 2024,
"month": 6,
"search_volume": 0
},
{
"year": 2024,
"month": 5,
"search_volume": 80
},
{
"year": 2024,
"month": 4,
"search_volume": 80
},
{
"year": 2024,
"month": 3,
"search_volume": 80
},
{
"year": 2024,
"month": 2,
"search_volume": 80
},
{
"year": 2024,
"month": 1,
"search_volume": 80
},
{
"year": 2023,
"month": 12,
"search_volume": 80
},
{
"year": 2023,
"month": 11,
"search_volume": 80
}
]
},
"keyword_properties": {
"se_type": "google",
"core_keyword": null,
"synonym_clustering_algorithm": "text_processing",
"keyword_difficulty": 68,
"detected_language": "lt",
"is_another_language": true
},
"impressions_info": {
"se_type": "google",
"last_updated_time": "2022-04-12 04:53:21 +00:00",
"bid": 999,
"match_type": "exact",
"ad_position_min": null,
"ad_position_max": null,
"ad_position_average": null,
"cpc_min": null,
"cpc_max": null,
"cpc_average": null,
"daily_impressions_min": null,
"daily_impressions_max": null,
"daily_impressions_average": null,
"daily_clicks_min": null,
"daily_clicks_max": null,
"daily_clicks_average": null,
"daily_cost_min": null,
"daily_cost_max": null,
"daily_cost_average": null
},
"serp_info": null,
"avg_backlinks_info": {
"se_type": "google",
"backlinks": 8050.2,
"dofollow": 7640.2,
"referring_pages": 7890.6,
"referring_domains": 283.1,
"referring_main_domains": 236.5,
"rank": 300.1,
"main_domain_rank": 604.4,
"last_updated_time": "2024-10-04 12:56:25 +00:00"
},
"search_intent_info": {
"se_type": "google",
"main_intent": "commercial",
"foreign_intent": null,
"last_updated_time": "2023-03-02 02:10:48 +00:00"
}
}
]
}
]
}
]
}
Within keyword_info_normalized_with_bing
and keyword_info_normalized_with_clickstream
objects you can find current search volume values for the keyword. In the monthly_searches
arrays of these objects, you will get normalized monthly search volume values for the keyword for the last 12 months.
As you can see, with DataForSEO Search Volume endpoint and DataForSEO Labs API endpoints, you can easily fetch refined search volume for your keywords.