X 上养 30 个号,不如把 3 个号做扎实。平台看行为也看内容,批量注册、批量发同质内容,很快连号一起沉。
3 个号跑赢 30 个号,X 的风控看行为更看内容
前段时间跟一个做独立开发者社区的朋友聊,他说他们团队运营 X 是「3 个号深耕」。我以为是人手不够。他说试过 30 个号,3 个号认真做,转化比 30 个号批量发还高。
X 的推荐看账号垂直不垂直、互动质量高不高。30 个号里如果有一半在发空泛内容,权重会很低,不如 3 个号在一个细分里持续发。矩阵如果只是多开几个号、发同一套内容,数量帮不上忙。
X 的自动化检测这两年不只看发得频不频,也看行为模式。后面这几项都会被看:
| 维度 | 具体表现 | 应对思路 |
|---|---|---|
| 设备特征 | 硬件指纹、系统版本一致性 | 真机 + HID 方案,每台设备独立指纹 |
| 网络出口 | IP 类型、地区、账号间关联 | 一机一 IP,住宅 IP 优先 |
| 操作节奏 | 时间分布、动作间隔的规律性 | 随机化,分散到全天多个时段 |
| 内容质量 | 语义重复度、是否原创 | 素材差异化,避免同质化分发 |
| 互动模式 | 账号间是否互相点赞转发 | 避免小号互刷,这是最容易被抓的行为 |
上表最后一行最容易出问题。很多人一做矩阵就让几个号互相点赞、互相评论,想先把热度做起来。在 X 上,这是很明显的机器行为。
X 的权重是慢慢涨的,不像 TikTok 那样有突然爆的机会。前三个月往往看不出效果。它适合慢慢攒内容,不适合拿来短期冲量。
选型、养号、素材库和发推脚本
技术选型上,X 以图文为主、频率不高,USB HID 基本够用。中控需要 EasyClick iOS USB 10.7.0+,手机建议 iOS 17+:
| 通道 | 依赖 | 适用性 |
|---|---|---|
| USB HID | 一根 USB 数据线 | 推荐,X 以图文为主,频率不高 |
| 蓝牙 BLE | ESP32C3 开发板 | 高价值账号可选,绕开屏幕镜像 |
| OTG HID | ESP32S3 开发板 | 可脱离电脑独立运行 |
基础代码骨架如下。返回 null 或空字符串即成功,其它字符串是错误信息:
function _ok(r) {
return r == null || r === "";
}
function randSleep(minSec, maxSec) {
let ms = (minSec + Math.random() * (maxSec - minSec)) * 1000;
sleep(parseInt(ms));
}
function main() {
let r = usbHidEvent.sessionStart(true);
if (!_ok(r)) { logw("会话失败: " + r); return; }
r = usbHidEvent.setScreenSize(1170, 2532);
if (!_ok(r)) { logw("设尺寸失败: " + r); return; }
// ... 业务操作
usbHidEvent.sessionStop();
}
main();
X 的账号权重积累有两个关键期:注册后的前 30 天,以及前 100 条推文。养号节奏:
| 阶段 | 时间 | 做什么 | 不要做什么 |
|---|---|---|---|
| 冷启动 | 第 1-3 天 | 完善资料、关注 20-30 个行业账号、浏览 | 不要发任何内容 |
| 建立兴趣标签 | 第 4-7 天 | 点赞、转发真人内容(每天 5-10 次) | 不要发广告 |
| 首次发声 | 第 8-14 天 | 每天发 1 条原创观察,参与 1-2 次讨论 | 不要带链接 |
| 稳定输出 | 第 15-30 天 | 每天 1-2 条,开始建立内容主题 | 不要批量转发 |
| 正式运营 | 第 31 天起 | 每天 2-5 条,可适当带链接 | 不要发重复内容 |
资料要填全。头像用真人或清楚的品牌标识,别用默认头像。Banner 写出账号定位。Bio 用一句话写清你是谁、做什么。位置和 IP 所在地区一致。置顶放最好的那条。
内容要不一样,比较省事的办法是素材库加模板。20 个号发同一段,X 的语义去重会认出来。脚本每次随机抽一条再套一层模板,发出来的句子不会完全一样。素材库里分观点、数据、案例:
let materials = {
// 观点类
insights: [
"自动化不是替代人,是把人从重复劳动里释放出来",
"真正的效率提升来自流程重构,不是工具堆叠",
"90% 的自动化项目失败在需求不清晰,不是技术不行",
// ...
],
// 数据类
stats: [
"我们测试了一个月:同样的内容,分散发布比集中发布互动率高 3 倍",
"统计数据:账号活跃时段分散的,权重提升速度快 40%",
// ...
],
// 案例类
cases: [
"一个做工业配件的团队,15 个账号各加 5 个人,月询盘从 20 涨到 180",
// ...
]
};
组织模板决定怎么包装:
let templates = [
function(m) { return m; }, // 纯观点
function(m) { return "观察:\n\n" + m; }, // 带引导词
function(m) { return m + "\n\n 你们怎么看?"; }, // 带提问
function(m) { return "最近想到一点:\n\n" + m + "\n\n#自动化"; } // 带标签
];
// 随机组合
function buildPost() {
let pool = [].concat(materials.insights, materials.stats, materials.cases);
let content = pool[Math.floor(Math.random() * pool.length)];
let tpl = templates[Math.floor(Math.random() * templates.length)];
return tpl(content);
}
每次抽到的句子和包装都不一样。单条推文的步骤是点发推按钮、输入内容、再发送:
function postTweet(text) {
// 1. 点击发推按钮(悬浮的 + 或右下角铅笔图标)
let r = usbHidEvent.clickPoint(1040, 2380);
if (!_ok(r)) return "打开编辑框失败: " + r;
randSleep(2, 4);
// 2. 输入内容
r = usbHidEvent.inputText(text);
if (!_ok(r)) return "输入失败: " + r;
randSleep(2, 5);
// 3. 点击发送
r = usbHidEvent.clickPoint(1010, 190);
if (!_ok(r)) return "发送失败: " + r;
return null;
}
带图片的推文要先让图片进入相册,有三种方式。有代理 IPA 时直接插入图片到相册。没有代理 IPA 就用快捷指令下载,bleEvent.keyPressChar 触发绑定好的快捷键。也可以在投屏界面工具栏「上传视频/图片」手动上传。流程上加一步选图:
function postTweetWithImage(text, imageIndex) {
let r = usbHidEvent.clickPoint(1040, 2380); // 打开编辑框
if (!_ok(r)) return "打开编辑框失败";
randSleep(2, 4);
r = usbHidEvent.clickPoint(180, 2160); // 点图片图标
if (!_ok(r)) return "点击图片图标失败";
randSleep(2, 5);
// 选中第 imageIndex 张图(简单网格布局)
let col = imageIndex % 3;
let row = Math.floor(imageIndex / 3);
r = usbHidEvent.clickPoint(195 + col * 390, 700 + row * 390);
if (!_ok(r)) return "选图失败";
randSleep(2, 4);
r = usbHidEvent.inputText(text); // 输入文案
if (!_ok(r)) return "输入失败";
randSleep(2, 5);
return usbHidEvent.clickPoint(1010, 190); // 发送
}
发线程就是循环回复自己。第一条正常发,后面每条回复自己。每条之间随机等 1.5 到 4 分钟:
function postThread(threadItems) {
// 第一条:正常发
let err = postTweet(threadItems[0]);
if (err) return "首条失败: " + err;
randSleep(60, 180);
// 后续:逐条回复自己
for (let i = 1; i < threadItems.length; i++) {
let r = usbHidEvent.clickPoint(400, 1000); // 点进自己的推文
if (!_ok(r)) return "点推文失败";
randSleep(3, 6);
r = usbHidEvent.clickPoint(300, 1400); // 点「回复」
if (!_ok(r)) return "点回复失败";
randSleep(2, 4);
r = usbHidEvent.inputText(threadItems[i]);
if (!_ok(r)) return "输入失败";
randSleep(2, 5);
r = usbHidEvent.clickPoint(1010, 190); // 发送
if (!_ok(r)) return "发送失败";
randSleep(90, 240); // 两条之间等待 1.5-4 分钟
}
return null;
}
发布节奏和内容
每日操作上限:
| 操作 | 新号(<30 天) | 成熟号 |
|---|---|---|
| 发推 | 1-2 条 | 3-8 条 |
| 转发 | ≤ 5 | ≤ 30 |
| 点赞 | ≤ 20 | ≤ 100 |
| 回复 | ≤ 10 | ≤ 50 |
| 关注 | ≤ 20 | ≤ 50/天 |
假设一个成熟号每天发 5 条推文,推荐的时间分布是:
| 时段 | 条数 | 理由 |
|---|---|---|
| 早间 8-10 点 | 1 | 通勤时段流量 |
| 午间 12-14 点 | 1 | 午休浏览 |
| 下午 15-17 点 | 1 | 工作时间 |
| 晚间 19-21 点 | 1 | 黄金时段 |
| 夜间 22-23 点 | 1 | 长尾流量 |
不同账号的时间分布要错开。不要所有号都在同一个时刻发,可以给每个账号分配不同的发布时间偏移:
// 给每个账号分配不同的发布时间偏移
function scheduleFor(deviceIndex) {
let baseHours = [9, 13, 16, 20, 22];
let offset = (deviceIndex * 17) % 60; // 每台设备偏移不同分钟数
return baseHours.map(h => h + ":" + String(offset).padStart(2, "0"));
}
中控的定时任务面板可以给每个设备组配置独立的执行计划。X 这种发布任务不需要实时响应,设定好时间自动跑就行。
有三种做法很容易被抓。
几个号互相关注、互相点赞、互相转发。X 对这种互动很敏感。正常的关系网不会是「这 10 个号只跟彼此互动」。
同一段文案发到 20 个号。改标点、换表情也没用,语义去重认的是向量相似度,不是逐字对比。
所有号在同一时间段蹭同一个热点,角度也一样。矩阵等于自己暴露出来。
每个账号分开选题:
| 账号 | 定位 | 内容方向 |
|---|---|---|
| 号 1 | 行业观察 | 数据、趋势、政策解读 |
| 号 2 | 实操教程 | 技术细节、踩坑经验 |
| 号 3 | 案例分享 | 客户故事、项目复盘 |
| 号 4 | 观点输出 | 对行业现象的评论 |
四个号选题分开,发出去的内容也不会一样。垂直度上去了,权重才会跟着上去。
前几个月能看到什么
前几个月别把量想得太高。
- 第一个月是养号期,基本没有产出
- 第二到三月是内容积累期,偶尔有一两条内容跑出来
- 第四个月起,方向对了就开始有稳定的自然流量
如果看到有人宣传“三天起号、一周破万粉”,基本可以判断:要么是幸存者偏差,要么是在卖课。
技术方案能让 20 个账号一起跑。号能不能一直留着,看发进去的内容。
常见问题排查
问题:推文发出去了但没有曝光
先检查是不是被 shadowban 了。用一个没关注你的账号搜索你的用户名,如果搜不到就是这个情况。处理方式是静默 1-2 周,期间只做真实浏览和点赞。
问题:图片上传失败
检查图片是否已经进入相册。如果是用快捷指令下载的,确认中控电脑的 IP 地址配置正确(快捷指令请求的 http://IP:端口?key=设备标识)。
问题:脚本坐标漂移
X 的 App 界面会随版本更新调整。每次 App 更新后重新用投屏截图量一次坐标。横竖屏切换后记得重新 setScreenSize。
问题:账号莫名掉登录
检查是不是 IP 跳变导致的。X 对登录环境变化很敏感,频繁换 IP 会触发安全验证。同一个账号尽量固定 IP 段。
EasyClick 是覆盖安卓免 Root、iOS 免越狱、鸿蒙 Next 三大生态的手机自动化 AI 智能体平台,提供脚本开发、本地中控投屏与云控系统。→ 了解全部产品
想要真实跑起来?
本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。