The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Google::Adwords::AdService - Interact with the Google Adwords AdService API calls

VERSION

This documentation refers to Google::Adwords::AdService version 0.3

SYNOPSIS

        use Google::Adwords::AdService;
        use Google::Adwords::Ad;
        use Google::Adwords::Image;

        use File::Slurp;

        my $adgroup_id = 20048;

        # Create Text Ad
        my $ad1 = Google::Adwords::Ad->new
            ->adType('TextAd')
            ->headline('The World is Flat')
            ->description1('Yes')
            ->description2('It is')
            ->adGroupId($adgroup_id)
            ->destinationUrl('http://aarohan.biz')
            ->displayUrl('aarohan.biz')

        # Create an Image Ad
        my $ad2 = Google::Adwords::Ad->new
            ->adType('ImageAd')
            ->adGroupId($adgroup_id)
            ->destinationUrl('http://aarohan.biz')
            ->displayUrl('aarohan.biz');

        # The image stuff
        my $image_data = read_file('picture.jpg');
        my $image = Google::Adwords::Image->new;
        $image->name('picture.jpg');
        $image->data($image_data);

        # Associate the image with the Image Ad
        $ad2->image($image);

        # Create the AdService
        my $service = Google::Adwords::AdService->new();

        # login details
        $service->email('email@domain.com')
                ->password('password')
                ->developerToken($developer_token)
                ->applicationToken($app_token);

        # if you use a MCC
        #$service->clientEmail('clientemail@domain.com');
        # or 
        #$service->clientCustomerId('xxx-xxx-xxxx');

        # Add the two ads
        my @added_ads = $service->addAds($ad1, $ad2);
  

DESCRIPTION

This module provides an interface to the Google Adwords AdService API calls.

METHODS

addAds()

Description

    Make a batch of new Ads. The adGroupId field of the Ad indicates which AdGroup to add the Ad to. The adGroupId field is required, and the indicated AdGroup must exist already.

Usage

    my @ads = $service->addAds($ad1, $ad2);

Parameters

    A list of Google::Adwords::Ad objects to be added.

Returns

    A list of Google::Adwords::Ad objects just created with their IDs filled in.

findBusinesses()

Description

    Searches for businesses with similar attributes. This call is similar to querying Google Local Search. All parameters are required.

Usage

    my @businesses = $service->findBusinesses({
        name    => 'business name',
        address => 'address of business',
        countryCode => 'IN',
    });

Parameters

A hashref with following keys :

  • name => Name of the business

  • address => Location of the business

  • countryCode => Two letter country code of the business address.

Returns

    A list of matching businesses, each as a Google::Adwords::Business object

getActiveAds()

Description

    Return all active Ads associated with the list of AdGroup ids specified.

Usage

    my @ads = $obj->getActiveAds($adgroupid1, $adgroupid2);

Parameters

    List of adgroupids from which we want the active Ads

Returns

    A list of Google::Adwords::Ad objects

getAd()

Description

    Return information about one Ad.

Usage

    my $ad = $service->getAd($adgroup_id, $ad_id);

Parameters

1) $adgroup_id => The ID of the AdGroup owning the Ad
2) $ad_id => The ID of the Ad

Returns

    The requested Ad as a Google::Adwords::Ad object.

getAdStats()

Description

    Get statistics for a list of ads in an ad group.

Usage

    my @ad_stats = $service->getAdStats({
        adGroupId   => 1234,
        adIds       => [ 3982, 2787, 17872 ],
        startDay    => $startDay,
        endDay      => $endDay,
        inPST       => 1,
    });

Parameters

Takes a hashref with following keys,

    * adGroupId => The ad group that contains the Ads to be queried

    * adIds => array reference of Ad IDs

    * startDay => The starting day of the period for which statistics are to be collected in format YYYY-MM-DD

    * endDay => The ending day of the period for which statistics are to be collected in format YYYY-MM-DD

    * inPST => Set to 1 to get stats in America/Los_Angeles timezone (Google headquarters) regardless of the parent account's localtimezone.

Returns

    A list of Google::Adwords::StatsRecord objects

getAllAds()

Description

    Return all Ads (enabled, disabled, or paused) associated with the list of AdGroup ids specified.

Usage

    my @ads = $service->getAllAds($adgroup_id1, $adgroup_id2);

Parameters

    A list of AdGroup IDs that own the Ads

Returns

    A list of Google::Adwords::Ad objects

getMyBusinesses()

Description

    Returns the list of businesses registered to the user in the Local Business Center. The user is determined by the clientEmail header if it is specified. Otherwise, the email header is used instead.

Usage

    my @businesses = $self->getMyBusinesses();

Parameters

    NONE

Returns

    A list of Google::Adwords::Business objects

updateAds()

Description

    Update a batch of ads. Use the id field of the ad to indicate which ad to update. Currently only the status field is updateable, all other fields will be ignored.

Usage

    $ret = $obj->updateAds($ad1, $ad2);

Parameters

    A List of Google::Adwords::Ad objects to be updated

Returns

    1 on success

SEE ALSO

AUTHORS

Rohan Almeida <rohan@almeida.in>

Mathieu Jondet <mathieu@eulerian.com>

LICENSE AND COPYRIGHT

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.