Hi Rohan,

Thanks for your help. Initially when I tried this I was still only getting
one result back, so I figured it must be a problem with my installation and
reinstalled SOAP::Lite using cpan. This solved the problem!

Many thanks,

Dan

On Mon, Feb 16, 2009 at 9:18 AM, Rohan Almeida <ro...@almeida.in> wrote:

>
>
> Hi,
>
> It looks to me like you're using an incorrect XPath expression to
> get to your results. "//body" i.e. I guess using "//moreSpecific"
>  should help.
>
> I've also had a try at this using Google::Adwords, but on the
> sandbox.
>
> my $seed_keyword1 = Google::Adwords::SeedKeyword->new;
> $seed_keyword1->negative(0);
> $seed_keyword1->text('trusted places');
> $seed_keyword1->type('Broad');
>
> my $keyword_variations = $service->getKeywordVariations(
>   {
>     seedKeywords => [ $seed_keyword1, ],
>     useSynonyms  => 1,
>     languages    => [ 'en', ],
>     countries    => [ 'US', ],
>   }
> );
>
> for ( @{ $keyword_variations->moreSpecific } ) {
>   print "Text: " . $_->text . "\n";
>   print "advertiserCompetitionScale: "
>     .  $_->advertiserCompetitionScale . "\n";
> }
>
>
> Hope this helps.
>
> --
> Rohan
>
>
> discodan wrote:
> > Hi all,
> >
> > Would really appreciate your help. This is probably more of a Perl /
> > SOAP than adwords API question, but I've spent hours trawling the
> > internet for an answer to this and cannot find it, so I'm hoping you
> > can help :). I'm relatively new to Perl and SOAP, and I'm trying to
> > implement a connection to the Google Adwords API using SOAP::Lite. I
> > have it almost working but however I try and get a return value from
> > SOAP::SOM (e.g. using valueof or result) I only seem to get the last
> > element. Even calling valueof("//Body") just gives me one element. I
> > have tried debugging the code and using Dumper, but the SOAP::Lite
> > code is quite unreadable (at least to me :)
> > and I can't work out whats going on. I've tried implementing this
> > directly both using SOAP::Lite and via Google::Adwords, and they both
> > have the same behaviour.
> >
> > This what I get from valueof("//Body):
> >
> > $VAR1 = {
> > 'getKeywordVariationsResponse' => {
> >
> > 'getKeywordVariationsReturn' => {
> >
> > 'moreSpecific' => {
> >
> > 'searchVolumeScale' => '2',
> >
> > 'language' => '',
> >
> > 'text' => 'trusted places 1',
> >
> > 'advertiserCompetitionScale' => '3'
> >
> > }
> >
> > }
> > }
> > };
> >
> > But I know there is more than one KeywordVariation from using Dumper
> > on the SOAP::SOM object.
> >
> > This is the code I am using, its basically the example provided by
> > Google:
> >
> > use strict;
> > use warnings;
> > use English '-no_match_vars';
> > use SOAP::Lite;
> > use Data::Dumper;
> > binmode(STDOUT, ':utf8');
> >
> > # Provide AdWords login information.
> > my $email = '';
> > my $password = '';
> > my $client_email = 
> > 'client_1+dan.j.rog...@gmail.com<client_1%2bdan.j.rog...@gmail.com>
> ';
> > my $useragent = 'QYPE: AdWords API Perl Sample Code';
> > my $developer_token = 'dan.j.rog...@gmail.com++usd';
> > my $application_token = 'INSERT_APPLICATION_TOKEN_HERE';
> >
> > # Set up service connection with autotyping disabled and fault handler
> > # registered. To send requests to production environment, replace
> > "sandbox" with
> > # "adwords". To view XML request/response, uncomment
> > # "SOAP::Lite->import(+trace => 'debug');".
> > my $url =
> > sprintf('https://%s.google.com/api/adwords/v12/KeywordToolService',
> > 'sandbox');
> >
> > my $wsdl = $url . '?wsdl';
> >
> > my $service =
> > SOAP::Lite->service($wsdl)->autotype(0)->readable(1)->proxy($url);
> >
> > $service->on_fault(sub {
> > my $response = $ARG[1];
> > die('The following SOAP fault occurred:', "\n",
> > ' faultcode: ', $response->faultcode(), "\n",
> > ' faultstring: ', $response->faultstring(),
> > "\n")
> > });
> > SOAP::Lite->import(+trace => 'debug');
> >
> > # Define SOAP headers.
> > my @headers = (
> > SOAP::Header->name('email' => $email),
> > SOAP::Header->name('password' => $password),
> > SOAP::Header->name('clientEmail' => $client_email),
> > SOAP::Header->name('useragent' => $useragent),
> > SOAP::Header->name('developerToken' => $developer_token),
> > SOAP::Header->name('applicationToken' => $application_token)
> > );
> >
> > # Create seed keyword structure.
> > my $seed_keyword = {
> > 'negative' => 'false',
> > 'text' => 'trusted places',
> > 'type' => 'Broad',
> > };
> >
> > my $seed_keywords = SOAP::Data->name('seed_keywords' =>
> > [$seed_keyword]);
> > my $use_synonyms = SOAP::Data->name('useSynonyms' => 'true');
> > my $languages = SOAP::Data->name('languages' => ['en']);
> > my $countries = SOAP::Data->name('countries' => ['US']);
> >
> > # Get keyword variations.
> > my $variation_lists = $service->call('getKeywordVariations' =>
> > $seed_keywords,
> > $use_synonyms, $languages, $countries, @headers);
> >
> > print Dumper($variation_lists);
> >
> > my @data = $variation_lists->valueof("//Body");
> >
> > foreach my $data_word (@data){
> > print Dumper($data_word);
> > }
> >
> > If anyone knows where I am going wrong I'd be most grateful!
> >
> > Thanks for your help.
> > >
> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to 
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to