广告 / lumen
亚马逊广告API扩展
Requires
- php: ^7.1.3
- laravel/lumen-framework: >=5.5
This package is not auto-updated.
Last update: 2024-09-21 12:17:06 UTC
README
概述
官方 亚马逊广告API PHP客户端库。
此存储库已被弃用,将不再接收更新。
要求
PHP >= 5.3.0
文档
API参考
访问请求
入门指南
教程
注册沙箱配置文件 - 本教程将向您展示如何使用cURL在沙箱中注册配置文件。
使用cURL生成并下载报告 - 在进行此教程之前,您需要完成沙箱中的配置文件注册。
沙箱自助服务
如果您想在沙箱中测试API,您需要为想要测试的区域注册一个配置文件。您可以调用registerProfile
API来进行此操作。在调用此操作之前,请确保在sandbox
模式下实例化客户端,否则它会失败。
US, CA, UK, DE, FR, ES, IT, IN, CN, JP
$client->registerProfile(array("countryCode" => "IT"));
{ "registerProfileId": "5cf1aca5-4ab8-4489-8c33-013d1f85c586JP", "status": "IN_PROGRESS", "statusDetails": "Registration workflow has been started" }
快速入门
实例化客户端
如果您没有刷新令牌,可以传入
accessToken
。
<?php
namespace AmazonAdvertisingApi;
require_once "AmazonAdvertisingApi/Client.php";
$config = array(
"clientId" => "CLIENT_ID",
"clientSecret" => "CLIENT_SECRET",
"refreshToken" => "REFRESH_TOKEN",
"region" => "na",
"sandbox" => false,
);
$client = new Client($config);
刷新访问令牌
您可以使用以下方法在访问令牌过期时刷新它。新的访问令牌将在请求响应中。此方法会为您设置它,因此它主要是为了参考,如果您需要的话。
$request = $client->doRefreshToken();
获取配置文件列表
$request = $client->listProfiles();
[{ "profileId":1234567890, "countryCode":"US", "currencyCode":"USD", "dailyBudget":10.00, "timezone":"America/Los_Angeles", "accountInfo":{ "marketplaceStringId":"ABC123", "sellerStringId":"DEF456" }]
设置配置文件ID
$client->profileId = "1234567890";
一旦您设置了配置文件ID,您就可以开始进行API调用了。
示例API调用
- 配置文件
- 活动
- 广告组
- 可出价关键词
- 否定关键词
- 活动否定关键词
- 产品广告
- 快照
- 报告
- 出价建议
- 关键词建议
getProfile
通过ID检索单个配置文件。
$client->getProfile("1234567890");
{ "profileId": 1234567890, "countryCode": "US", "currencyCode": "USD", "dailyBudget": 3.99, "timezone": "America/Los_Angeles", "accountInfo": { "marketplaceStringId": "ABC123", "sellerStringId": "DEF456" } }
updateProfiles
更新一个或多个配置文件。广告商使用其
profileIds
进行识别。
$client->updateProfiles(
array(
array(
"profileId" => $client->profileId,
"dailyBudget" => 3.99),
array(
"profileId" => 11223344,
"dailyBudget" => 6.00)));
[ { "code": "SUCCESS", "profileId": 1234567890 }, { "code": "NOT_FOUND", "description": "Profile with id 11223344 was not found for this advertiser.", "profileId": 0 } ]
listCampaigns
检索满足可选条件的活动列表。
$client->listCampaigns(array("stateFilter" => "enabled"));
[ { "campaignId": 59836775211065, "name": "CampaignOne", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 15.0, "startDate": "20160330", "state": "enabled" }, { "campaignId": 254238342004647, "name": "CampaignTwo", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 5.0, "startDate": "20160510", "state": "enabled" } ]
getCampaign
通过ID检索活动。注意,此调用返回最小集的活动字段,但比
getCampaignEx
更高效。
$client->getCampaign(1234567890);
{ "campaignId": 1234567890, "name": "CampaignOne", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 15.0, "startDate": "20160330", "state": "enabled" }
createCampaigns
创建一个或多个活动。成功创建的活动将被分配唯一的
campaignId
。
$client->createCampaigns(
array(
array("name" => "My Campaign One",
"campaignType" => "sponsoredProducts",
"targetingType" => "manual",
"state" => "enabled",
"dailyBudget" => 5.00,
"startDate" => date("Ymd")),
array("name" => "My Campaign Two",
"campaignType" => "sponsoredProducts",
"targetingType" => "manual",
"state" => "enabled",
"dailyBudget" => 15.00,
"startDate" => date("Ymd"))));
[ { "code": "SUCCESS", "campaignId": 173284463890123 }, { "code": "SUCCESS", "campaignId": 27074907785456 } ]
updateCampaigns
更新一个或多个活动。活动通过其
campaignId
进行识别。
$client->updateCampaigns(
array(
array("campaignId" => 173284463890123,
"name" => "Update Campaign One",
"state" => "enabled",
"dailyBudget" => 10.99),
array("campaignId" => 27074907785456,
"name" => "Update Campaign Two",
"state" => "enabled",
"dailyBudget" => 99.99)));
[ { "code": "SUCCESS", "campaignId": 173284463890123 }, { "code": "SUCCESS", "campaignId": 27074907785456 } ]
archiveCampaign
将活动状态设置为存档。此相同操作可以通过更新执行,但包含在此处以保持完整性。
$client->archiveCampaign(1234567890);
{ "code": "SUCCESS", "campaignId": 1234567890 }
listAdGroups
检索满足可选条件的广告组列表。
$client->listAdGroups(array("stateFilter" => "enabled"));
[ { "adGroupId": 262960563101486, "name": "AdGroup One", "campaignId": 181483024866689, "defaultBid": 1.0, "state": "enabled" }, { "adGroupId": 52169162825843, "name": "AdGroup Two", "campaignId": 250040549047739, "defaultBid": 2.0, "state": "enabled" } ]
getAdGroup
通过ID检索广告组。注意,此调用返回最小集的广告组字段,但比
getAdGroupEx
更高效。
$client->getAdGroup(262960563101486);
{ "adGroupId": 262960563101486, "name": "AdGroup One", "campaignId": 181483024866689, "defaultBid": 1.0, "state": "enabled" }
createAdGroups
创建一个或多个广告组。成功创建的广告组将被分配唯一的
adGroupId
。
$client->createAdGroups(
array(
array(
"campaignId" => 250040549047739,
"name" => "New AdGroup One",
"state" => "enabled",
"defaultBid" => 2.0),
array(
"campaignId" => 59836775211065,
"name" => "New AdGroup Two",
"state" => "enabled",
"defaultBid" => 5.0)));
[ { "code": "SUCCESS", "adGroupId": 117483076163518 }, { "code": "SUCCESS", "adGroupId": 123431426718271 } ]
updateAdGroups
更新一个或多个广告组。广告组通过其
adGroupId
进行识别。
$client->updateAdGroups(
array(
array(
"adGroupId" => 117483076163518,
"state" => "enabled",
"defaultBid" => 20.0),
array(
"adGroupId" => 123431426718271,
"state" => "enabled",
"defaultBid" => 15.0)));
[ { "code": "SUCCESS", "adGroupId": 117483076163518 }, { "code": "SUCCESS", "adGroupId": 123431426718271 } ]
archiveAdGroup
将广告组状态设置为存档。此相同操作可以通过更新执行,但包含在此处以保持完整性。
$client->archiveAdGroup(117483076163518);
{ "code": "SUCCESS", "adGroupId": 117483076163518 }
listBiddableKeywords
检索满足可选条件的关键词列表。
$client->listBiddableKeywords(array("stateFilter" => "enabled"));
[ { "keywordId": 174140697976855, "adGroupId": 52169162825843, "campaignId": 250040549047739, "keywordText": "KeywordOne", "matchType": "exact", "state": "enabled" }, { "keywordId": 118195812188994, "adGroupId": 52169162825843, "campaignId": 250040549047739, "keywordText": "KeywordTwo", "matchType": "exact", "state": "enabled" } ]
getBiddableKeyword
通过ID检索关键词。注意,此调用返回最小集的关键词字段,但比getBiddableKeywordEx更高效。
$client->getBiddableKeyword(174140697976855);
{ "keywordId": 174140697976855, "adGroupId": 52169162825843, "campaignId": 250040549047739, "keywordText": "KeywordOne", "matchType": "exact", "state": "enabled" }
createBiddableKeywords
创建一个或多个关键词。成功创建的关键词将被分配唯一的
keywordId
。
$client->createBiddableKeywords(
array(
array(
"campaignId" => 250040549047739,
"adGroupId" => 52169162825843,
"keywordText" => "AnotherKeyword",
"matchType" => "exact",
"state" => "enabled"),
array(
"campaignId" => 250040549047739,
"adGroupId" => 52169162825843,
"keywordText" => "YetAnotherKeyword",
"matchType" => "exact",
"state" => "enabled")));
[ { "code": "SUCCESS", "keywordId": 112210768353976 }, { "code": "SUCCESS", "keywordId": 249490346605943 } ]
updateBiddableKeywords
更新一个或多个关键词。关键词通过其
keywordId
进行识别。
$client->updateBiddableKeywords(
array(
array(
"keywordId" => 112210768353976,
"bid" => 100.0,
"state" => "archived"),
array(
"keywordId" => 249490346605943,
"bid" => 50.0,
"state" => "archived")));
[ { "code": "SUCCESS", "keywordId": 112210768353976 }, { "code": "SUCCESS", "keywordId": 249490346605943 } ]
archiveBiddableKeyword
将关键词状态设置为存档。此相同操作可以通过更新执行,但包含在此处以保持完整性。
$client->archiveBiddableKeyword(112210768353976);
{ "code": "200", "requestId": "0TR95PJD6Z16FFCZDXD0" }
listNegativeKeywords
检索满足可选条件的否定关键词列表。
$client->listNegativeKeywords(array("stateFilter" => "enabled"));
[ { "keywordId": 281218602770639, "adGroupId": 52169162825843, "campaignId": 250040549047739, "keywordText": "KeywordOne", "matchType": "negativeExact", "state": "enabled" }, { "keywordId": 280875877064090, "adGroupId": 262960563101486, "campaignId": 181483024866689, "keywordText": "KeywordTwo", "matchType": "negativeExact", "state": "enabled" } ]
getNegativeKeyword
通过ID检索否定关键词。注意,此调用返回最小集的关键词字段,但比
getNegativeKeywordEx
更高效。
$client->getNegativeKeyword(281218602770639);
{ "keywordId": 281218602770639, "adGroupId": 52169162825843, "campaignId": 250040549047739, "keywordText": "KeywordOne", "matchType": "negativeExact", "state": "enabled" }
createNegativeKeywords
创建一个或多个否定关键词。成功创建的关键词将被分配唯一的keywordIds。
$client->createNegativeKeywords(
array(
array(
"campaignId" => 250040549047739,
"adGroupId" => 52169162825843,
"keywordText" => "AnotherKeyword",
"matchType" => "negativeExact",
"state" => "enabled"),
array(
"campaignId" => 181483024866689,
"adGroupId" => 262960563101486,
"keywordText" => "YetAnotherKeyword",
"matchType" => "negativeExact",
"state" => "enabled")));
[ { "code": "SUCCESS", "keywordId": 61857817062026 }, { "code": "SUCCESS", "keywordId": 147623067066967 } ]
updateNegativeKeywords
更新一个或多个否定关键词。关键词通过其
keywordId
进行识别。
$client->updateNegativeKeywords(
array(
array(
"keywordId" => 61857817062026,
"state" => "enabled",
"bid" => 15.0),
array(
"keywordId" => 61857817062026,
"state" => "enabled",
"bid" => 20.0)));
[ { "code": "SUCCESS", "keywordId": 61857817062026 }, { "code": "INVALID_ARGUMENT", "description": "Entity with id 61857817062026 already specified in this update operation." } ]
archiveNegativeKeyword
将否定关键词状态设置为存档。此相同操作可以通过更新状态执行,但包含在此处以保持完整性。
$client->archiveNegativeKeyword(61857817062026);
{ "code": "SUCCESS", "keywordId": 61857817062026 }
listCampaignNegativeKeywords
检索满足可选条件的否定活动关键词列表。
$client->listCampaignNegativeKeywords(array("matchTypeFilter" => "negativeExact"));
[ { "keywordId": 131747786239884, "adGroupId": null, "campaignId": 181483024866689, "keywordText": "Negative Keyword", "matchType": "negativeExact", "state": "enabled" }, { "keywordId": 197201372210821, "adGroupId": null, "campaignId": 181483024866689, "keywordText": "My Negative Keyword", "matchType": "negativeExact", "state": "enabled" } ]
getCampaignNegativeKeyword
通过ID检索活动否定关键词。注意,此调用返回最小集的关键词字段,但比
getCampaignNegativeKeywordEx
更高效。
$client->getCampaignNegativeKeyword(197201372210821);
{ "keywordId": 197201372210821, "adGroupId": null, "campaignId": 181483024866689, "keywordText": "My Negative Keyword", "matchType": "negativeExact", "state": "enabled" }
createCampaignNegativeKeywords
创建一个或多个活动否定关键词。成功创建的关键词将被分配唯一的
keywordId
。
$client->createCampaignNegativeKeywords(
array(
array(
"campaignId" => 181483024866689,
"keywordText" => "Negative Keyword One",
"matchType" => "negativeExact",
"state" => "enabled"),
array(
"campaignId" => 181483024866689,
"keywordText" => "Negative Keyword Two",
"matchType" => "negativeExact",
"state" => "enabled")));
[ { "code": "SUCCESS", "keywordId": 196797670902082 }, { "code": "SUCCESS", "keywordId": 186203479904657 } ]
updateCampaignNegativeKeywords
更新一个或多个活动否定关键词。关键词通过其
keywordId
进行识别。
活动否定关键词当前只能被删除。
removeCampaignNegativeKeyword
将活动否定关键词状态设置为已删除。此相同操作可以通过更新状态执行,但包含在此处以保持完整性。
$client->removeCampaignNegativeKeyword(186203479904657);
{ "code": "SUCCESS", "keywordId": 186203479904657 }
listProductAds
检索满足可选条件的商品广告列表。
$client->listProductAds(array("stateFilter" => "enabled"));
[ { "adId": 247309761200483, "adGroupId": 262960563101486, "campaignId": 181483024866689, "sku": "TEST001", "state": "enabled" } ]
getProductAd
通过ID检索商品广告。注意,此调用返回最小集的商品广告字段,但比
getProductAdEx
更高效。
$client->getProductAd(247309761200483);
{ "adId": 247309761200483, "adGroupId": 262960563101486, "campaignId": 181483024866689, "sku": "TEST001", "state": "enabled" }
createProductAds
创建一个或多个商品广告。成功创建的商品广告将被分配唯一的
adId
。
$client->createProductAds(
array(
array(
"campaignId" => 181483024866689,
"adGroupId" => 262960563101486,
"sku" => "TEST002",
"state" => "enabled"),
array(
"campaignId" => 181483024866689,
"adGroupId" => 262960563101486,
"sku" => "TEST003",
"state" => "enabled")));
[ { "code": "SUCCESS", "adId": 239870616623537 }, { "code": "SUCCESS", "adId": 191456410590622 } ]
updateProductAds
更新一个或多个商品广告。商品广告通过其
adId
进行识别。
$client->updateProductAds(
array(
array(
"adId" => 239870616623537,
"state" => "archived"),
array(
"adId" => 191456410590622,
"state" => "archived")));
[ { "code": "SUCCESS", "adId": 239870616623537 }, { "code": "SUCCESS", "adId": 191456410590622 } ]
archiveProductAd
将商品广告状态设置为存档。此相同操作可以通过更新执行,但包含在此处以保持完整性。
$client->archiveProductAd(239870616623537);
{ "code": "SUCCESS", "adId": 239870616623537 }
requestSnapshot
请求单个类型所有实体的快照报告。
$client->requestSnapshot(
"campaigns",
array("stateFilter" => "enabled,paused,archived",
"campaignType" => "sponsoredProducts"));
{ "snapshotId": "amzn1.clicksAPI.v1.p1.573A0477.ec41773a-1659-4013-8eb9-fa18c87ef5df", "recordType": "campaign", "status": "IN_PROGRESS" }
getSnapshot
检索之前请求的报告。
$client->getSnapshot("amzn1.clicksAPI.v1.p1.573A0477.ec41773a-1659-4013-8eb9-fa18c87ef5df");
[ { "campaignId": 181483024866689, "name": "Campaign One", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 5.0, "startDate": "20160330", "state": "archived" }, { "campaignId": 59836775211065, "name": "Campaign Two", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 10.99, "startDate": "20160330", "state": "archived" }, { "campaignId": 254238342004647, "name": "Campaign Three", "campaignType": "sponsoredProducts", "targetingType": "manual", "dailyBudget": 99.99, "startDate": "20160510", "state": "enabled" } ]
requestReport
请求单个类型所有具有性能数据的实体的自定义性能报告。
$client->requestReport(
"campaigns",
array("reportDate" => "20160515",
"campaignType" => "sponsoredProducts",
"metrics" => "impressions,clicks,cost"));
{ "reportId": "amzn1.clicksAPI.v1.m1.573A0808.32908def-66a1-4ce2-8f12-780dc4ae1d43", "recordType": "campaign", "status": "IN_PROGRESS", "statusDetails": "Report is submitted" }
getReport
检索之前请求的报告。
$client->getReport("amzn1.clicksAPI.v1.m1.573A0808.32908def-66a1-4ce2-8f12-780dc4ae1d43");
沙盒将返回模拟数据。
[ { "cost": 647.75, "campaignId": 230751293360275, "clicks": 2591, "impressions": 58288 }, { "cost": 619.5, "campaignId": 52110033002744, "clicks": 2478, "impressions": 68408 }, { "cost": 151.91, "campaignId": 140739567440917, "clicks": 633, "impressions": 17343 }, { "cost": 143.46, "campaignId": 79132327246328, "clicks": 797, "impressions": 48903 } ]
getAdGroupBidRecommendations
请求指定广告组的出价建议。
$client->getAdGroupBidRecommendations(1234509876);
{ "adGroupId": 1234509876, "suggestedBid": { "rangeEnd": 2.16, "rangeStart": 0.67, "suggested": 1.67 } }
getKeywordBidRecommendations
请求指定关键词的出价建议。
$client->getKeywordBidRecommendations(85243141758914);
{ "keywordId": 85243141758914, "adGroupId": 252673310548066, "suggestedBid": { "rangeEnd": 3.18, "rangeStart": 0.35, "suggested": 2.97 } }
bulkGetKeywordBidRecommendations
请求最多100个关键词的出价建议。
$client->bulkGetKeywordBidRecommendations(
242783265349805,
array(
array("keyword" => "testKeywordOne",
"matchType" => "exact"),
array("keyword" => "testKeywordTwo",
"matchType" => "exact")
));
{ "adGroupId": 242783265349805, "recommendations": [ { "code": "SUCCESS", "keyword": "testKeywordOne", "matchType": "exact", "suggestedBid": { "rangeEnd": 2.67, "rangeStart": 0.38, "suggested": 2.07 } }, { "code": "SUCCESS", "keyword": "testKeywordTwo", "matchType": "exact", "suggestedBid": { "rangeEnd": 3.19, "rangeStart": 0.79, "suggested": 3.03 } } ] }
getAdGroupKeywordSuggestions
请求指定广告组的关键词建议。
$client->getAdGroupKeywordSuggestions(
array("adGroupId" => 1234567890,
"maxNumSuggestions" => 2,
"adStateFilter" => "enabled"));
{ "adGroupId": 1234567890, "suggestedKeywords": [ { "keywordText": "keyword PRODUCT_AD_A 1", "matchType": "broad" }, { "keywordText": "keyword PRODUCT_AD_B 1", "matchType": "broad" } ] }
getAdGroupKeywordSuggestionsEx
请求指定广告组的关键词建议,扩展版本。增加了返回关键词的出价建议的能力。
$client->getAdGroupKeywordSuggestionsEx(
array("adGroupId" => 1234567890,
"maxNumSuggestions" => 2,
"suggestBids" => "yes",
"adStateFilter" => "enabled"));
[ { "adGroupId": 1234567890, "campaignId": 0987654321, "keywordText": "keyword TESTASINXX 1", "matchType": "broad", "state": "enabled", "bid": 1.84 }, { "adGroupId": 1234567890, "campaignId": 0987654321, "keywordText": "keyword TESTASINXX 2", "matchType": "broad", "state": "enabled", "bid": 1.07 } ]
getAsinKeywordSuggestions
请求指定asin的关键词建议。
$client->getAsinKeywordSuggestions(
array("asin" => "B00IJSNPM0",
"maxNumSuggestions" => 2));
[ { "keywordText": "keyword B00IJSNPM0 1", "matchType": "broad" }, { "keywordText": "keyword B00IJSNPM0 2", "matchType": "broad" } ]
bulkGetAsinKeywordSuggestions
请求一组asin的关键词建议。
$client->bulkGetAsinKeywordSuggestions(
array("asins" => array(
"B00IJSNPM0",
"B00IJSO1NM"),
"maxNumSuggestions" => 2));
[ { "keywordText": "keyword B00IJSNPM0 1", "matchType": "broad" }, { "keywordText": "keyword B00IJSO1NM 1", "matchType": "broad" } ]