无法获取LinkedIn API统计数据——返回500内部服务器错误
排查LinkedIn Ad Analytics接口500内部服务器错误
问题背景
已成功通过LinkedIn API获取campaign_ids列表,但调用Ad Analytics接口获取广告系列统计数据时,服务器返回:
{'message': 'Internal Server Error', 'status': 500}
核心原因及解决方法
1. 日期范围参数语法错误
你的dateRange参数存在两处致命问题:
- 缺少结束日期(
end字段),LinkedIn要求必须指定完整的起止日期范围 - 括号不配对,末尾少了一个闭合括号
修正后参数:
'dateRange': '(start:(year:2020,month:1,day:1),end:(year:2024,month:12,day:31))'
2. Rest.li参数格式不符合规范
LinkedIn Rest.li接口对列表类型参数的格式要求是直接用逗号分隔值,不需要List()包裹:
pivots参数应改为'CAMPAIGN,CREATIVE',而非'List(CAMPAIGN,CREATIVE)'campaigns参数应改为f'urn:li:sponsoredCampaign:{campaign_id}',而非f'List(urn:li:sponsoredCampaign:{campaign_id})'
3. 其他潜在问题排查
- 权限验证:确认
ACCESS_TOKEN已授予r_ads_reporting权限,这是获取广告分析数据的必要权限 - 请求频率控制:如果
campaign_ids数量较多,建议批量传入多个campaign URN(用逗号分隔),减少请求次数,避免触发服务器资源过载
修正后的完整代码示例
headers_2 = { 'Authorization': f'Bearer {ACCESS_TOKEN}', 'Linkedin-Version': '202409', 'X-Restli-Protocol-Version': '2.0.0' } base_statistics_url='https://api.linkedin.com/rest/adAnalytics' for campaign_id in campaign_ids: params = { 'q': 'statistics', 'pivots': 'CAMPAIGN,CREATIVE', 'dateRange': '(start:(year:2020,month:1,day:1),end:(year:2024,month:12,day:31))', 'timeGranularity': 'YEARLY', 'campaigns': f'urn:li:sponsoredCampaign:{campaign_id}' } ad_analytics_response = requests.get(base_statistics_url, headers=headers_2, params=params) print(ad_analytics_response.json())
内容的提问来源于stack exchange,提问作者IronMaiden
相关产品推荐
相关产品推荐

