LinkedIn Ads Reporting API报RESOURCE_NOT_FOUND错误,求排查方案
解决LinkedIn Ad Analytics API 404 RESOURCE_NOT_FOUND错误
你的代码出现404错误,核心原因是API请求方法、端点参数格式错误,加上必填参数缺失,以下是具体修复方案:
关键问题点
- 请求方法错误:LinkedIn
adAnalytics(q=analytics)接口仅支持GET请求,你的代码使用POST请求会导致资源找不到。 - 必填参数缺失:接口要求必须指定
pivot参数(数据聚合维度,如ACCOUNT/CAMPAIGN等),当前代码未设置该参数。 - 日期范围不完整:
dateRange必须包含start和end两个日期对象,仅传起始日期会触发验证失败。 - 参数格式错误:GET请求中
facets需以字符串形式传递(多值用逗号分隔),而非数组。
修正后的代码
async function fetchAdData(access_token) { const headers = { 'Authorization': `Bearer ${access_token}`, 'Linkedin-Version': '202401', 'X-Restli-Protocol-Version': '2.0.0' }; const url = 'https://api.linkedin.com/rest/adAnalytics'; const params = { q: 'analytics', pivot: 'ACCOUNT', // 必填:根据需求选择聚合维度,如CAMPAIGN、AD_GROUP等 timeGranularity: 'ALL', dateRange: JSON.stringify({ start: { year: 2021, month: 1, day: 1 }, end: { year: 2024, month: 10, day: 1 } // 补充结束日期 }), facets: 'INDUSTRY' // 多值示例:'INDUSTRY,COMPANY_SIZE' }; let response; try { response = await axios.get(url, { headers, params }); return response.data; } catch (error) { console.error("Error details:", error.response ? error.response.data : error.message); if (error.response?.data?.errorDetails?.inputErrors) { error.response.data.errorDetails.inputErrors.forEach(err => { console.error("Input error code:", err.code); console.error("Input error path:", err.input.inputPath); }); } } }
额外验证项
- 权限检查:确保你的LinkedIn应用已申请
r_ads_reporting权限,且当前access_token已获取该权限,否则会返回权限相关错误。 - API版本兼容性:202401版本是合法的,但需确认该版本支持你使用的参数(如
pivot和facets的取值)。
内容的提问来源于stack exchange,提问作者JMPAUL Development
相关产品推荐
相关产品推荐

