2017 © Pedro Peláez
 

library laravel-google-ads

Google Adwords API for Laravel

image

edujugon/laravel-google-ads

Google Adwords API for Laravel

  • Friday, May 18, 2018
  • by edujugon
  • Repository
  • 4 Watchers
  • 23 Stars
  • 8,861 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 8 Forks
  • 4 Open issues
  • 26 Versions
  • 26 % Grown

The README.md

Google Adwords API for Laravel

Simple and easy to use API for your Google Adwords., (*1)

Installation

Type in console:
composer require edujugon/laravel-google-ads
Laravel 5.5 or higher?

Then you don't have to either register or add the alias, this package uses Package Auto-Discovery's feature, and should be available as soon as you install it via Composer., (*2)

(Only for Laravel 5.4 or minor) Register the GoogleAds service by adding it to the providers array.
'providers' => array(
        ...
        Edujugon\GoogleAds\Providers\GoogleAdsServiceProvider::class
    )
(Only for Laravel 5.4 or minor) Let's add the Alias facade, add it to the aliases array.
'aliases' => array(
        ...
        'GoogleAds' => Edujugon\GoogleAds\Facades\GoogleAds::class,
    )
Publish the package's configuration file to the application's own config directory.
php artisan vendor:publish --provider="Edujugon\GoogleAds\Providers\GoogleAdsServiceProvider" --tag="config"

The above command will generate a new file under your laravel app config folder called google-ads.php, (*3)

Configuration

Update the google-ads.php file with your data., (*4)

'env' => 'test',
'production' => [
    'developerToken' => "YOUR-DEV-TOKEN",
    'clientCustomerId' => "CLIENT-CUSTOMER-ID",
    'userAgent' => "YOUR-NAME",
    'clientId' => "CLIENT-ID",
    'clientSecret' => "CLIENT-SECRET",
    'refreshToken' => "REFRESH-TOKEN"
],
'test' => [
    'developerToken' => "YOUR-DEV-TOKEN",
    'clientCustomerId' => "CLIENT-CUSTOMER-ID",
    'userAgent' => "YOUR-NAME",
    'clientId' => "CLIENT-ID",
    'clientSecret' => "CLIENT-SECRET",
    'refreshToken' => "REFRESH-TOKEN"
],

'env' key accepts one of the following values: test / production, (*5)

Generate refresh token

Notice that it will take the clientID and clientSecret from google-ads.php config file based on the env value., (*6)

Type in console:, (*7)

php artisan googleads:token:generate
  • Visit the URL it shows, grant access to your app and input the access token in console.
  • Then copy the fresh token in google-ads.php config file.

Remember to copy that token in the correct section (test/production).Depends on your env value., (*8)

Usage samples

Instance the main wrapper class:, (*9)

$ads = new GoogleAds();

Do not forget to put at the top of the file the use statement:, (*10)

use Edujugon\GoogleAds\GoogleAds;

All needed configuration data is took from google-ads.php config file. But you always may pass new values on the fly if required., (*11)

You may override the default environment value calling the env method:, (*12)

$ads->env('test');

Also, you may get the env value by getEnv method:, (*13)

$ads->getEnv();

If need to override the oAuth details, just call the oAuth method like so:, (*14)

$ads->oAuth([
            'clientId' => 'test',
            'clientSecret' => 'test',
            'refreshToken' => 'TEST'

        ]);

Same with session. If need to override the default values on the fly, just do it by calling session method:, (*15)

$ads->session([
    'developerToken' => 'token',
    'clientCustomerId' => 'id'
]);

All the above methods can be chained as follows:, (*16)

$ads->env('test')
    ->oAuth([
        'clientId' => 'test',
        'clientSecret' => 'test',
        'refreshToken' => 'TEST'

    ])
    ->session([
        'developerToken' => 'token',
        'clientCustomerId' => 'id'
    ]);

Google Services

For Google Ads Services you only have to call the service method:, (*17)

$ads->service(CampaignService::class);

or, (*18)

$ads->service(AdGroupService::class);

or, (*19)

$ads->service(AdGroupAdService::class);

or Any google ads services available under Google\AdsApi\AdWords\v201809\cm folder., (*20)

Also you can use the global helper in order the get an instance of Service., (*21)

$service = google_service(CampaignService::class)

To retrieve a list of campaigns, do like follows:, (*22)

$ads->service(CampaignService::class)
    ->select(['Id', 'Name', 'Status', 'ServingStatus', 'StartDate', 'EndDate'])
    ->get();

Notice the method select is required and you have to use it in order to set the fields you wanna get from the campaign., (*23)

If need to add a condition to your search you can use the where method like follows:, (*24)

$ads->service(CampaignService::class)
    ->select(['Id', 'Name', 'Status', 'ServingStatus', 'StartDate', 'EndDate'])
    ->where('Id IN [752331963,795625088]')
    ->get();
or

$ads->service(CampaignService::class)
    ->select(['Id', 'Name', 'Status', 'ServingStatus', 'StartDate', 'EndDate'])
    ->where('Id = 752331963')
    ->get();

Notice! You may also set more than one condition. Do so calling where method as many times as you need., (*25)

Available Operators:, (*26)

= | != | > | >= | < | <= | IN | NOT_IN | STARTS_WITH | STARTS_WITH_IGNORE_CASE |
CONTAINS | CONTAINS_IGNORE_CASE | DOES_NOT_CONTAIN | DOES_NOT_CONTAIN_IGNORE_CASE |
CONTAINS_ANY | CONTAINS_NONE | CONTAINS_ALL

If need to limit your search you may use limit method:, (*27)

$ads->service(CampaignService::class)
    ->select(['Id', 'Name', 'Status', 'ServingStatus', 'StartDate', 'EndDate'])
    ->limit(5)
    ->get();

Also you can order by a field:, (*28)

$ads->service(CampaignService::class)
    ->select(['Id', 'Name', 'Status', 'ServingStatus', 'StartDate', 'EndDate'])
    ->orderBy('Name')
    ->limit(5)
    ->get();

Notice that the get method returns an instance of ServiceCollection. That custom collection has its own methods., (*29)

Once you have the collection, you can again filter with the where method, (*30)

$campaignService = $ads->service(CampaignService::class);

$results = $campaignService->select('CampaignId','CampaignName')->get();

//You can also add any where condition on the list.
$campaign = $results->where('id',1341312);

Also you can call the set method to change any value, (*31)

$campaign = $results->where('id',$this->testedCampaignId)->set('name','hello !!');

Finally you can persist those changes with the save method:, (*32)

$campaign = $campaign->save();

Save method returns an array of updated elements or false if nothing updated., (*33)

Important!! notice that it will persist all elements that are in the collection., (*34)

You can get the list as illuminate collection simply calling items method., (*35)

Google Reports

To start with google reporting just call report method from the main wrapper:, (*36)

$report = $ads->report();

or use the global helper like follows:, (*37)

$report = google_report();

It will return an instance of Edujugon\GoogleAds\Reports\Report, (*38)

Now, you have a set of method to prepare the google ads report:, (*39)

$obj = $ads->report()
            ->from('CRITERIA_PERFORMANCE_REPORT')
            ->during('20170101','20170210')
            ->where('CampaignId = 752331963')
            ->select('CampaignId','AdGroupId','AdGroupName','Id', 'Criteria', 'CriteriaType','Impressions', 'Clicks', 'Cost', 'UrlCustomParameters')
            ->getAsObj();

In the above methods, the mandatory ones are from and select, (*40)

Notice that in during method you have to pass the dates as a string like YearMonthDay, (*41)

You may also want to set more than one condition. Use Where clause as many times as you need like follows:, (*42)

$obj = $ads->report()
            ->from('CRITERIA_PERFORMANCE_REPORT')
            ->where('Clicks > 10')
            ->where('Cost > 10')
            ->where('Impressions > 1')
            ->select('CampaignId','AdGroupId','AdGroupName','Id', 'Criteria', 'CriteriaType','Impressions', 'Clicks', 'Cost', 'UrlCustomParameters')
            ->getAsObj();

Available Operators:, (*43)

= | != | > | >= | < | <= | IN | NOT_IN | STARTS_WITH | STARTS_WITH_IGNORE_CASE |
CONTAINS | CONTAINS_IGNORE_CASE | DOES_NOT_CONTAIN | DOES_NOT_CONTAIN_IGNORE_CASE |
CONTAINS_ANY | CONTAINS_NONE | CONTAINS_ALL

Want to exclude any field? Just do it like follows:, (*44)

$obj = $ads->report()
           ->from('SHOPPING_PERFORMANCE_REPORT')
           ->select(\Edujugon\GoogleAds\Facades\GoogleAds::fields()->of('SHOPPING_PERFORMANCE_REPORT')->asList())
           ->except('SearchImpressionShare','ExternalConversionSource','Ctr','Cost','Date','Week','Year','AverageCpc','Clicks','ClickType','ConversionCategoryName','ConversionTrackerId','ConversionTypeName')
            ->getAsObj();

If want to see the retrieve items, just get so by result property of the object returned:, (*45)

$items = $obj->result;

Notice that it is a Collection. So you have all collection methods available., (*46)

If need the report in another format, just call format method before getting the report:, (*47)

$string = $ads->report()
            ->format('CSVFOREXCEL')
            ->select('CampaignId','AdGroupId','AdGroupName','Id', 'Criteria', 'CriteriaType','Impressions', 'Clicks', 'Cost', 'UrlCustomParameters')
            ->from('CRITERIA_PERFORMANCE_REPORT')
            ->getAsString();

To see the available report formats:, (*48)

$ads->report()->getFormats()

To see what fields are available for a specific report type you can do like follows:, (*49)

$fields = $ads->report()->from('CRITERIA_PERFORMANCE_REPORT')->getFields();

If want to know what report types are available, just do like follow:, (*50)

$ads->report()->getTypes();

There are 3 output formats for the report. It can be as object, as stream, as string., (*51)

getAsString();
getStream();
getAsObj();

Also you can save the report in a file:, (*52)

$saved = $ads->report()
             ->select('CampaignId','AdGroupId','AdGroupName','Id', 'Criteria', 'CriteriaType','Impressions', 'Clicks', 'Cost', 'UrlCustomParameters')
             ->from('CRITERIA_PERFORMANCE_REPORT')
             ->saveToFile($filePath)

The above code will create a file in the passed path returning true if everything was fine., (*53)

API Documentation

Full API List, (*54)

The Versions

18/05 2018

dev-master

9999999-dev

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

18/05 2018

1.5.0

1.5.0.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

18/05 2018

dev-feature/upgrade-google

dev-feature/upgrade-google

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

25/02 2018

1.4.0

1.4.0.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

25/02 2018

dev-feature/session-via-oauth

dev-feature/session-via-oauth

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

07/01 2018

1.3.0

1.3.0.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

04/11 2017

dev-dev

dev-dev

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

04/11 2017

1.2.1

1.2.1.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

04/11 2017

1.1.7

1.1.7.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

21/08 2017

1.1.6

1.1.6.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

05/07 2017

1.1.5

1.1.5.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

29/06 2017

1.1.4

1.1.4.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

20/04 2017

1.1.3

1.1.3.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

19/04 2017

1.1.2

1.1.2.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

12/04 2017

1.1.1

1.1.1.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

11/04 2017

1.1.0

1.1.0.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

11/04 2017

1.0.9

1.0.9.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

10/04 2017

1.0.8

1.0.8.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

04/04 2017

1.0.7

1.0.7.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

30/03 2017

1.0.6

1.0.6.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

23/03 2017

1.0.5

1.0.5.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

11/03 2017

1.0.4

1.0.4.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

05/03 2017

1.0.3

1.0.3.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

04/03 2017

1.0.2

1.0.2.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

01/03 2017

1.0.1

1.0.1.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads

22/02 2017

1.0.0

1.0.0.0

Google Adwords API for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Eduardo Marcos

laravel google adwords ads