easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk。
环境需求
easy-amazon-advertising 的安装非常简单,因为它是一个标准的 Composer 包,这意味着任何满足下列安装条件的 PHP 项目支持 Composer 都可以使用它。
1 |
php: >=7.2.0 |
安装
使用composer安装
1 |
composer require mystudytime/easy-amazon-advertising |
说明
亚马逊广告业务目前的划分为三种:
- Sponsored Display 推广展示广告
- Sponsored Products 商品推广广告
- Sponsored Brands 品牌推广广告
亚马逊广告的api文档也大体是如此,针对此种情况本sdk也将模块做了类似的划分。
下面是sdk广告业务模块的划分:
- SponsoredProducts
- SponsoredDisplay
- SponsoredBrands
- BaseService
特殊的 BaseService 模块包含了亚马逊广告api中未做划分的部分,包括AccessToken、Portfolios、Profiles等。
BaseService
入门
1 |
use easyAmazonAdvFactory; |
$app 在所有相关BaseService的文档都是指 Factory::BaseService 得到的实例,就不在每个页面单独写了。
RefreshToken
您可以使用RefreshToken方法在访问令牌到期时刷新访问令牌。新的访问令牌将在请求的响应中。
1 |
use easyAmazonAdvFactory; |
Profiles
Marketplaces 市场通过位置为各个商户分配了特定的配置属性信息。包含countryCode, currencyCode, timezone等。profileID在调用api接口时在header(Amazon-Advertising-API-Scope)中传入。
listProfiles
1 |
$app->profiles->listProfiles(); |
设置profileId
1 |
$app->client->profileId = 1234567890; |
Portfolios 广告组合
- listPortfolios 广告组合列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30$app->portfolios->listPortfolios(['portfolioId'=>12,'portfolioState'=>'enable']);
[
[
"portfolioId": 1234567890,
"name": "My Portfolio One",
"budget": [
"amount": 100.0,
"currencyCode": "USD",
"policy": "dateRange"
"startDate": "20181001",
"endDate": "20181229"
],
"inBudget": true,
"state": "enabled",
],
[
"portfolioId": 0123456789,
"name": "My Portfolio Two",
"budget": [
"amount": 50.0,
"currencyCode": "USD",
"policy": "dateRange",
"startDate": "20181001",
"endDate": "20181229"
],
"inBudget": true,
"state": "enabled",
]
] - listPortfoliosEx 广告组合列表扩展字段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37$app->portfolios->listPortfoliosEx(['portfolioId'=>12,'portfolioState'=>'enable']);
[
[
"portfolioId": 1234567890,
"name": "My Portfolio One",
"budget": [
"amount": 100.0,
"currencyCode": "USD",
"policy": "dateRange"
"startDate": "20181001",
"endDate": "20181229"
],
"inBudget": true,
"state": "enabled",
"creationDate": 1526510030,
"lastUpdatedDate": 1526510030,
"servingStatus": "PENDING_START_DATE"
],
[
"portfolioId": 0123456789,
"name": "My Portfolio Two",
"budget": [
"amount": 50.0,
"currencyCode": "USD",
"policy": "dateRange",
"startDate": "20181001",
"endDate": "20181229"
],
"inBudget": true,
"state": "enabled",
"creationDate": 1526510030,
"lastUpdatedDate": 1526510030,
"servingStatus": "PENDING_START_DATE"
]
] - getPortfolio 广告组合详情
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15$app->portfolios->getPortfolio(1234567890);
{
"portfolioId": 1234567890,
"name": "My Portfolio One",
"budget": [
"amount": 100.0,
"currencyCode": "USD",
"policy": "dateRange"
"startDate": "20181231"
"endDate": "null"
],
"inBudget": true,
"state": "enabled"
] - getPortfolioEx 广告组合扩展字段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17$app->portfolios->getPortfolioEx(1234567890);
[
"portfolioId": 1234567890,
"name": "My Portfolio One",
"budget": [
"amount": 100.0,
"policy": "dateRange"
"startDate": "20190131"
"endDate": "20190331"
],
"inBudget": true,
"state": "enabled",
"creationDate": 1526510030,
"lastUpdatedDate": 1526510030,
"servingStatus": "PENDING_START_DATE"
] - createPortfolios 创建广告组合(批量)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40$params = [
[
'name' => 'My Portfolios name',
],
[
'name' => 'My Portfolios two',
'budget'=>[
'amount' => 1.0,
'policy' => 'dateRange',
'startDate' => '20191220',
'endDate' => '20191221',
],
'state'=>'enable'
],
[
'name' => 'My Portfolios three',
'budget'=>[
'amount' => 1.0,
'policy' => 'monthlyRecurring',
'endDate' => '20191221',
],
'state'=>'enable'
],
];
$result = $app->portfolios->createPortfolios($params);
[
[
"code": "SUCCESS",
"portfolioId": 1234567890
],
[
"code": "SUCCESS",
"portfolioId": 0123456789
],
[
"code": "SUCCESS",
"portfolioId": 1234567891
]
] - updatePortfolios 更新广告组合(批量)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43$params = [
[
'portfolioId'=>1234567890,
'name' => 'My Portfolios name',
],
[
'portfolioId'=>0123456789,
'name' => 'My Portfolios two',
'budget'=>[
'amount' => 1.0,
'policy' => 'dateRange',
'startDate' => '20191220',
'endDate' => '20191221',
],
'state'=>'enable'
],
[
'portfolioId'=>1234567891,
'name' => 'My Portfolios three',
'budget'=>[
'amount' => 1.0,
'policy' => 'monthlyRecurring',
'endDate' => '20191221',
],
'state'=>'enable'
],
];
$result = $app->portfolios->updatePortfolios($params);
[
[
"code": "SUCCESS",
"portfolioId": 1234567890
],
[
"code": "SUCCESS",
"portfolioId": 0123456789
],
[
"code": "SUCCESS",
"portfolioId": 1234567891
]
]
SponsoredDisplay
入门
1 |
use easyAmazonAdvFactory; |
设置profileId
1 |
$app->client->profileId = 1234567890; |
Campaigns 广告活动
- getCampaign 广告活动详情
1
2
3
4
5
6
7
8
9
10
11
12$result = $app->campaigns->listCampaigns(1234567890);
[
"campaignId": 1234567890,
"name": "CampaignOne",
"tactic": "remarketing",
"budgetType": "daily",
"budget": "3.00",
"startDate": "20190101",
"endDate": null,
"state": "enabled"
] - getCampaignEx 广告活动详情(支持扩展字段展示)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15$result = $app->campaigns->listCampaigns(1234567890);
[
"campaignId": 1234567890,
"name": "CampaignOne",
"tactic": "remarketing",
"budgetType": "daily",
"budget": 0,
"startDate": "20190101",
"endDate": "20190102",
"state": "enabled",
"servingStatus": "ADVERTISER_STATUS_ENABLED",
"creationDate": 0,
"lastUpdatedDate": 0
] - createCampaigns 创建广告活动
1 |
|
-
updateCampaigns
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$params = [
[
"campaignId" => 173284463890123,
"name" => "Update Campaign One",
"state" => "enabled",
"budget" => 10.99
]
];
$result = $app->campaigns->updateCampaigns(params);
[
[
"code": "SUCCESS",
"campaignId": 173284463890123
]
] -
archiveCampaign 归档广告活动
1
2
3
4
5
6$result = $app->campaigns->archiveCampaign(173284463890123);
[
"code": "SUCCESS",
"campaignId": 1234567890
] -
listCampaigns
1
2
3
4
5
6
7
8
9
10
11
12
13
14$result = = $app->campaigns->listCampaigns(["stateFilter" => "enabled"]);
[
[
"campaignId": 1234567890,
"name": "Campaign one",
"tactic": "remarketing",
"budgetType": "daily",
"budget": "3.00",
"startDate": "20190101",
"endDate": null,
"state": "enabled"
]
] -
listCampaignsEx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17$result = = $app->campaigns->listCampaignsEx(["stateFilter" => "enabled"]);
[
[
"campaignId": 1234567890,
"name": "Campaign one",
"tactic": "remarketing",
"budgetType": "daily",
"budget": 0,
"startDate": "20190101",
"endDate": "20190102",
"state": "enabled",
"servingStatus": "ADVERTISER_STATUS_ENABLED",
"creationDate": 0,
"lastUpdatedDate": 0
]
]