Join the Discord – For support, updates and collaboration.
For Google Ads, Bing Ads and Facebook Ads API.
This is a wrapper for connecting each ad source into your Laravel application. This SDK provides a cleaner and a more consistent integration across many ad platforms than the official SDKs, and ultimately making it a lot easier to implement in your projects. You shouldn't have to learn how to communicate and understand the responses to every API.
Use Composer to install package.
Run composer require tmarois/laravel-ads-sdk
1) Run php artisan vendor:publish --tag=laravel-ads-sdk
2) Copy this to your .env
and update with your credentials (if you dont have credentials, continue to the next step).
ADWORDS_DEVELOPER_TOKEN=""
ADWORDS_OAUTH2_CLIENT_ID=""
ADWORDS_OAUTH2_CLIENT_SECRET=""
ADWORDS_OAUTH2_REFRESH_TOKEN=""
BING_DEVELOPER_TOKEN=""
BING_CLIENT_ID=""
BING_CLIENT_SECRET=""
BING_REFRESH_TOKEN=""
FB_APP_ID=""
FB_APP_SECRET=""
FB_ACCESS_TOKEN=""
FB_REFRESH_TOKEN=""
You will need your developer token, client id and client secret to continue. Learn More
Follow the steps in the command line to generate a refresh token.
Run php artisan laravelads:token:generate --service=GoogleAds
Having Trouble? Learn More
You will need your developer token, client id and client secret to continue. Learn More
Follow the steps in the command line to generate a refresh token.
Run php artisan laravelads:token:generate --service=BingAds
Having Trouble? Learn More
You will need your app id, app secret and access token. Learn More
NOTE: It appears for facebook, you do not need to generate refresh token, once you have your access token, the api should connect as long as you've given yourself the correct access, permissions, scopes to marketing api and ads account.
Accessing GoogleAds
, BingAds
or FacebookAds
use the following:
// The namespace to the Facade for laravel Ads SDK
use LaravelAds;
// calling Google Ads and including the Account ID
$googleAds = LaravelAds::googleAds()->with('ACCOUNT_ID');
// calling Bing Ads and including the Account ID
$bingAds = LaravelAds::bingAds()->with('ACCOUNT_ID');
// calling Facebook Ads and including the Account ID
$facebookAds = LaravelAds::facebookAds()->with('ACCOUNT_ID');
This uses the googleads-php-lib SDK for the Google Ads API
NOTICE – You will need to Request Google Ads API Access.
Need help with authentication?
This uses the BingAds-PHP-SDK for the Bing Ads API
NOTICE – You will need to Request Bing Ads API Access.
Need help with authentication or sandbox mode?
This uses the facebook-php-business-sdk for Facebook Marketing API
We realize that we can't add every endpoint so in order to help improve your developer experience, we have made the Service classes Macroable. Macros are a way to add a new custom method to the classes. This way you are able to utilize the existing auth and all of the other goodies that come with this package.
Typically, you should call this method from the boot method of one of your application's service providers, such as the App\Providers\AppServiceProvider
service provider:
public function boot()
{
LaravelAds\Services\BingAds\Service::macro('addUetTags', function($tags){
$serviceCall = $this->call(ServiceClientType::CampaignManagementVersion13);
try {
$request = new AddUetTagsRequest();
$request->UetTags = $tags;
$serverResponse = $serviceCall->GetService()->AddUetTags($request);
return $serverResponse;
} catch (\Exception $e) {
print $serviceCall->GetService()->__getLastRequest()."\n";
print $serviceCall->GetService()->__getLastResponse()."\n";
}
});
LaravelAds\Services\GoogleAds\Service::macro('dd', function(){
dd($this);
});
}
Then in your controller or job you would call:
$bingAds = LaravelAds::bingAds()->addUetTags([
[
'Name' => 'Extensible!',
'Description' => 'No PR Needed!',
]
]);
$bingAds = LaravelAds::googleAds()->dd();
We are actively looking for new contributors.
If you want to contribute, Join the Discord channel and/or submit pull requests.
Laravel Ads SDK (This Package) is open-sourced software licensed under the MIT license. USE AT YOUR OWN RISK. Laravel Ads SDK is a tool to help you manage your accounts, it does not guarantee features listed here will work as described. If you do find a bug, please feel free to submit an issue. This package is not affiliated with Laravel LLC or the Laravel Framework team.