1. Go to this page and download the library: Download lai3221/amazon-ads-api-v1 library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lai3221 / amazon-ads-api-v1 example snippets
use Lai3221\AmazonAdsApiV1\Generated\Model\AdProduct;
use Lai3221\AmazonAdsApiV1\Generated\Model\CampaignCreate;
use Lai3221\AmazonAdsApiV1\Generated\Model\CreateCampaignRequest;
use Lai3221\AmazonAdsApiV1\Generated\Model\CreateState;
use Lai3221\AmazonAdsApiV1\Laravel\Facades\AmazonAds;
use Lai3221\AmazonAdsApiV1\RequestContext;
$campaign = new CampaignCreate([
'adProduct' => AdProduct::SPONSORED_PRODUCTS,
'name' => 'Summer launch',
'state' => CreateState::PAUSED,
]);
$request = new CreateCampaignRequest([
'campaigns' => [$campaign],
]);
$response = AmazonAds::campaigns()->createCampaign(
request: $request,
context: new RequestContext(profileId: '1234567890'),
);
$result = $response->body;
$requestId = $response->requestId;
use Lai3221\AmazonAdsApiV1\AmazonAdsClient;
final class SyncCampaigns
{
public function __construct(private AmazonAdsClient $amazonAds)
{
}
public function __invoke(): void
{
$response = $this->amazonAds->campaigns()->queryCampaign([
'maxResults' => 100,
]);
// $response->body is a generated CampaignSuccessResponse model.
}
}
use GuzzleHttp\Client;
use Lai3221\AmazonAdsApiV1\Auth\LoginWithAmazonOAuth;
$oauth = new LoginWithAmazonOAuth(
http: new Client(),
clientId: config('amazon-ads.client_id'),
clientSecret: config('amazon-ads.client_secret'),
redirectUri: route('amazon-ads.callback'),
);
$authorizationUrl = $oauth->authorizationUrl(
scopes: ['advertising::campaign_management'],
state: csrf_token(),
);
$tokens = $oauth->exchangeAuthorizationCode($request->string('code'));
$refreshToken = $tokens->refreshToken;
$request = (new CreateCampaignRequest())
->setCampaigns([$campaign]);
$request->validate();
$payload = $request->toArray();
use Lai3221\AmazonAdsApiV1\Generated\Model\CreateCreative;
$creative = new CreateCreative([
'productCreative' => [
// Fields defined by the selected productCreative variant.
],
]);
use GuzzleHttp\Client;
use Lai3221\AmazonAdsApiV1\AmazonAdsClient;
use Lai3221\AmazonAdsApiV1\Auth\LoginWithAmazonTokenProvider;
use Lai3221\AmazonAdsApiV1\Credentials;
use Lai3221\AmazonAdsApiV1\Http\HttpTransport;
use Lai3221\AmazonAdsApiV1\Region;
use Lai3221\AmazonAdsApiV1\SdkConfiguration;
$http = new Client();
$credentials = new Credentials($clientId, $clientSecret, $refreshToken);
$tokens = new LoginWithAmazonTokenProvider($http, $credentials);
$transport = new HttpTransport(
http: $http,
tokens: $tokens,
credentials: $credentials,
configuration: new SdkConfiguration(region: Region::EUROPE),
);
$amazonAds = new AmazonAdsClient($transport);