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 easyAmazonAdvFactory; $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 easyAmazonAdvFactory; $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 easyAmazonAdvFactory; $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

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。