问答

想在公众号投放广告,怎么找到某个领域的号?

简短回答

用公众号搜索搜几个细分关键词,每次最多返回 10 个号,加 view=full 带头条平均阅读和发文频率,按返回的号计费,每个 $0.058。再用历史文章接口看入围名单最近 10 篇,每个号 $0.04。5 个关键词加 15 个入围号,最多 $3.50。

一个露营装备品牌有六个公众号投放名额,需要一份目标用户真正在看的号的名单。第一轮靠关键词:用公众号搜索搜露营、户外装备、徒步这类词,返回匹配的号;加上 view=full,每个号都带上排序要用的数据:头条平均阅读、平均点赞、每周发文数和最近一次发文时间。第二轮看入围的号到底发什么,用公众号历史文章。

具体怎么做

  1. 先撒网。 搜四到六个关键词,多用用户嘴里的说法,少用你们内部的品类名。换个说法,搜出来的号就不一样。
  2. 排序筛选。 一个月没更新的号先去掉,剩下的按 ext.avg_top_read 排序。看一眼 ext.owner,竞品自己运营的号、打包卖号的传媒公司都能认出来。
  3. 付钱前先读。 前 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 站上做同样的事,可以看达人发现。

更新于