PAYATHON 2026

如何通过 LinkedIn API 获取每条 share 每天的曝光和点击数据?

数据小许

结论

organizationalEntityShareStatistics 不支持按时间区间查询指定 share 的统计数据。即使同时传入 shares 和 timeIntervals,也无法直接获取每条帖子每天的曝光和点击数据。拥有权限也无法改变这一接口限制。LinkedIn 官方文档

两种查询方式需要区分:

  • 指定 shares:获取指定帖子的累计统计。
  • 使用 timeIntervals 按 DAY 查询,不指定 shares:获取组织层面的每日汇总。

组织每日汇总不能拆分为各条帖子的每日贡献。官方文档说明,指定 ugcPosts 的查询也不支持时间区间统计,换用该参数无法解决问题。统计接口说明

为什么不同日期会出现相同数值?

你的请求同时指定了帖子和日期范围,但这个组合无法实现所需的统计维度。如果重复获取逐帖累计值,再为它们标记不同日期,就可能出现示例中的结果。

问题中没有提供原始 JSON 响应,也没有提供生成日期行的代码,因此无法确定重复值在哪一步产生,更不能断言服务端一定忽略了 timeIntervals。

排查时,先保存原始响应,检查 elements 中的 share、timeRange 和 totalShareStatistics,再检查报表生成过程。不要仅凭外层循环中的日期,将累计值解释为当日值。

给出的代码只有一次请求,代码中的时间范围也没有变化。如果其他代码通过日期循环重复调用这个固定 URL,每次请求使用的仍是相同的日期范围。

如何分别查询逐帖累计值和组织每日值?

下面沿用问题中的 access_token、org_id、share_id 和 proxies。202601 是原请求使用的版本;执行时需确认应用仍可使用该版本。示例仅展示查询方式,没有实际调用你的账户。

from urllib.parse import quote
import requests

headers = {
    "Authorization": f"Bearer {access_token}",
    "LinkedIn-Version": "202601",
    "X-Restli-Protocol-Version": "2.0.0",
}

base_url = (
    "https://api.linkedin.com/rest/"
    "organizationalEntityShareStatistics"
)
organization = quote(f"urn:li:organization:{org_id}", safe="")
share = quote(f"urn:li:share:{share_id}", safe="")
query = f"q=organizationalEntity&organizationalEntity={organization}"


def fetch(url):
    response = requests.get(
        url,
        headers=headers,
        proxies=proxies,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()


# 指定帖子的累计统计:不传 timeIntervals。
lifetime_data = fetch(
    f"{base_url}?{query}&shares=List({share})"
)
for item in lifetime_data.get("elements", []):
    print(item.get("share"), item.get("totalShareStatistics"))

# 组织每日汇总:不传 shares。
start_ms = 1767225600000
end_ms = 1769817600000
intervals = (
    f"(timeRange:(start:{start_ms},end:{end_ms}),"
    "timeGranularityType:DAY)"
)
daily_data = fetch(
    f"{base_url}?{query}&timeIntervals={intervals}"
)
for item in daily_data.get("elements", []):
    print(item.get("timeRange"), item.get("totalShareStatistics"))

组织每日查询应根据响应中的 timeRange 确定日期,不能自行为每个结果分配帖子 ID。上述两类查询分别对应官方文档中的逐帖累计查询和时间区间查询。官方请求示例

必须保存每条帖子的每日数据时怎么办?

如果需求允许统计“相邻采集时点之间的累计值变化”,可以从现在开始定时保存逐帖累计快照。每条记录至少包含帖子 URN、采集时间、指标名称和累计值。

对于 impressionCount、clickCount 这样的计数,可以计算:

区间增量 = 本次累计值 - 上次累计值

例如,某条帖子的两次累计曝光快照分别为 100 和 130,两次采集之间观测到的净增量就是 30。

使用这个方案时需要注意:

  • 在固定时区、固定时间采集,并保留真实采集时间。如果漏采一天,下一次差值覆盖的就是更长区间。
  • 第一次采集只能建立基线,无法恢复此前每天的数值。
  • 数据延迟或历史修正可能影响差值,应将结果标为快照增量,不能保证它等同于平台按事件日期统计的每日值。
  • 不要直接对 engagement 这类比率做差,也不要将去重人数的差值解释为当日去重人数。

如果必须获取过去的逐帖每日明细,但此前没有保存快照,这个端点无法满足需求。需要另行确认账号可用的数据导出或其他报表渠道是否提供对应粒度,无法从当前累计值反推出历史分布。

时间范围和指标还需检查什么?

原请求中的两个时间戳分别对应 UTC 的 2026-01-01 00:00:00 和 2026-01-31 00:00:00。接口的 start 包含起点,end 不包含终点,因此该区间不包含 1 月 31 日,也不是描述中的七天。官方文档还注明,该端点采用滚动 12 个月的数据窗口。时间参数与范围说明

指标名称应以响应 schema 为准:曝光对应 impressionCount,点击对应 clickCount。该端点的文档没有列出 viralImpressions,不能默认它可查询,也不能用 uniqueImpressionsCount 代替。该端点仅统计 organic 活动;涉及 sponsored 活动时,应另外查看 Ad Analytics 的指标和查询维度。指标定义与统计范围

备注:内容仅供参考。