问答
想在公众号投放广告,怎么找到某个领域的号?
简短回答
用公众号搜索搜几个细分关键词,每次最多返回 10 个号,加 view=full 带头条平均阅读和发文频率,按返回的号计费,每个 $0.058。再用历史文章接口看入围名单最近 10 篇,每个号 $0.04。5 个关键词加 15 个入围号,最多 $3.50。
一个露营装备品牌有六个公众号投放名额,需要一份目标用户真正在看的号的名单。第一轮靠关键词:用公众号搜索搜露营、户外装备、徒步这类词,返回匹配的号;加上 view=full,每个号都带上排序要用的数据:头条平均阅读、平均点赞、每周发文数和最近一次发文时间。第二轮看入围的号到底发什么,用公众号历史文章。
具体怎么做
- 先撒网。 搜四到六个关键词,多用用户嘴里的说法,少用你们内部的品类名。换个说法,搜出来的号就不一样。
- 排序筛选。 一个月没更新的号先去掉,剩下的按
ext.avg_top_read排序。看一眼ext.owner,竞品自己运营的号、打包卖号的传媒公司都能认出来。 - 付钱前先读。 前 15 个号各拉最近 10 篇,看头条放什么内容、每篇阅读稳不稳、有没有接过同类品牌的广告。
import os, requests
API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
def search(word):
body = requests.get(API + "/v1/wechat_mp/accounts/search", headers=H, timeout=60,
params={"query": word, "view": "full"}).json()
return body["data"]["items"] if body["code"] == "ok" else []
found = {}
for word in ["露营", "户外装备", "徒步"]:
for acc in search(word):
found[acc["id"]] = acc # 同一个号可能被几个词搜到
ranked = sorted(found.values(), key=lambda a: a.get("ext", {}).get("avg_top_read") or 0, reverse=True)
for a in ranked[:15]:
e = a.get("ext", {})
print(a["name"], a["id"], e.get("avg_top_read"), e.get("articles_per_week"), e.get("last_published_at"))
费用
| 步骤 | 调用 | 最多花费 |
|---|---|---|
| 5 个关键词,每次满一页 | 5 | $2.90 |
| 15 个入围号,各取最近 10 篇 | 15 | $0.60 |
| 合计 | 20 | {{cost:wechat_mp.accounts.search5+wechat_mp.accounts.articles.list15}} |
搜索按返回的号计费,一个窄关键词只搜出 4 个号,就比塞满一页的宽泛词便宜。同一个关键词往后翻页,每页单独算一次。
搜索告诉不了你的
- 它搜的是号,不是文章。一个主要写汽车、偶尔写过一篇爆款露营文的号,搜露营是搜不到的。
- 结果里的粉丝数是第三方估算。头条阅读更靠谱,详见怎么查公众号粉丝数。
- 报价、读者画像、接过哪些客户,公开数据里都没有,只能直接问号主。
其他渠道
微信里的搜一搜免费,随手看十来个号足够了。微信官方的公众号广告互选平台列着愿意接广告的号,数据经过后台核验、价格明码标出,真到下单的时候走这里更稳妥。专做公众号投放的代理商手里也有自己的号库。想快速拉一份宽口径、能排序的初筛名单,用接口最快;在小红书、抖音、B 站上做同样的事,可以看达人发现。
更新于