Skip to content

竞品域名分析(/v3/dataforseo_labs/google/competitors_domain/live)

接口简介

该接口用于获取目标域名在自然搜索与付费搜索中的竞品域名概览数据:

  • 竞品域名的排名与流量指标
  • 目标域名与竞品域名在同一 SERP 中排名的交集指标
  • 基于交集计算的目标域名指标与竞品域名指标
  • 可选的点击流扩展指标(如点击流估算流量、性别分布、年龄分布)

数据更新频率: 每周更新一次。最新更新时间可通过 /v3/dataforseo_labs/status/ 查询。

请求信息

  • 方法: POST
  • 接口地址: https://api.seermartech.cn/v3/dataforseo_labs/google/competitors_domain/live

计费说明

该接口按请求计费。

  • 参考价:以响应中的 cost 字段为准
  • 如启用 include_clickstream_data=true请求费用将翻倍
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准

调用限制

  • 每分钟最多 2000 次 API 调用
  • 最多 30 个并发请求
  • POST 请求体为 UTF-8 编码的 JSON 数组,格式为:
json
[
 {
 "target": "example.com"
 }
]

请求参数

字段名类型说明
targetstring。目标网站域名,不要 https://www.。可传页面 URL,但返回结果将按该 URL 所属域名统计。
location_namestring地区名。未传 location_code 时填。location_namelocation_code 二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。示例:United Kingdom
location_codeinteger地区编码。未传 location_name 时填。location_namelocation_code 二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区编码。示例:2840
language_namestring语言名。未传 language_code 时填。language_namelanguage_code 二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用语言。示例:English
language_codestring语言代码。未传 language_name 时填。language_namelanguage_code 二选一。示例:en
item_typesarray可选。指定返回的搜索结果类型。若数组中非 organic 的类型,结果会按数组中的第一个类型排序;且只能对响应中的类型进行过滤与排序。
include_clickstream_databoolean可选。是否返回点击流指标。设为 true 后,响应中会 clickstream_etvclickstream_gender_distributionclickstream_age_distribution。默认值:false启用后费用翻倍。
filtersarray可选。结果过滤条件数组,最多支持 8 个过滤条件。多个条件之间需使用逻辑运算符 and / or。支持操作符:regexnot_regex<<=>>==<>innot_in
order_byarray可选。结果排序规则。支持 asc 升序、desc 降序。单次请求最多可设置 3 条排序规则。若 item_types含非 organic 类型,则结果按 item_types 第一个类型排序。
limitinteger可选。返回的最大域名数量。默认值:100;最大值:1000
offsetinteger可选。结果偏移量。默认值:0。例如设置为 10,则跳过前 10 条结果并从后续结果开始返回。
max_rank_groupinteger可选。用于识别竞品时的最大排名范围。默认值:100。例如设为 10 时从 Google 前 10 名结果中提取竞品。
exclude_top_domainsboolean可选。是否排除大型站点。默认值:false。设为 true 后,可排除如 wikipedia.orgamazon.comyoutube.comreddit.com 等头部域名,以获得更贴近业务的竞品。
exclude_domainsarray可选。排除指定域名,最多支持 1000 个。
intersecting_domainsarray可选。用于提升结果准确度的域名列表。若提供该参数,结果中的指标将基于 target 与这些域名同时出现在 SERP 中的计算。最多支持 20 个域名。
ignore_synonymsboolean可选。是否忽略高度相似。设为 true 时返回核心,排除高度相似变体。默认值:false
tagstring可选。用户自定义任务标识,最长 255 个字符。返回结果中的 data 对象会原样带回该值,便于请求与结果对应。

过滤与排序说明

filters 支持的操作符

  • regex
  • not_regex
  • <
  • <=
  • >
  • >=
  • =
  • <>
  • in
  • not_in

filters 示例

json
[
 ["metrics.organic.count", ">=", 50],
 "and",
 ["intersections", ">=", 20]
]

order_by 示例

json
[
 "intersections,desc",
 "avg_position,asc"
]

响应结构

接口返回 JSON 对象,顶层 tasks 数组。

顶层字段

字段名类型说明
versionstringAPI 当前版本
status_codeinteger通用状态码
status_messagestring通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务结果数组

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码
status_messagestring任务状态信息
timestring任务执行耗时
costfloat任务费用,单位 USD
result_countintegerresult 数组个数
patharrayURL 路径
dataobject请求中提交的参数
resultarray结果数组

result[] 字段

字段名类型说明
se_typestring搜索引擎类型
targetstring请求中的目标域名
location_codeinteger请求中的地区编码
language_codestring请求中的语言代码
total_countinteger数据库中与本次请求匹的结果总数
items_countinteger本次返回的结果数量
itemsarray竞品域名结果列表

items[] 字段说明

每个 items[]素表示一个竞品域名及指标。

字段名类型说明
se_typestring搜索引擎类型
domainstring竞品域名
avg_positionfloat平均排名。基于交集计算,因此同一域名在不同目标站组合下该值可能不同。
sum_positioninteger排名总和。基于交集计算。
intersectionsinteger交集数量
full_domain_metricsobject该竞品域名在所有已排名上的完整指标概览
metricsobject目标域名在与该竞品上的指标
competitor_metricsobject竞品域名在与目标域名上的指标

指标对象说明

以下结构适用于:

  • full_domain_metrics
  • metrics
  • competitor_metrics

这些对象下可能以下结果类型:

  • organic
  • paid
  • local_pack
  • featured_snippet

各结果类型下的通用字段

字段名类型说明
pos_1integer排名第 1 的 SERP 数量
pos_2_3integer排名第 2-3 的 SERP 数量
pos_4_10integer排名第 4-10 的 SERP 数量
pos_11_20integer排名第 11-20 的 SERP 数量
pos_21_30integer排名第 21-30 的 SERP 数量
pos_31_40integer排名第 31-40 的 SERP 数量
pos_41_50integer排名第 41-50 的 SERP 数量
pos_51_60integer排名第 51-60 的 SERP 数量
pos_61_70integer排名第 61-70 的 SERP 数量
pos_71_80integer排名第 71-80 的 SERP 数量
pos_81_90integer排名第 81-90 的 SERP 数量
pos_91_100integer排名第 91-100 的 SERP 数量
etvfloat预估流量(Estimated Traffic Volume)
countinteger含该域名的 SERP 总数
estimated_paid_traffic_costfloat预估流量价值/预估付费流量成本,单位 USD
is_newinteger新增排名项数量
is_upinteger排名上升的项数量
is_downinteger排名下降的项数量
is_lostinteger丢失排名的项数量
clickstream_etvinteger基于点击流数据计算的预估流量在 include_clickstream_data=true 时返回
clickstream_gender_distributionobject点击流性别分布在 include_clickstream_data=true 时返回
clickstream_age_distributionobject点击流年龄分布在 include_clickstream_data=true 时返回

clickstream_gender_distribution

字段名类型说明
femaleinteger点击流数据中的女性用户数量
maleinteger点击流数据中的男性用户数量

clickstream_age_distribution

字段名类型说明
18-24integer18-24 岁用户数量
25-34integer25-34 岁用户数量
35-44integer35-44 岁用户数量
45-54integer45-54 岁用户数量
55-64integer55-64 岁用户数量

指标对象语义区别

full_domain_metrics

返回竞品域名在所有已排名上的完整排名与流量概览。

metrics

返回目标域名在“与当前竞品域名的集合”上的表现。

也就是说,这里看到的是目标站在交集上的 organic / paid / local_pack / featured_snippet 指标。

competitor_metrics

返回当前竞品域名在“与目标域名的集合”上的表现。

适合直接与 metrics 对比,衡量目标站与某个竞品在同一战场上的强弱差异。

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/google/competitors_domain/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "target": "newmouth.com",
 "language_name": "English",
 "location_code": 2840,
 "intersecting_domains": [
 "dentaly.org",
 "health.com",
 "trysnow.com"
 ],
 "filters": [
 ["metrics.organic.count", ">=", 50]
 ],
 "limit": 3
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/dataforseo_labs/google/competitors_domain/live"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}
data = [
 {
 "target": "newmouth.com",
 "location_name": "United States",
 "language_name": "English",
 "intersecting_domains": [
 "dentaly.org",
 "health.com",
 "trysnow.com"
 ],
 "filters": [
 ["metrics.organic.count", ">=", 50]
 ],
 "limit": 3
 }
]

response = requests.post(url, headers=headers, json=data)
print(response.json)

TypeScript

typescript
import axios from "axios";

const postData = [
 {
 target: "newmouth.com",
 location_name: "United States",
 language_name: "English",
 intersecting_domains: [
 "dentaly.org",
 "health.com",
 "trysnow.com"
 ],
 filters: [
 ["metrics.organic.count", ">=", 50]
 ],
 limit: 3
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/dataforseo_labs/google/competitors_domain/live",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 },
 data: postData
})
 .then((response) => {
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

响应示例

json
{
 "version": "0.1.20240514",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.5412 sec.",
 "cost": 0.0103,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.5123 sec.",
 "cost": 0.0103,
 "result_count": 1,
 "path": [
 "v3",
 "dataforseo_labs",
 "google",
 "competitors_domain",
 "live"
 ],
 "data": {
 "api": "dataforseo_labs",
 "function": "competitors_domain",
 "se_type": "google",
 "target": "newmouth.com",
 "intersecting_domains": [
 "dentaly.org",
 "health.com",
 "trysnow.com"
 ],
 "language_name": "English",
 "location_code": 2840,
 "limit": 3
 },
 "result": [
 {
 "se_type": "google",
 "target": "newmouth.com",
 "location_code": 2840,
 "language_code": "en",
 "total_count": 3,
 "items_count": 3,
 "items": [
 {
 "domain": "example-competitor.com",
 "avg_position": 12.4,
 "sum_position": 248,
 "intersections": 37,
 "full_domain_metrics": {
 "organic": {
 "pos_1": 12,
 "pos_2_3": 31,
 "pos_4_10": 84,
 "etv": 1450.2,
 "count": 560,
 "estimated_paid_traffic_cost": 932.4,
 "is_new": 14,
 "is_up": 36,
 "is_down": 18,
 "is_lost": 7
 }
 },
 "metrics": {
 "organic": {
 "pos_1": 3,
 "pos_2_3": 7,
 "pos_4_10": 11,
 "etv": 188.5,
 "count": 37,
 "estimated_paid_traffic_cost": 126.8,
 "is_new": 2,
 "is_up": 4,
 "is_down": 3,
 "is_lost": 1
 }
 },
 "competitor_metrics": {
 "organic": {
 "pos_1": 5,
 "pos_2_3": 10,
 "pos_4_10": 13,
 "etv": 241.7,
 "count": 37,
 "estimated_paid_traffic_cost": 165.3,
 "is_new": 1,
 "is_up": 6,
 "is_down": 2,
 "is_lost": 0
 }
 }
 }
 ]
 }
 ]
 }
 ]
}

常见错误处理

建议在集成时同时处理顶层状态码和任务级状态码:

  • 顶层 status_code:表示整个请求是否成功
  • tasks[].status_code:表示单个任务是否成功
  • tasks_error:表示失败任务数量

可重点以下场景:

场景说明
参数缺失如未传 target,或 location_name/location_codelanguage_name/language_code 均未提供
参数格式错误如域名不符合要求的格式
过滤条件错误filters 结构不合法、操作符不支持、字段路径错误
排序规则错误order_by过 3 条或格式不正确
频率限制出每分钟调用量或并发限制
权限/认证错误Token 无效、缺失或没有对应接口权限

完整错误码体系请参考 /v3/appendix/errors

使用建议

  • 若希望得到更“业务”的竞品,建议启用 exclude_top_domains=true
  • 若已知一批与目标站高度重叠的站点,可通过 intersecting_domains 提高竞品识别精度
  • 若需要只核心词竞争,可设置 ignore_synonyms=true
  • 若要比较目标站与竞品在同一集合中的强弱,应优使用 metricscompetitor_metrics 做对比,而非看 full_domain_metrics

实用场景

  • 识别核心自然搜索竞品:目标域名后快速找出在同一 SERP 中高频重叠的网站,帮助制定竞品监控名单。
  • 比较目标站与竞品的战场强弱:对比 metricscompetitor_metrics,判断上谁的排名、流量与流量价值更强。
  • 排除大型泛站获取真实商业竞品:开启 exclude_top_domains,过滤百科、社媒、平台型网站,获得更贴近业务的竞争对手集合。
  • 挖掘付费搜索竞争压力:结合 paid 指标查看哪些竞争对手在 PPC 维度与目标站重合度高,从而优化投放策略。
  • 分析细分 SERP 机会:通过 local_packfeatured_snippet 等结果类型识别目标站与竞品在本地、精选摘要中的争夺,支持与本地 SEO 策略制定。

统一入口:官网 · LLM API · 控制台