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 - mystudytime/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...相关推荐

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

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

  2. Android开发总结:个人开发者如何通过广告平台赚钱

    个人开发者(独立开发者),就是自己一个人完成项目的所有工作,从构思.实现.测试,到市场发布等包括应用素材设计等全部工作.乍看上去好像很辛苦,当然,如果是开发一些企业应用的话确实会吐血,但是对付一些小应 ...

  3. WP广告平台的前世今生

    1. 引言 从2011年9月开始投身到WP,经历了WP中国区市场的开放,国内广告平台的出现,7.5不能升级到8的尴尬. 本文主要分享下WP广告平台使用经验.就目前的数据看,面对国内的软件,想赚钱的话广 ...

  4. java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...

    写在前面:设计模式源于生活,而又高于生活! 为什么要使用设计模式重构代码 使用设计模式可以重构整体架构代码.提高代码复用性.扩展性.减少代码冗余问题. Java高级工程师装逼的技能! 什么是策略模式 ...

  5. 广告平台和广告主是如何互相“窃取”数据的(下)

    渗透往往都是互相的,当敌人出现在你的狙击射程内的时候,切记,你也在敌人射程内. 前文说到广告平台通过各种方式获取到广告主后端相关数据,主要用于优化广告模型,使得用户的定向和预估能力更加精准. 那么,反 ...

  6. 广告平台和广告主是如何互相“窃取”数据的(上)

    互联网广告经过多年的发展,在广告的生态中,广告平台和广告主的关系就像战争时敌我双方的关系,互相博弈,相互渗透. 渗透的本质主要是获取信息. 拥有大的用户基数的公司通常都会自建广告平台,这点无一例外,比 ...

  7. 全球与中国聚合支付平台市场深度研究分析报告

    [报告篇幅]:112 [报告图表数]:142 [报告出版时间]:2022年3月 报告摘要 本文研究全球及中国市场聚合支付平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中 ...

  8. 【钉钉-场景化能力包】CRM系统促进广告平台高效获客

    客户痛点 很多企业在各大营销平台(比如百度.微信.QQ.今日头条.抖音等),投放了大量的营销广告,获取到的客户/线索数据很分散,需要人工手动导入到金智CRM系统中,再由指定的负责人进行二次手动分配,效 ...

  9. 【深度首发】2018年的小目标是“1个亿”,试玩互动能否成为全球首个游戏试玩移动广告平台的独角兽?丨Xtecher 封面

    试玩互动(Inplayable)作为全球首家专注游戏试玩移动广告的营销平台,主攻全球移动游戏变现和推广.试玩互动的终极目标是要帮全球的游戏开发者提升其广告的变现收益,做为游戏广告创新的引领者.规则的制 ...

最新文章

  1. C与CUDA混合编程的配置问题
  2. IOS7使用原生API进行二维码和条形码的扫描
  3. tomcat的三种部署方式
  4. nat 网卡间数据包转发_nat端口转发示例
  5. Android官方开发文档Training系列课程中文版:创建自定义View之View的创建
  6. 全国网络教育统考计算机应用基础题目精选,全国网络教育统考计算机应用基础题目精选解析.doc...
  7. MFC中的几种播放声音的方法
  8. 适合 Python 入门的 8 款强大工具,赶紧收藏一波!
  9. 5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴...
  10. ASCII控制字符在vi和notepadd++中的表示法
  11. BOM,DOM, JS,JQ
  12. 升流式水解酸化反应器设计计算_《HJ 2047-2015 水解酸化反应器污水处理工程技术规范》.pdf...
  13. 【SQL基础】SQL查询语句实例
  14. 深度linux使用入门教程,Linux初级使用指南
  15. sql基础语句(联表查询)
  16. 62、Window11+Clion+MinGW32+Rapidjson构造labelme的标注文件和解析标注文件
  17. 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome会被hao123劫持怎么办?解决方案...
  18. 5G+工业互联网发展探讨
  19. 其实真正的互联网公司是很少的很少
  20. pytorch中的contiguous

热门文章

  1. 用ajax+jquery+json+css3+html5实现登录、注册、以及主页面的增删改查
  2. Linux的快速使用_jdk安装_tomcat安装_mysql安装-尚学堂~百战程序员学习笔记
  3. 老板喜欢提拔什么样的员工
  4. 【22.05.14】native thread exiting without having called DetachCurrentThread
  5. Unity3D 实现本地排行榜功能
  6. 各类好文与摘抄的经典
  7. 免费配音软件有哪些?推荐两款好用的配音软件
  8. 微信小程序实现时间预约功能
  9. oracle ocp认证指南,OCP认证考试指南(三):创建Oracle数据库
  10. JVM 执行引擎的作用及工作过程