| Google-Adwords documentation | Contained in the Google-Adwords distribution. |
Google::Adwords::KeywordToolService - Interact with the Google Adwords KeywordToolService API calls
This documentation refers to Google::Adwords::KeywordToolService version 0.2
use Google::Adwords::KeywordToolService;
use Google::Adwords::SeedKeyword;
# create the keyword tool service object
my $kwtool_service = Google::Adwords::KeywordToolService->new();
# need to login to the Adwords service
$kwtool_service->email($email_address)
->password($password)
->developerToken($developer_token)
->applicationToken($app_token);
# if you have a MCC
$kwtool_service->clientEmail($client_email);
# or
$kwtool_service->clientCustomerId($customerid);
# getKeywordsFromSite
my $sitekeywordgroups = $kwtool_service->getKeywordsFromSite({
url => 'http://url.com',
includeLinkedPages => 1,
languages => [ 'en', 'fr' ],
countries => [ 'IN', 'FR' ]
});;
print "Groups : " . join('|', @{$sitekeywordgroups->groups}) ."\n";
for ( @{$sitekeywordgroups->keywords} ) {
print "Keyword # text : " . $_->text . " | searchVolumeScale : " . $_->searchVolumeScale ."\n";
}
# getKeywordVariations
my $seed1 = Google::Adwords::SeedKeyword->new
->text('world news')
->type('Broad');
my $seed2 = Google::Adwords::SeedKeyword->new
->text('independant news')
->type('Broad');
my $keyword_variations = $kwtool_service->getKeywordVariations({
seedKeywords => [ $seed1, $seed2, ],
useSynonyms => 1,
languages => [ 'en', 'fr', ],
countries => [ 'US', 'IN', ],
});
print "additionalToConsider \n";
for ( @{$keyword_variations->additionalToConsider} ) {
print "Keyword # text : " . $_->text . " | searchVolumeScale : " . $_->searchVolumeScale . "\n";
}
print "moreSpecific \n";
for ( @{$keyword_variations->moreSpecific} ) {
print "Keyword # text : " . $_->text . " | searchVolumeScale : " . $_->searchVolumeScale . "\n";
}
This module provides an interface to the Google Adwords KeywordToolService API calls.
Given a URL, returns keywords based on words found on that web page or site, which can be used as keyword criteria for a campaign. The results are grouped by common keywords, with the groups ordered by decreasing relevance.
my $sitekeywordgroups = $service->getKeywordsFromSite({
url => 'http://url.com',
includeLinkedPages => 1,
languages => [ 'en', 'fr' ],
countries => [ 'IN', 'FR' ]
});;
Takes a hashref with following keys:
A Google::Adwords::SiteKeywordGroups object.
Given a list of SeedKeywords, returns their variations in multiple lists within KeywordVariations. Each list represents a different kind of variation.
my $keyword_variations = $service->getKeywordVariations({
seedKeywords => [ $seed1, $seed2, ],
useSynonyms => 1,
languages => [ 'en', 'fr', ],
countries => [ 'US', 'IN', ],
});
Takes a hashref with following keys:
A Google::Adwords::KeywordVariations object.
Rohan Almeida <rohan@almeida.in>
Mathieu Jondet <mathieu@eulerian.com>
Copyright (c) 2006 Rohan Almeida <rohan@almeida.in>. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
| Google-Adwords documentation | Contained in the Google-Adwords distribution. |
package Google::Adwords::KeywordToolService; use strict; use warnings; use version; our $VERSION = qv('0.2'); use base 'Google::Adwords::Service'; # data types use Google::Adwords::KeywordVariations; use Google::Adwords::KeywordVariation; use Google::Adwords::SeedKeyword; use Google::Adwords::SiteKeywordGroups; use Google::Adwords::SiteKeyword; ### INSTANCE METHOD ################################################ # Usage : # # my $sitekeywordgroups = $obj->getKeywordsFromSite({ # url => 'http://url.com', # includeLinkedPages => 1, # languages => [ 'en', 'fr' ], # countries => [ 'IN', 'FR' ] # }); # # Purpose : Given a URL, returns keywords based on words found on that URL. # Returns : A Google::Adwords::SiteKeywordGroups object. # Parameters : a url, a flag indicating if links should be followed, an array # ref of languages, an array ref of countries. # Throws : no exceptions # Comments : none # See Also : n/a ####################################################################### sub getKeywordsFromSite { my ( $self, $args_ref ) = @_; $args_ref->{languages} ||= []; $args_ref->{countries} ||= []; my @params; push @params, SOAP::Data->name( 'url' => $args_ref->{url} )->type(''); push @params, SOAP::Data->name( 'includeLinkedPages' => ( $args_ref->{includeLinkedPages} ) ? 'true' : 'false' )->type(''); if ( @{ $args_ref->{languages} } ) { push @params, SOAP::Data->name( 'languages' => @{ $args_ref->{languages} } ) ->type(''); } if ( @{ $args_ref->{countries} } ) { push @params, SOAP::Data->name( 'countries' => @{ $args_ref->{countries} } ) ->type(''); } my $result = $self->_create_service_and_call( { service => 'KeywordToolService', method => 'getKeywordsFromSite', params => \@params, } ); # get response data in a hash my $data = $result->valueof( "//getKeywordsFromSiteResponse/getKeywordsFromSiteReturn"); my $sitekeywordgroups = Google::Adwords::SiteKeywordGroups->new(); $sitekeywordgroups->groups( $data->{groups} ); my @keywords; if ( $data->{keywords} ) { for ( @{ $data->{keywords} } ) { push @keywords, $self->_create_object_from_hash( $_, 'Google::Adwords::SiteKeyword' ); } $sitekeywordgroups->keywords(@keywords); } return $sitekeywordgroups; } # end sub getKeywordsFromSite ### INSTANCE METHOD ################################################ # Usage : # # my $keyword_variations = $obj->getKeywordVariations({ # seedKeywords => \@seedkeyword, # useSynonyms => 1, # languages => \@languages, # countries => \@countries # }); # # Purpose : Given a list of SeedKeyword objects, returns their # variations in multiple lists. # Returns : A Google::Adwords::KeywordVariations object. # Parameters : an array ref of Google::Adwords::SeedKeyword objects, a flag # indicating if synonyms are enabled, an array ref of languages, # an array ref of countries. # Throws : no exceptions # Comments : none # See Also : n/a ####################################################################### sub getKeywordVariations { my ( $self, $args_ref ) = @_; $args_ref->{seedKeywords} ||= []; $args_ref->{useSynonyms} ||= 0; $args_ref->{languages} ||= []; $args_ref->{countries} ||= []; my @params; for ( @{ $args_ref->{seedKeywords} } ) { my @seedkeyword; if ( defined $_->negative ) { push @seedkeyword, SOAP::Data->name( 'negative' => ( $_->negative ) ? 'true' : 'false' )->type(''); } if ( defined $_->text ) { push @seedkeyword, SOAP::Data->name( 'text' => $_->text )->type(''); } if ( defined $_->type ) { push @seedkeyword, SOAP::Data->name( 'type' => $_->type )->type(''); } push @params, SOAP::Data->name( 'seedKeywords' => \SOAP::Data->value(@seedkeyword) )->type(''); } # end for ( @{ $args_ref->{seedKeywords... push @params, SOAP::Data->name( 'useSynonyms' => ( $args_ref->{useSynonyms} ) ? 'true' : 'false' ) ->type(''); if ( @{ $args_ref->{languages} } ) { push @params, SOAP::Data->name( 'languages' => @{ $args_ref->{languages} } ) ->type(''); } if ( @{ $args_ref->{countries} } ) { push @params, SOAP::Data->name( 'countries' => @{ $args_ref->{countries} } ) ->type(''); } my $result = $self->_create_service_and_call( { service => 'KeywordToolService', method => 'getKeywordVariations', params => \@params, } ); # get response data in a hash my $data = $result->valueof( "//getKeywordVariationsResponse/getKeywordVariationsReturn"); my $keyword_variations = Google::Adwords::KeywordVariations->new(); my @additionalToConsider; if ( $data->{additionalToConsider} ) { if ( ref $data->{additionalToConsider} eq 'ARRAY' ) { for ( @{ $data->{additionalToConsider} } ) { push @additionalToConsider, $self->_create_object_from_hash( $_, 'Google::Adwords::KeywordVariation' ); } } else { push @additionalToConsider, $self->_create_object_from_hash( $data->{additionalToConsider}, 'Google::Adwords::KeywordVariation' ); } $keyword_variations->additionalToConsider(@additionalToConsider); } # end if ( $data->{additionalToConsider... my @moreSpecific; if ( $data->{moreSpecific} ) { if ( ref $data->{moreSpecific} eq 'ARRAY' ) { for ( @{ $data->{moreSpecific} } ) { push @moreSpecific, $self->_create_object_from_hash( $_, 'Google::Adwords::KeywordVariation' ); } } else { push @moreSpecific, $self->_create_object_from_hash( $data->{moreSpecific}, 'Google::Adwords::KeywordVariation' ); } $keyword_variations->moreSpecific(@moreSpecific); } # end if ( $data->{moreSpecific... return $keyword_variations; } # end sub getKeywordVariations 1;