Snapchat Marketing API列表值请求仅返回首个值问题求助
Snapchat Marketing API 数据获取参数问题解决方法
问题原因
当使用requests发送GET请求时,若params中的值为列表,requests默认仅会将列表的第一个元素作为参数值传递给API,这就导致Snapchat API只接收到report_dimension的第一个值country和fields的第一个值impressions。而Snapchat Marketing API要求多维度、多指标参数以逗号分隔的字符串形式传递,而非Python列表。
修复后的代码
def post_snapchat_campaign_data(adAccount_id, access_token, granularity, breakdown, report_dimension, start_time, end_time, fields): url = "https://adsapi.snapchat.com/v1/adaccounts/{}/stats".format(adAccount_id) # 将列表参数转为逗号分隔的字符串 params = { "granularity": granularity, "breakdown": breakdown, "report_dimension": ",".join(report_dimension), "start_time": start_time, "end_time": end_time, "fields": ",".join(fields) } headers = {'Authorization': access_token} response = requests.request("GET", url, headers=headers, params=params) return response def get_snapchat_campaign_data(adAccount_id, access_token): response = post_snapchat_campaign_data( adAccount_id=adAccount_id, access_token=access_token, granularity="DAY", breakdown="campaign", report_dimension=["country", "os"], start_time="2022-02-02", end_time="2022-02-03", fields=["impressions", "spend", "swipes", "total_installs"] ) return response.json()
关键修改点
- 用
",".join(report_dimension)将维度列表转为"country,os"格式的字符串 - 用
",".join(fields)将指标列表转为"impressions,spend,swipes,total_installs"格式的字符串
修改后API就能正确接收所有请求的维度和指标参数,返回完整的洞察数据。
内容的提问来源于stack exchange,提问作者Ugur Selim Ozen
相关产品推荐
相关产品推荐

