Browse Source

add SP get_targets_bid_recommendations

huangyifan 1 year ago
parent
commit
9345efa3cd
1 changed files with 33 additions and 0 deletions
  1. 33 0
      sync_amz_data/public/amz_ad_client.py

+ 33 - 0
sync_amz_data/public/amz_ad_client.py

@@ -259,6 +259,39 @@ class SPClient(BaseClient):
                 "keywords": keywords}
         return self._request(url_path, method="POST", body=body)
 
+    def get_targets_bid_recommendations(self,campaignId:list=None,
+                                             adGroupId:list=None,
+                                             asins:list=None,
+                                             bid:float=None,
+                                             keyword:str=None,
+                                             userSelectedKeyword:bool=False,
+                                             matchType:Literal["BROAD","EXACT","PHRASE"]="BROAD",
+                                             recommendationType:Literal['KEYWORDS_FOR_ASINS','KEYWORDS_FOR_ADGROUP']="KEYWORDS_FOR_ASINS",
+                                             sortDimension:Literal["CLICKS","CONVERSIONS","DEFAULT"]="DEFAULT",
+                                             locale:Literal["ar_EG" ,"de_DE", "en_AE", "en_AU", "en_CA", "en_GB", "en_IN", "en_SA", "en_SG", "en_US",
+                                                           "es_ES", "es_MX", "fr_FR", "it_IT", "ja_JP", "nl_NL", "pl_PL", "pt_BR", "sv_SE", "tr_TR", "zh_CN"]="en_US"):
+        url_path = "/sp/targets/keywords/recommendations"
+        body = {
+                "recommendationType": recommendationType,
+                "targets": [
+                {
+                "matchType": matchType,
+                "keyword": keyword,
+                "bid": bid,
+                "userSelectedKeyword": userSelectedKeyword
+                }
+                ],
+                "maxRecommendations": "200",
+                "sortDimension": sortDimension,
+                "locale": locale
+                }
+        if adGroupId is not None:
+            body["campaignId"]=campaignId
+            body["adGroupId"]= adGroupId
+        else:
+            body['asins'] = asins
+        return self._request(url_path, method="POST", body=body)
+
     def get_v3_report(self,
                       groupby:list,
                       columns:list,