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

Reply via email to