cpcstrategy/bing-ads-sdk-php
A PHP SDK for the Microsoft Advertising (Bing Ads) API, offering generated client classes for campaigns, ad groups, ads, keywords, reporting, and bulk operations so PHP applications can integrate with Bing Ads programmatically.
This package is a set of PHP classes that wrap the Bing Ads SOAP API (v10 as of this release). It is not a Laravel-native package — there is no service provider, facade, or config file. You integrate it manually.
composer require it. Otherwise copy the class files into your project (e.g. app/Services/BingAds/) and ensure they are autoloaded. The v3.0.0 release splits every class into its own file (via classyfile), so PSR-4 autoloading is now practical.config/services.php and .env. Never hard-code them in the example scripts.examples/ directory first – The release moved all runnable samples there. Open KeywordsAds.php for the simplest end-to-end flow (authenticate → get keywords → add/update). GeographicalLocations.php is useful for validating location targeting before building campaigns.config('services.bingads.*'), and run it in a sandbox account. Use php artisan tinker to instantiate the main client class and call a single read operation (e.g. GetCampaignsByAccountId) to confirm connectivity.App\Services\BingAds\BingAdsClient that instantiates the SDK classes, injects credentials from config, and exposes methods like getCampaigns(), updateKeywords(). This keeps the procedural example code out of your controllers and jobs.BulkDownloadUpload.php and BudgetOpportunities.php can be slow. Wrap them in queued jobs (ShouldQueue) and store the resulting file paths or statuses in the database. Never run bulk uploads synchronously inside a web request.KeywordsAds.php, NegativeKeywords.php, Targets.php) for reporting and dashboards. Use write examples (AdExtensions.php, ShoppingCampaigns.php) inside scheduled commands that sync local data to Bing Ads.echo debugging, and hard-coded account IDs. Extract the API calls, then replace logging with Laravel’s Log facade and error handling with exceptions.composer.json and keep a changelog of field changes (e.g. new ad extension types) so you can update your service layer deliberately.require statements or ensure your autoloader maps the new structure. Run composer dump-autoload after upgrading.examples/. Check your git diff or deployment scripts for stale copies.trace option or a custom logger). Log the raw XML to a dedicated channel. Most failures are authentication (expired OAuth token, wrong developer token) or malformed SOAP headers, not business logic.Campaign, AdGroup). Alias them on import (use BingAds\Campaign as BingCampaign;) or keep them isolated in a service namespace.BulkDownloadUpload.php writes temporary files. Ensure storage/app/bingads exists and is writable, and clean up old files with a scheduled command to avoid disk bloat.How can I help you explore Laravel packages today?