We are trying to get search volume data for keywords using TargetingIdeaService with 'requestType': 'STATS' to get the volume
When looking for a word that has a misspell like "srecording studio" we get back from the API:
attributes['KEYWORD_TEXT'] = srecording studio
attributes['SEARCH_VOLUME']) = 165,000
if I do the same operation on the keyword planner tool (searching for volume of "srecording studio" with the same preferences) I get the following result:
keyword: recording studio
volume: 165,000
we don't understand why the API is returning different results for a misspell that has no search volume, I would expect to get:
attributes['KEYWORD_TEXT'] = srecording studio
attributes['SEARCH_VOLUME']) = 0
or if the tool is checking the volume for a related word it should return that word with its search volume:
attributes['KEYWORD_TEXT'] = recording studio
attributes['SEARCH_VOLUME']) = 165,000
returning search volume of 165,000 for "srecording studio" is simply wrong. What is the logic behind this behaviour?
here is the full request we sent:
targeting_idea_service = client.GetService('TargetingIdeaService', version='v201607')
offset = 0
selector = {
'searchParameters': [
{
'xsi_type': 'RelatedToQuerySearchParameter',
'queries': words
},
],
'ideaType': 'KEYWORD',
'requestType': 'STATS',
'requestedAttributeTypes': ['KEYWORD_TEXT', 'SEARCH_VOLUME'],
'paging': {
'startIndex': str(offset),
'numberResults': str(PAGE_SIZE)
}
}
more_pages = True
while more_pages:
page = targeting_idea_service.get(selector)
# Display results.
if 'entries' in page:
for result in page['entries']:
attributes = {}
for attribute in result['data']:
attributes[attribute['key']] = getattr(attribute['value'], 'value','0')
print ('Keyword \'%s\' average monthly search volume '
'\'%s\n'
% (attributes['KEYWORD_TEXT'],
attributes['SEARCH_VOLUME']))
print
else:
print 'No related keywords were found.'
offset += PAGE_SIZE
selector['paging']['startIndex'] = str(offset)
more_pages = offset < int(page['totalNumEntries'])