Sorry, I forgot to mention that I'm using version 201206 of the API and
version 0.6.3 of the Ruby gem.
I'm also using the ClientLogin method of verification because I had trouble
with getting OAuth2 to work in a workflow that is scheduled, large scale
map reduce jobs that have no human interaction whatsoever. Any help or
ideas in this direction would be awesomely helpful and hugely appreciated :)
On Thursday, 16 August 2012 17:15:54 UTC+1, samwho wrote:
>
> I'm using the Ruby API to access the TargetingIdeaService and getting some
> peculiar results. The aim of the program I'm trying to write is to take a
> very large database of keywords (we're talking millons) and, using Hadoop
> MapReduce, query each and every keyword to get the following information:
>
> - Ad share
> - Competition
> - Search share
> - Search volume
>
> I've written a wrapper around the Ruby client library to make it a little
> easier to use for this purpose. Typical calls look like this:
>
> AskKeywordIdeas::Api.stats ["car insurance"]
> AskKeywordIdeas::Api.stats ["car insurance"], location: "US"
>
> And they build up a TargetingIdeaServiceSelector using Ruby hashes and
> arrays under the hood, creating a format that the Ruby client library will
> accept. It then uses the "get" method to look for keyword STATS, not IDEAS.
> Also, results are processed to be returned in a more idiomatic Ruby
> fashion. Here's what a typical result looks like:
>
>
> {"car insurance"=>
> {:targeted_monthly_searches=>
> [{:year=>2012, :month=>7},
> {:year=>2012, :month=>6, :count=>673000},
> {:year=>2012, :month=>5, :count=>673000},
> {:year=>2012, :month=>4, :count=>673000},
> {:year=>2012, :month=>3, :count=>673000},
> {:year=>2012, :month=>2, :count=>823000},
> {:year=>2012, :month=>1, :count=>823000},
> {:year=>2011, :month=>12, :count=>550000},
> {:year=>2011, :month=>11, :count=>673000},
> {:year=>2011, :month=>10, :count=>823000},
> {:year=>2011, :month=>9, :count=>823000},
> {:year=>2011, :month=>8, :count=>823000}],
> :extracted_from_webpage=>nil,
> :category_products_and_services=>[10012, 11854, 10550, 10102],
> :search_share=>nil,
> :idea_type=>"KEYWORD",
> :ngram_group=>nil,
> :search_volume=>1000000,
> :ad_share=>nil,
> :competition=>0.976}}
>
>
> So if you send an array with multiple keywords in it, you will get a hash
> indexed by the keyword in return (which makes it far easier to process on
> our end).
>
> The first problem is that sometimes some data isn't returned. In the above
> example you'll notice that ad_share and search_share are both nil. This
> means that no value was sent back from the API. I'm curious as to why this
> is? For some keywords, none of the four desired fields are returned at all.
> An example of this is "price comparison broad band". The result hash for
> that looks like this:
>
> {"price comparison broad band"=>
> {:targeted_monthly_searches=>
> [{:year=>2012, :month=>7},
> {:year=>2012, :month=>6},
> {:year=>2012, :month=>5},
> {:year=>2012, :month=>4},
> {:year=>2012, :month=>3},
> {:year=>2012, :month=>2},
> {:year=>2012, :month=>1},
> {:year=>2011, :month=>12},
> {:year=>2011, :month=>11},
> {:year=>2011, :month=>10},
> {:year=>2011, :month=>9},
> {:year=>2011, :month=>8}],
> :extracted_from_webpage=>nil,
> :category_products_and_services=>nil,
> :search_share=>nil,
> :idea_type=>"KEYWORD",
> :ngram_group=>nil,
> :search_volume=>nil,
> :ad_share=>nil,
> :competition=>nil}}
>
>
> How come this happens?
>
> My second query is to do with location search. The example I'm going to
> use is a Portugese one. The keyword: "capitulos de mascaras" returns the
> following hash when queried without specifying a location:
>
> {"capitulos de mascaras"=>
> {:targeted_monthly_searches=>
> [{:year=>2012, :month=>7},
> {:year=>2012, :month=>6, :count=>480},
> {:year=>2012, :month=>5, :count=>480},
> {:year=>2012, :month=>4, :count=>320},
> {:year=>2012, :month=>3, :count=>0},
> {:year=>2012, :month=>2},
> {:year=>2012, :month=>1},
> {:year=>2011, :month=>12},
> {:year=>2011, :month=>11},
> {:year=>2011, :month=>10},
> {:year=>2011, :month=>9},
> {:year=>2011, :month=>8}],
> :extracted_from_webpage=>nil,
> :category_products_and_services=>[10047, 10005, 10358, 10061],
> :search_share=>nil,
> :idea_type=>"KEYWORD",
> :ngram_group=>nil,
> :search_volume=>140,
> :ad_share=>nil,
> :competition=>0.008}}
>
>
> However, when a location is included like so:
>
> AskKeywordIdeas::Api.stats ["capitulos de mascaras"], location: "PT"
>
> Which under the hood translates that to this search parameter:
>
> {
> :xsi_type => "LocationSearchParameter",
> :locations => [{ :id => '2620' }]
> }
>
>
> And I have double checked that this is both correct and exactly is what is
> fed into the Ruby client library. The following hash is returned:
>
> {"capitulos de mascaras"=>
> {:targeted_monthly_searches=>
> [{:year=>2012, :month=>7},
> {:year=>2012, :month=>6},
> {:year=>2012, :month=>5},
> {:year=>2012, :month=>4},
> {:year=>2012, :month=>3},
> {:year=>2012, :month=>2},
> {:year=>2012, :month=>1},
> {:year=>2011, :month=>12},
> {:year=>2011, :month=>11},
> {:year=>2011, :month=>10},
> {:year=>2011, :month=>9},
> {:year=>2011, :month=>8}],
> :extracted_from_webpage=>nil,
> :category_products_and_services=>[10047, 10005, 10358, 10061],
> :search_share=>nil,
> :idea_type=>"KEYWORD",
> :ngram_group=>nil,
> :search_volume=>nil,
> :ad_share=>nil,
> :competition=>nil}}
>
>
> One would expect a Portugese phrase to have not-nil competition and other
> values when searched with the Portugal location. Furthermore, when using a
> LanguageSearchParameter specifying the correct code for Portugal, the
> following hash is returned:
>
> {"capitulos de mascaras"=>
> {:targeted_monthly_searches=>
> [{:year=>2012, :month=>7},
> {:year=>2012, :month=>6, :count=>480},
> {:year=>2012, :month=>5, :count=>480},
> {:year=>2012, :month=>4, :count=>320},
> {:year=>2012, :month=>3, :count=>0},
> {:year=>2012, :month=>2},
> {:year=>2012, :month=>1},
> {:year=>2011, :month=>12},
> {:year=>2011, :month=>11},
> {:year=>2011, :month=>10},
> {:year=>2011, :month=>9},
> {:year=>2011, :month=>8}],
> :extracted_from_webpage=>nil,
> :category_products_and_services=>[10047, 10005, 10358, 10061],
> :search_share=>nil,
> :idea_type=>"KEYWORD",
> :ngram_group=>nil,
> :search_volume=>140,
> :ad_share=>nil,
> :competition=>0.008}}
>
>
> Which looks more or less the same as the hash that returned from the query
> that didn't specify either a language or a location. So my question is what
> am I doing wrong? Also, does Google do language detection for me? It would
> appear that it does but it would be nice to have that confirmed one way or
> the other.
>
> Sorry for all the hashes and things but I've been puzzling over this for a
> while and want to be as clear as possible :)
>
> Thanks,
> Sam.
>
> PS: All of these are examples are from API calls made with production
> details and should, in theory, be reproducible (unless the account the
> query came from makes a difference?).
>
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en