Synopsis

概述

easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk。

环境需求

easy-amazon-advertising 的安装非常简单,因为它是一个标准的 Composer 包,这意味着任何满足下列安装条件的 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

入门

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方法在访问令牌到期时刷新访问令牌。新的访问令牌将在请求的响应中。

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

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

listProfiles

$app->profiles->listProfiles();

[[

"profileId":1234567890,

"countryCode":"US",

"currencyCode":"USD",

"dailyBudget":10.00,

"timezone":"America/Los_Angeles",

"accountInfo":{

"marketplaceStringId":"ABC123",

"sellerStringId":"DEF456"

]]

设置profileId

$app->client->profileId = 1234567890;

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

入门

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

$app->client->profileId = 1234567890;

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

requestReport

getReport

downloadReportData

SponsoredDisplay 赞助展示业务

campaigns

getCampaign

getCampaignEx

createCampaigns

updateCampaigns

archiveCampaign

listCampaigns

listCampaignsEx

groups

getAdGroup

getAdGroupEx

createAdGroups

updateAdGroups

archiveAdGroup

listAdGroups

listAdGroupsEx

product_ads

getProductAd

getProductAdEx

createProductAds

updateProductAds

archiveProductAd

listProductAds

listProductAdsEx

report

requestReport

getReport

downloadReportData

SponsoredProducts 赞助商品业务

bidding

getAdGroupBidRecommendations

getKeywordBidRecommendations

createKeywordBidRecommendations

getBidRecommendations

campaigns

getCampaign

getCampaignEx

createCampaigns

updateCampaigns

archiveCampaign

listCampaigns

listCampaignsEx

groups

getAdGroup

getAdGroupEx

createAdGroups

updateAdGroups

archiveAdGroup

listAdGroups

listAdGroupsEx

keywords

product_ads

getProductAd

getProductAdEx

createProductAds

updateProductAds

archiveProductAd

listProductAds

listProductAdsEx

product_ads

getProductAd

getProductAdEx

createProductAds

updateProductAds

archiveProductAd

listProductAds

listProductAdsEx

product_targeting

getTargetingClause

listTargetingClauses

getTargetingClauseEx

listTargetingClausesEx

createTargetingClauses

updateTargetingClauses

createTargetRecommendations

getTargetingCategories

getRefinementsForCategory

getBrandRecommendations

report

requestReport

getReport

downloadReportData

格子广告+php,GitHub - liujijun95/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...相关推荐

  1. php 聚合广告平台,GitHub - mystudytime/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...

    Synopsis 概述 easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk. 环境需求 easy-amazon-advertising 的安装非常简单,因为它是一 ...

  2. 基于Amazon KVS 与 Amazon Rekognition Streaming Video Events实时视频检测方案

    前言 1.1 视频识别场景介绍 在居家安防监控领域,基于实时视频的移动检测,发现监控环境中人.宠物.包裹等的出现,并且能实时地将检测结果通知给身处任何地方的用户是其重要的应用场景之一.但在这一场景的技 ...

  3. 基于 Amazon Amplify 构建自己的首个 iOS 应用程序(二)

    目录 三.添加身份验证 3.1 创建身份验证服务 3.2 部署身份验证服务 3.3 向项目添加 Amplify 身份验证库 3.4 在运行时配置 Amplify 身份验证库 3.5 在运行时触发身份验 ...

  4. 基于 Amazon 和西门子工业边缘的云边协同方案

    解决方案概述 ▌什么是边缘计算? 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起,产生更快的网络服务响应,满足行 ...

  5. 将 Amazon EC2 到 Amazon S3 的数据传输推向100Gbps线速

    点击上方入口立即[自由构建 探索无限] 一起共赴年度科技盛宴! 前言 天下武功唯快不破,在很多应用场景中,如机器学习.数据分析.高性能计算等,应用需要高速加载大量数据后进行本地计算. 试想一下,您在亚 ...

  6. 通过Amazon SageMaker与Amazon Step Functions实现机器学习的CI/CD 方案

    在传统的机器学习工作流程当中,经常会面临两个问题: (1)数据迭代迅速,需要定期对模型进行重新训练,每次训练完成后,都需要重新部署模型,如何实现训练与部署过程的的自动化,从而提升工作效率: (2)算法 ...

  7. Amazon EKS基于GitLab的CICD实践二 基础架构和应用架构创建篇

    关于GitLab的CI/CD的实践具体分成如下的内容,其中(一)和(二)已经在上面一篇关于GitLab的CICD的实践一 GitLab的部署和配置篇中介绍完成了. 全系列目录: (一)部署的架构 (二 ...

  8. Amazon EKS基于GitLab的CICD实践一 GitLab的部署和配置篇

    在容器化,微服务,基础设施即代码(IaC)以及DevOps的理念不断被大家所接受和理解,摆在大家面前的是如何在实际的工作中应用和实践这些理念. 本文将讨论基于GitLab来实现针对公有云基础设施(亚马 ...

  9. 基于 Amazon CodeCommit 可规模化的敏捷开发实践

    GitHub和 GitLab 已经成为众多开发者非常熟悉的代码协作平台,大量企业正在通过它们参与开源项目或实施企业内部项目协作.目前被开发者广为熟知的 GitHub Pull Request协作流程是 ...

最新文章

  1. oracle离线文档查dbms_小白小记-logminer工具分析离线归档日志
  2. flume案例-网络数据采集-Flume安装
  3. php写浏览记录,php如何浏览历史记录
  4. python pandas series加速原理_python pandas中对Series数据进行轴向连接的实例
  5. 【C#/WPF】Image图片的Transform变换:平移、缩放、旋转
  6. 图书馆管理系统的开发
  7. 【linux命令】tar命令
  8. 在线抓娃娃 html,萤石云开放平台提供在线抓娃娃解决方案
  9. python夜曲编程_夜曲编程——我毕业了!!!
  10. 2020年计算机设计大赛 人流量预测 (国赛三等奖)
  11. 一个双向转换火星文的玩具
  12. 【您有新的未分配天赋点】网络流:从懵逼到完全懵逼
  13. 微信公众平台版面设计需要服务器,微信公众平台丨排版的基本原则
  14. 谈谈工作 - 神州数码篇
  15. Win7减肥攻略及小技巧
  16. 安全合规--40--基于欧美法律法规的企业隐私合规体系建设经验总结(四)
  17. 人工智能离不开它——贝叶斯公式的前世今生
  18. java实现环形数组
  19. 开关电源IC的选择要求
  20. 因15亿被同龄人抛弃」?扎克伯格身价4000亿了解一下

热门文章

  1. 双击计算机图标无法打开,我的电脑图标打不开_我的电脑双击打不开了
  2. 领导最不赏识这5类下属
  3. 使用ADB 查看模拟器得日志,unity得日志 以及保存
  4. 人生若只如初见,当时只道是寻常
  5. 如果你爱或者恨一个人[转]
  6. 教师节,给老师们写一个随机点名的网页
  7. 最近在装修房子,展示下最近成果
  8. Kong Dashboard系列【三】添加插件----rate-limiting
  9. android 8.0设置横幅通知,安卓微信8.0.3正式更新:新增公告横幅提醒等8大更新!...
  10. 爱心~~~红色的~~~小爱心组成的大爱心~~~