PHPackages                             wjn/easy-amazon-advertising - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. wjn/easy-amazon-advertising

ActiveLibrary[API Development](/categories/api)

wjn/easy-amazon-advertising
===========================

00PHP

Since Jul 18Pushed 1y agoCompare

[ Source](https://github.com/wangjianeng/easy-amazon-advertising)[ Packagist](https://packagist.org/packages/wjn/easy-amazon-advertising)[ RSS](/packages/wjn-easy-amazon-advertising/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

### Synopsis

[](#synopsis)

概述
--

[](#概述)

easy-amazon-advertising 是一个开源的非官方的[亚马逊广告](https://advertising.amazon.com/API/docs/en-us/)业务sdk。

环境需求
----

[](#环境需求)

easy-amazon-advertising 的安装非常简单，因为它是一个标准的 [Composer](https://getcomposer.org/) 包，这意味着任何满足下列安装条件的 PHP 项目支持 Composer 都可以使用它。

```
php: >=7.2.0
guzzlehttp/guzzle: 6.4.*
pimple/pimple: ~3.0

```

安装
--

[](#安装)

使用composer安装

```
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
-----------

[](#baseservice)

### 入门

[](#入门)

```
use easyAmazonAdv\Factory;

$config = [
    'clientId'      => 'amzn1.application-oa2-client.xxx',
    'clientSecret'  => '3b758af8d13ee02355764e4e864fxxxx',
    'refreshToken'   => 'Atzr|IwEBIL5GyUh_H2fdRJnFOk7mmpluKnm7WWUW0kf0tBxAXFMG5VHyiZuIhrspq6hZRHzPM03RMX7v64KrhXaO9xCtylMUQPcN0LolQhH8PNff76Ve5pS6PO9jtNG9kW1K9YtV1WcJDN3KnGpHjk0dUBtbbrn5uh8EGDDVUR_gpqaHXqqdvZ7vuUXTNzstH-tybiAzspzIPxPf7Ans-uyqPNyNTIIM61vA66fvPkH3-c33iLCzrgRtg_jhzWrZuH4K6INBfR8CjKHcK5oNun4DRTiOnCinvUdbHQPwAeI9m581FzUk2Hp4g5KaXO60A6-4me5EMuGSagWfUvTs1MkB1DgPAs_Do3v0TKKN1L6Vab4YgDu6k-bb5pgor_H_LQ24kbfc2Jdyq9BJkSVAAIP5Hh4y3i1qAh18g94Qq_yLWQOxu8ySawTUSDWOkM3_AH5qFS_Yaegfpc96nZE6_eDnycnnheFnXj14-ghaNsROG4LO2RE4n4xnpj9vx9o5aOFVGhf148Cz_VZjiZCg2t_V0Mru7uYRkwz1OUOxxxxxxxxxxx',
    'region'       => 'NA',
];

$app    = Factory::BaseService($config);

```

$app 在所有相关BaseService的文档都是指 Factory::BaseService 得到的实例，就不在每个页面单独写了。

### RefreshToken

[](#refreshtoken)

您可以使用RefreshToken方法在访问令牌到期时刷新访问令牌。新的访问令牌将在请求的响应中。

```
use easyAmazonAdv\Factory;

$config = [
    'clientId'      => 'amzn1.application-oa2-client.xxx',
    'clientSecret'  => '3b758af8d13ee02355764e4e864fxxxx',
    'refreshToken'   => 'Atzr|IwEBIL5GyUh_H2fdRJnFOk7mmpluKnm7WWUW0kf0tBxAXFMG5VHyiZuIhrspq6hZRHzPM03RMX7v64KrhXaO9xCtylMUQPcN0LolQhH8PNff76Ve5pS6PO9jtNG9kW1K9YtV1WcJDN3KnGpHjk0dUBtbbrn5uh8EGDDVUR_gpqaHXqqdvZ7vuUXTNzstH-tybiAzspzIPxPf7Ans-uyqPNyNTIIM61vA66fvPkH3-c33iLCzrgRtg_jhzWrZuH4K6INBfR8CjKHcK5oNun4DRTiOnCinvUdbHQPwAeI9m581FzUk2Hp4g5KaXO60A6-4me5EMuGSagWfUvTs1MkB1DgPAs_Do3v0TKKN1L6Vab4YgDu6k-bb5pgor_H_LQ24kbfc2Jdyq9BJkSVAAIP5Hh4y3i1qAh18g94Qq_yLWQOxu8ySawTUSDWOkM3_AH5qFS_Yaegfpc96nZE6_eDnycnnheFnXj14-ghaNsROG4LO2RE4n4xnpj9vx9o5aOFVGhf148Cz_VZjiZCg2t_V0Mru7uYRkwz1OUOxxxxxxxxxxx',
    'region'       => 'NA',
];

$app    = Factory::BaseService($config);
$result = $app->access_token->RefreshToken();
```

### Profiles

[](#profiles)

Marketplaces 市场通过位置为各个商户分配了特定的配置属性信息。包含countryCode, currencyCode, timezone等。profileID在调用api接口时在header（Amazon-Advertising-API-Scope）中传入。

#### listProfiles

[](#listprofiles)

```
$app->profiles->listProfiles();

[[
  "profileId":1234567890,
  "countryCode":"US",
  "currencyCode":"USD",
  "dailyBudget":10.00,
  "timezone":"America/Los_Angeles",
  "accountInfo":{
  "marketplaceStringId":"ABC123",
  "sellerStringId":"DEF456"
]]
```

#### 设置profileId

[](#设置profileid)

```
$app->client->profileId = 1234567890;

```

### Portfolios 广告组合

[](#portfolios-广告组合)

- listPortfolios 广告组合列表

```
$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 广告组合列表扩展字段

```
$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 广告组合详情

```
$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 广告组合扩展字段

```
$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 创建广告组合（批量）

```
$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 更新广告组合（批量）

```
$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
----------------

[](#sponsoreddisplay)

### 入门

[](#入门-1)

```
use easyAmazonAdv\Factory;

$config = [
    'clientId'      => 'amzn1.application-oa2-client.xxx',
    'clientSecret'  => '3b758af8d13ee02355764e4e864fxxxx',
    'refreshToken'   => 'Atzr|IwEBIL5GyUh_H2fdRJnFOk7mmpluKnm7WWUW0kf0tBxAXFMG5VHyiZuIhrspq6hZRHzPM03RMX7v64KrhXaO9xCtylMUQPcN0LolQhH8PNff76Ve5pS6PO9jtNG9kW1K9YtV1WcJDN3KnGpHjk0dUBtbbrn5uh8EGDDVUR_gpqaHXqqdvZ7vuUXTNzstH-tybiAzspzIPxPf7Ans-uyqPNyNTIIM61vA66fvPkH3-c33iLCzrgRtg_jhzWrZuH4K6INBfR8CjKHcK5oNun4DRTiOnCinvUdbHQPwAeI9m581FzUk2Hp4g5KaXO60A6-4me5EMuGSagWfUvTs1MkB1DgPAs_Do3v0TKKN1L6Vab4YgDu6k-bb5pgor_H_LQ24kbfc2Jdyq9BJkSVAAIP5Hh4y3i1qAh18g94Qq_yLWQOxu8ySawTUSDWOkM3_AH5qFS_Yaegfpc96nZE6_eDnycnnheFnXj14-ghaNsROG4LO2RE4n4xnpj9vx9o5aOFVGhf148Cz_VZjiZCg2t_V0Mru7uYRkwz1OUOxxxxxxxxxxx',
    'region'       => 'NA',
];

$app    = Factory::SponsoredDisplay($config);

```

### 设置profileId

[](#设置profileid-1)

```
$app->client->profileId = 1234567890;

```

### Campaigns 广告活动

[](#campaigns--广告活动)

- getCampaign 广告活动详情

```
$result = $app->campaigns->listCampaigns(1234567890);

[
  "campaignId": 1234567890,
  "name": "CampaignOne",
  "tactic": "remarketing",
  "budgetType": "daily",
  "budget": "3.00",
  "startDate": "20190101",
  "endDate": null,
  "state": "enabled"
]

```

- getCampaignEx 广告活动详情（支持扩展字段展示）

```
$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 创建广告活动

```

$params = [
    [
        "name" => "My Campaign One",
        "tactic" => "remarketing",
        "budgetType": "daily",
        "budget": 3.00,
        "startDate": "20190101",
        "endDate": null,
        "state": "enabled"
    ]
];

$result = $app->campaigns->createCampaigns(params);

[
  [
    "code": "SUCCESS",
    "campaignId": 173284463890123
  ]
]

```

- updateCampaigns

```

$params = [
    [
        "campaignId" => 173284463890123,
        "name" => "Update Campaign One",
        "state" => "enabled",
        "budget" => 10.99
    ]
];

$result = $app->campaigns->updateCampaigns(params);

[
  [
    "code": "SUCCESS",
    "campaignId": 173284463890123
  ]
]

```

- archiveCampaign 归档广告活动

```
$result = $app->campaigns->archiveCampaign(173284463890123);

[
  "code": "SUCCESS",
  "campaignId": 1234567890
]

```

- listCampaigns

```
$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

```
$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
  ]
]

```

#### report

[](#report)

- requestReport
- getReport
- downloadReportData

### SponsoredDisplay 赞助展示业务

[](#sponsoreddisplay-赞助展示业务)

#### campaigns

[](#campaigns)

- getCampaign
- getCampaignEx
- createCampaigns
- updateCampaigns
- archiveCampaign
- listCampaigns
- listCampaignsEx

#### groups

[](#groups)

- getAdGroup
- getAdGroupEx
- createAdGroups
- updateAdGroups
- archiveAdGroup
- listAdGroups
- listAdGroupsEx

### product\_ads

[](#product_ads)

- getProductAd
- getProductAdEx
- createProductAds
- updateProductAds
- archiveProductAd
- listProductAds
- listProductAdsEx

#### report

[](#report-1)

- requestReport
- getReport
- downloadReportData

### SponsoredProducts 赞助商品业务

[](#sponsoredproducts--赞助商品业务)

#### bidding

[](#bidding)

- getAdGroupBidRecommendations
- getKeywordBidRecommendations
- createKeywordBidRecommendations
- getBidRecommendations

#### campaigns

[](#campaigns-1)

- getCampaign
- getCampaignEx
- createCampaigns
- updateCampaigns
- archiveCampaign
- listCampaigns
- listCampaignsEx

#### groups

[](#groups-1)

- getAdGroup
- getAdGroupEx
- createAdGroups
- updateAdGroups
- archiveAdGroup
- listAdGroups
- listAdGroupsEx

#### keywords

[](#keywords)

#### product\_ads

[](#product_ads-1)

- getProductAd
- getProductAdEx
- createProductAds
- updateProductAds
- archiveProductAd
- listProductAds
- listProductAdsEx

#### product\_ads

[](#product_ads-2)

- getProductAd
- getProductAdEx
- createProductAds
- updateProductAds
- archiveProductAd
- listProductAds
- listProductAdsEx

#### product\_targeting

[](#product_targeting)

- getTargetingClause
- listTargetingClauses
- getTargetingClauseEx
- listTargetingClausesEx
- createTargetingClauses
- updateTargetingClauses
- createTargetRecommendations
- getTargetingCategories
- getRefinementsForCategory
- getBrandRecommendations

#### report

[](#report-2)

- requestReport
- getReport
- downloadReportData

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity18

Early-stage or recently created project

 Bus Factor1

Top contributor holds 82.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/34f378c2d0e916c5b0835c9a4bf0457fb6b620a29427d4ecc4a911a3c3ed5de3?d=identicon)[wangjianeng](/maintainers/wangjianeng)

---

Top Contributors

[![baispace](https://avatars.githubusercontent.com/u/34995516?v=4)](https://github.com/baispace "baispace (23 commits)")[![wangjianeng](https://avatars.githubusercontent.com/u/25607744?v=4)](https://github.com/wangjianeng "wangjianeng (5 commits)")

### Embed Badge

![Health badge](/badges/wjn-easy-amazon-advertising/health.svg)

```
[![Health](https://phpackages.com/badges/wjn-easy-amazon-advertising/health.svg)](https://phpackages.com/packages/wjn-easy-amazon-advertising)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M271](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[microsoft/microsoft-graph

The Microsoft Graph SDK for PHP

65723.5M96](/packages/microsoft-microsoft-graph)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
