joshyan / amazon-advertising-api-php-sdk
Amazon Advertising API 客户端库
Requires
- php: >=5.3.0
- ext-curl: *
This package is auto-updated.
Last update: 2024-09-12 10:52:45 UTC
README
这是一个从Amazon官方SDK分叉的项目。 amzn/amazon-advertising-api-php-sdk
要求
PHP >= 5.3.0
cURL >= 7.18
文档
教程
注册沙箱配置文件 - 本教程将展示如何使用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"
}
]