如何通过Facebook Ads API获取可广告定位城市完整列表及参数
使用Facebook Ads API获取广告定位城市完整列表的方法
一、解决API请求空结果的问题
你之前用search?location_types=["city"]&transport=cors&type=adgeolocation返回空结果,核心原因是城市属于次级地理单元,必须搭配上级地理范围参数才能查询,而国家作为顶级单元可直接查询。
正确的请求参数与示例
要获取指定国家的城市列表,必须添加country参数(传入ISO 3166-1 alpha-2国家代码),同时携带有效的access_token(需具备广告账户相关权限)。示例请求如下:
search?type=adgeolocation&location_types=%5B%22city%22%5D&country=CN&access_token=YOUR_ACCESS_TOKEN&limit=1000
注:%5B%22city%22%5D是["city"]的URL编码形式,在Graph API Explorer中直接输入["city"],工具会自动完成编码。
关键参数说明
type=adgeolocation:固定值,指定搜索广告定位专用的地理位置数据location_types=["city"]:明确返回类型为城市,支持同时指定多个类型(如["city", "region"])country:必填参数(当location_types为city/region时),传入国家代码缩小查询范围access_token:必须携带拥有广告账户权限的令牌,否则会出现权限错误或空结果limit:可选,控制每页返回的最大数量,最大值为1000,可减少分页次数after:分页参数,当返回结果包含paging.next时,提取该参数的值传入下一次请求,直到data字段为空,即可获取完整列表
二、获取全量城市列表的思路
Facebook官方没有提供现成的全量地理位置CSV文件,你可以通过以下方式自行生成:
- 先调用API获取所有国家列表(即你之前成功的请求:
search?type=adgeolocation&location_types=["country"]&access_token=YOUR_ACCESS_TOKEN) - 遍历每个国家的代码,依次请求该国家下的城市列表
- 将所有返回的城市数据整理后导出为CSV文件
三、常见注意事项
- 若需要获取特定地区(如省份)下的城市,可额外添加
region_id参数,传入对应地区的Facebook地理ID - 确保你的access_token具备
ads_management或business_management权限,否则无法获取完整的定位数据 - 频繁批量请求可能触发API速率限制,建议添加请求间隔或使用批量请求接口优化
内容的提问来源于stack exchange,提问作者Binu Mathew
相关产品推荐
相关产品推荐

