discovering-tiktok-shop-sellers-by-niche
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDiscovering TikTok Shop Sellers by Niche
按细分领域发现TikTok Shop卖家
Maps the TikTok Shop seller landscape in a product category. Identifies which products are being heavily promoted, which creators drive the most sales content, and where product gaps exist.
梳理某产品类别的TikTok Shop卖家格局,识别哪些产品正在被大力推广、哪些创作者带来最多销售内容,以及存在哪些产品空白。
Prerequisites
前提条件
- environment variable set
APIFY_TOKEN - Optional: Apify MCP server installed
- 已设置环境变量
APIFY_TOKEN - 可选:已安装Apify MCP服务器
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | TikTok URLs — user profiles, hashtags, music pages, search, locations |
| array | Optional | | Search keywords/terms to find posts |
| string | Optional | | Sort order for keyword results: |
| string | Optional | — | ISO 3166-1 alpha-2 country code for regional filtering (e.g. |
| number | Optional | Unlimited | Maximum posts to return across the run |
| boolean | Optional | | Add the matched search keyword field to each post |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数组 | 可选 | | TikTok链接 — 用户主页、话题标签、音乐页面、搜索结果、地点页面 |
| 数组 | 可选 | | 用于查找帖子的搜索关键词/术语 |
| 字符串 | 可选 | | 关键词结果的排序方式: |
| 字符串 | 可选 | — | 用于区域过滤的ISO 3166-1 alpha-2国家代码(例如 |
| 数字 | 可选 | 无限制 | 本次运行返回的最大帖子数量 |
| 布尔值 | 可选 | | 为每个帖子添加匹配的搜索关键词字段 |
| 字符串 | 可选 | — | 用于转换每个输出对象的JavaScript函数 |
Workflow
工作流程
Progress:
- [ ] Step 1: Search niche hashtags with TikTok Shop signals
- [ ] Step 2: Filter posts with shop product links
- [ ] Step 3: Extract seller profiles and products
- [ ] Step 4: Rank by sales signal strength
- [ ] Step 5: Deliver seller/product map进度:
- [ ] 步骤1:搜索带有TikTok Shop信号的细分领域话题标签
- [ ] 步骤2:筛选带有店铺产品链接的帖子
- [ ] 步骤3:提取卖家主页和产品信息
- [ ] 步骤4:按销售信号强度排序
- [ ] 步骤5:交付卖家/产品图谱Step 1: Search Hashtags
步骤1:搜索话题标签
TikTok Shop hashtags: #tiktokshop[niche], #[niche]shop, #[niche]deals, #tiktokmademebuyit,
#[niche]affiliate, #[niche]haulRecommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefinedTikTok Shop话题标签:#tiktokshop[niche], #[niche]shop, #[niche]deals, #tiktokmademebuyit,
#[niche]affiliate, #[niche]haul推荐使用 — run_actor.js(自动处理等待、输出及文件保存):
bash
undefinedQuick answer (prints table to chat)
快速输出(在聊天窗口打印表格)
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
Save as CSV
保存为CSV文件
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
Save as JSON
保存为JSON文件
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input:
{
"keywords": ["#tiktokshop", "#[niche]shop", "#tiktokmademebuyit"],
"maxItems": 300
}
**REST API fallback:**
```bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{
"keywords": ["#tiktokshop", "#kitchentools", "#tiktokmademebuyit"],
"maxItems": 300
}'node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> 必须在环境变量或`.env`文件中设置`APIFY_TOKEN`。
**若Apify MCP可用:**工具: apify:run-actor
Actor: "apidojo~tiktok-scraper"
输入:
{
"keywords": ["#tiktokshop", "#[niche]shop", "#tiktokmademebuyit"],
"maxItems": 300
}
**REST API备选方案:**
```bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{
"keywords": ["#tiktokshop", "#kitchentools", "#tiktokmademebuyit"],
"maxItems": 300
}'Step 2: Score Seller Strength
步骤2:评分卖家实力
sales_signal = (playCount / 10000) * 0.35
+ (diggCount / 1000) * 0.25
+ (commentCount / 100) * 0.15
+ (shareCount / 500) * 0.15
+ (hasShopLink ? 1 : 0) * 0.10Normalize to [0, 1]. Sellers with multiple high-signal posts get .
multi_post_bonus = 0.15sales_signal = (playCount / 10000) * 0.35
+ (diggCount / 1000) * 0.25
+ (commentCount / 100) * 0.15
+ (shareCount / 500) * 0.15
+ (hasShopLink ? 1 : 0) * 0.10归一化至[0, 1]区间。拥有多篇高信号帖子的卖家可获得的额外加分。
multi_post_bonus = 0.15Step 3: Classify Seller Type
步骤3:分类卖家类型
seller_type:
BRAND = account.verified OR followerCount > 50K AND bio contains brand name
CREATOR_AFFILIATE = individual account, earns commission per sale
DROPSHIPPER = posts multiple unrelated products with generic descriptionsseller_type:
BRAND = 账号已认证 或 粉丝数>5万且简介包含品牌名称
CREATOR_AFFILIATE = 个人账号,按销售额赚取佣金
DROPSHIPPER = 发布多款无关产品,描述通用Step 4: Edge Cases
步骤4:边缘情况处理
- Non-Shop posts in results: Drop posts where caption has no shop signal AND no product link
- Same product from many creators: De-duplicate by product name; count unique promoters as a "sales momentum" signal
- Saturated niche (> 50 active sellers): Flag as HIGH_COMPETITION; present gap analysis (underserved sub-niches)
- Views inflated by one viral post: Use median views across seller's last 10 posts as the signal, not max
- 结果中包含非店铺帖子:移除标题无店铺信号且无产品链接的帖子
- 同一产品被多位创作者推广:按产品名称去重;将独特推广者数量作为“销售势头”信号
- 细分领域饱和(活跃卖家>50个):标记为HIGH_COMPETITION;呈现空白分析(服务不足的子领域)
- 单条爆款帖子拉高浏览量:使用卖家最近10篇帖子的中位浏览量作为信号,而非最高浏览量
Output Format
输出格式
undefinedundefinedTikTok Shop Seller Map: [NICHE]
TikTok Shop卖家图谱: [细分领域]
Posts scanned: [N] | Unique sellers: [N] | Brands: [N] | Creator-affiliates: [N] | Date: [DATE]
扫描帖子数: [N] | 独特卖家数: [N] | 品牌卖家数: [N] | 创作者联盟卖家数: [N] | 日期: [DATE]
Top Sellers by Sales Signal
按销售信号排序的顶级卖家
| Seller | Type | Product(s) | Avg Views/Post | Shop Posts | Signal Score |
|---|---|---|---|---|---|
| @[handle] | Creator | [product] | [N] | [N] | [0.XX] |
| 卖家 | 类型 | 产品 | 单帖平均浏览量 | 店铺帖子数 | 信号评分 |
|---|---|---|---|---|---|
| @[账号] | 创作者 | [产品] | [N] | [N] | [0.XX] |
Top Products (by Promotion Frequency)
热门产品(按推广频率排序)
| Product Name | # Sellers Promoting | Avg Post Views | Price Range |
|---|---|---|---|
| [product] | [N] | [N] | $[X]-$[X] |
| 产品名称 | 推广卖家数 | 单帖平均浏览量 | 价格区间 |
|---|---|---|---|
| [产品] | [N] | [N] | $[X]-$[X] |
Market Saturation
市场饱和度
Competition level: [LOW / MEDIUM / HIGH] ([N] active sellers)
Potential gap: [sub-niche or product type with < 3 sellers]
undefined竞争等级: [LOW / MEDIUM / HIGH](活跃卖家数: [N])
潜在空白: [卖家数<3的子领域或产品类型]
undefinedTroubleshooting
故障排除
Hashtag returns non-shop content: Combine niche hashtag with in the same search to anchor on shop-linked posts.
Can't determine product price: TikTok Shop prices aren't always in the video — note URL pattern includes product ID which can be cross-referenced manually.
All results from one mega-creator: Add to surface diverse sellers.
#tiktokshopmax_posts_per_creator = 5话题标签返回非店铺内容:将细分领域话题标签与组合搜索,聚焦带店铺链接的帖子。
无法确定产品价格:TikTok Shop价格并非总是显示在视频中 — 注意链接格式包含产品ID,可手动交叉查询。
结果全部来自头部大创作者:添加参数,挖掘更多元的卖家。
#tiktokshopmax_posts_per_creator = 5