如何通过Ad Library API或其他方式获取Instagram用户名/ID
官方的/ads_archive端点确实不会直接返回Instagram账户的ID或用户名——这部分数据不在公开归档广告的字段范围内,哪怕你请求了所有Schema字段也拿不到。网页版广告库能显示是因为它调用的是内部私有API,包含了未对外公开的字段集合。
给你两个可行的官方API替代方案:
通过Facebook Page ID关联查询Instagram账户
归档广告返回的page_id对应的Facebook主页,通常和Instagram账户是绑定状态。你可以调用Graph API的/{page_id}/instagram_accounts端点,获取关联的Instagram账户信息,其中就包含username和id字段。
注意:这个请求需要你的access_token具备pages_show_list或pages_read_engagement权限,且目标Facebook主页允许关联查询。从广告创意内容中提取(非可靠)
部分广告的ad_creative_link_titles、ad_creative_link_descriptions或者ad_snapshot_url里可能包含Instagram用户名(比如链接指向Instagram帖子时,URL里会带有@xxx格式的用户名)。你可以通过字符串匹配的方式提取这部分信息,但不是所有广告都会包含,只能作为补充手段。
如果以上两种方法都无法满足需求,目前官方公开API没有其他途径获取该数据,只能接受这个限制——毕竟私有API的爬取确实受代理和反爬限制,风险也高。
内容的提问来源于stack exchange,提问作者PATAPOsha

