php 聚合广告平台,GitHub - mystudytime/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
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 广告信息组件...相关推荐
- 格子广告+php,GitHub - liujijun95/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
Synopsis 概述 easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk. 环境需求 easy-amazon-advertising 的安装非常简单,因为它是一 ...
- Android开发总结:个人开发者如何通过广告平台赚钱
个人开发者(独立开发者),就是自己一个人完成项目的所有工作,从构思.实现.测试,到市场发布等包括应用素材设计等全部工作.乍看上去好像很辛苦,当然,如果是开发一些企业应用的话确实会吐血,但是对付一些小应 ...
- WP广告平台的前世今生
1. 引言 从2011年9月开始投身到WP,经历了WP中国区市场的开放,国内广告平台的出现,7.5不能升级到8的尴尬. 本文主要分享下WP广告平台使用经验.就目前的数据看,面对国内的软件,想赚钱的话广 ...
- java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...
写在前面:设计模式源于生活,而又高于生活! 为什么要使用设计模式重构代码 使用设计模式可以重构整体架构代码.提高代码复用性.扩展性.减少代码冗余问题. Java高级工程师装逼的技能! 什么是策略模式 ...
- 广告平台和广告主是如何互相“窃取”数据的(下)
渗透往往都是互相的,当敌人出现在你的狙击射程内的时候,切记,你也在敌人射程内. 前文说到广告平台通过各种方式获取到广告主后端相关数据,主要用于优化广告模型,使得用户的定向和预估能力更加精准. 那么,反 ...
- 广告平台和广告主是如何互相“窃取”数据的(上)
互联网广告经过多年的发展,在广告的生态中,广告平台和广告主的关系就像战争时敌我双方的关系,互相博弈,相互渗透. 渗透的本质主要是获取信息. 拥有大的用户基数的公司通常都会自建广告平台,这点无一例外,比 ...
- 全球与中国聚合支付平台市场深度研究分析报告
[报告篇幅]:112 [报告图表数]:142 [报告出版时间]:2022年3月 报告摘要 本文研究全球及中国市场聚合支付平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中 ...
- 【钉钉-场景化能力包】CRM系统促进广告平台高效获客
客户痛点 很多企业在各大营销平台(比如百度.微信.QQ.今日头条.抖音等),投放了大量的营销广告,获取到的客户/线索数据很分散,需要人工手动导入到金智CRM系统中,再由指定的负责人进行二次手动分配,效 ...
- 【深度首发】2018年的小目标是“1个亿”,试玩互动能否成为全球首个游戏试玩移动广告平台的独角兽?丨Xtecher 封面
试玩互动(Inplayable)作为全球首家专注游戏试玩移动广告的营销平台,主攻全球移动游戏变现和推广.试玩互动的终极目标是要帮全球的游戏开发者提升其广告的变现收益,做为游戏广告创新的引领者.规则的制 ...
最新文章
- C与CUDA混合编程的配置问题
- IOS7使用原生API进行二维码和条形码的扫描
- tomcat的三种部署方式
- nat 网卡间数据包转发_nat端口转发示例
- Android官方开发文档Training系列课程中文版:创建自定义View之View的创建
- 全国网络教育统考计算机应用基础题目精选,全国网络教育统考计算机应用基础题目精选解析.doc...
- MFC中的几种播放声音的方法
- 适合 Python 入门的 8 款强大工具,赶紧收藏一波!
- 5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴...
- ASCII控制字符在vi和notepadd++中的表示法
- BOM,DOM, JS,JQ
- 升流式水解酸化反应器设计计算_《HJ 2047-2015 水解酸化反应器污水处理工程技术规范》.pdf...
- 【SQL基础】SQL查询语句实例
- 深度linux使用入门教程,Linux初级使用指南
- sql基础语句(联表查询)
- 62、Window11+Clion+MinGW32+Rapidjson构造labelme的标注文件和解析标注文件
- 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome会被hao123劫持怎么办?解决方案...
- 5G+工业互联网发展探讨
- 其实真正的互联网公司是很少的很少
- pytorch中的contiguous
热门文章
- 用ajax+jquery+json+css3+html5实现登录、注册、以及主页面的增删改查
- Linux的快速使用_jdk安装_tomcat安装_mysql安装-尚学堂~百战程序员学习笔记
- 老板喜欢提拔什么样的员工
- 【22.05.14】native thread exiting without having called DetachCurrentThread
- Unity3D 实现本地排行榜功能
- 各类好文与摘抄的经典
- 免费配音软件有哪些?推荐两款好用的配音软件
- 微信小程序实现时间预约功能
- oracle ocp认证指南,OCP认证考试指南(三):创建Oracle数据库
- JVM 执行引擎的作用及工作过程