内容
# 利姆
**利姆** 是适用于领英(LinkedIn Ad Manager)的广告管理器。通过与克劳德(Claude)(MCP)或命令行界面(CLI)对话创建广告活动。适用于希望从联系人列表和简介中快速创建多个广告活动,然后自行添加创意图片的营销团队。所有内容都创建为**草稿**,因此在您明确在广告管理器中激活它之前,任何内容都不会花费资金。
> 非官方,与领英无关联或背书。
> 涵盖创建、匹配受众(包括直接从Salesforce建立受众)、转化选择、性能报告/洞察、竞争对手广告情报和变更日志,包含前后提升信息。请参阅 [ROADMAP.md](./ROADMAP.md) 以了解已发布的内容和计划中的内容。
## 您可以用它做什么
一旦利姆连接成功,您就可以用日常语言与您的助手对话。目前它可以处理的实际请求,大致按照广告活动组建的顺序排列:
- “美国SaaS公司的需求生成副总裁有多少人可以被我们触及?”(解决定位条件,估算受众范围,无需花费)
- “上传此CSV文件作为匹配受众。”(自动清理列,哈希电子邮件,转换公司域名为URL)
- “从Salesforce建立一个受众:每个标记为目标的账户中的联系人。”(SOQL直接连接到匹配受众)
- “为该受众启动一个草稿广告活动,每天100美元,跟踪演示预订的转化。”(广告活动组+广告活动+草稿广告,一次调用)
- “HubSpot目前正在运行哪些广告,他们正在推广什么优惠?”(读取公共广告库:复制,格式和欧盟定位元数据,适用于任何公司)
- “上个月的重新定位表现如何,与上个月相比?”(趋势报告,带有差异)
- “我本周应该暂停哪些广告?”(账户汇总,显示表现最佳/最差的广告和标记)
- “重写失败广告的复制内容。”(删除+重新创建为新的草稿;领英忽略对实时广告帖子的编辑)
- “新的标题是否真的有帮助?”(变更日志+前后提升)
利姆解决细节并返回ID。每个功能也是一个`liam` CLI命令,用于脚本或批量使用。
### 让它循环运行
利姆中没有调度程序。请在您使用的客户端中使用调度程序。一些有效的循环:
- “每周一早上9点,拉取上周的性能总结,与前一周进行比较,并标记任何变动超过20%的项目。”(克劳德代码调度的代理)
- “每周五,检查我们的三大竞争对手本周发布了哪些新广告,并总结其策略。”
- “每隔几小时检查一次受众匹配状态,并在其达到300名成员时通知我。”(匹配受众生效的最低要求)
- 或跳过助手,直接将CLI放入cron:`0 9 * * 1 liam report summary -p last_7_days`
## 层次映射(领英不同于谷歌/元)
| 常用术语 | 领英实体 | 包含内容 |
| --- | --- | --- |
| 广告活动 | **广告活动组** | 状态,总/共享预算 |
| 广告组 | **广告活动** | 定位,预算,出价,时间表,格式 |
| 广告 | **创意** | 渲染的广告(`状态:草稿`) |
| 受众 | **DMP分段** | 附加到广告活动的定位 |
## 软件包
- `@liads/core`:领英REST客户端,OAuth,资源模块,CSV + SHA256哈希,Salesforce读取器。
- `@liads/mcp`:MCP服务器(本地stdio;被托管应用重用)。**主要接口。**
- `@liads/cli`:`liam` CLI核心,适用于脚本批量运行。
- `@liads/web`:Next.js应用,在Vercel上通过HTTP托管MCP。
## 工作原理
两个接口都是同一引擎上的薄层。每个MCP工具和CLI命令通过`createLiads()`(`core/src/client.ts`)构建客户端,加载配置并自动刷新OAuth令牌提供程序,然后调用类型化的资源模块(`campaigns.ts`,`audience.ts`,`report.ts`,...),包装领英的版本化REST API(`LinkedIn-Version`在配置中固定)。输入形状在`core/src/schemas.ts`中作为zod模式存在,并原样复制为MCP工具输入模式,因此CLI和MCP永远不会分离。
创建时强制执行仅草稿安全规则:广告活动组、广告活动和创意都以`草稿`状态写入,并且故意没有“激活”工具或命令。每条写入也通过一个HTTP检查点,该检查点会追加到本地变更日志(`~/.liads/changelog.jsonl`)以进行后续提升分析。
[AGENTS.md](./AGENTS.md)包含完整的架构说明和从实时测试中学习的领英API注意事项(restli编码、必填字段、DMP受众流程)。
## 安装
有两种安装利姆的方法:
1. **[作为MCP服务器](#option-1-install-as-an-mcp-server)**,与克劳德代码、克劳德桌面、光标或任何MCP客户端注册,因此您可以通过与助手对话创建广告活动。在本地运行,或跳过始终在线的安装,直接[连接到托管端点并使用您自己的凭证](#hosted-mcp-connect-with-your-own-credentials-nothing-to-deploy)。
2. **[作为终端CLI](#option-2-install-the-terminal-cli)**,全局`liam`命令,用于从终端、脚本或cron运行所有内容。
两者都针对**您自己的领英开发者应用**,因此您的凭证和广告账户归您所有。第一步和第二步是共享的:创建领英应用(步骤0)和构建+身份验证(步骤1)。之后,选择您的路径或两者皆可;它们读取相同的`~/.liads`凭证。
### 步骤0:创建领英应用(一次)
1. 在https://www.linkedin.com/developers/apps创建一个应用。它必须与您的领英页面关联。
2. 在**产品**选项卡中,请求访问:
| 产品 | 需要 | 必需? |
| --- | --- | --- |
| 广告API | 广告活动,广告,定位,报告,转化 | **是** |
| 受众 | 上传CSV联系人/公司列表作为匹配受众 | 仅限上传受众 |
| 领英广告库 | 通过官方API获取竞争对手广告元数据 | 可选(浏览器刮擦器无需此权限) |
3. 在**身份验证**选项卡中,添加`http://localhost:53682/callback`作为授权重定向URL,并记录您的**客户端ID**和**客户端密钥**。
4. 一旦广告API获得批准,请在**产品→广告API→查看广告账户**下映射您的广告账户。跳过此步骤,`accounts list`将返回空。
**OAuth范围。** `liam auth login`请求`rw_ads`(创建和编辑广告活动),`r_ads_reporting`(报告),`rw_conversions`(转化跟踪)和`w_organization_social`(图像广告创建帖子,所有权归您的领英页面)。如果您添加产品或范围,请再次运行`auth login`;令牌刷新仅保留您最初授予的范围。
### 步骤1:构建和身份验证(一次,两条路径)
需要git,Node.js 20+和pnpm。
```bash
git clone https://github.com/stan-default/liam.git
cd liam
pnpm install && pnpm -r build
# 应用凭证(或者设置LIADS_CLIENT_ID / LIADS_CLIENT_SECRET环境变量)
mkdir -p ~/.liads
echo '{ "clientId": "...", "clientSecret": "...", "linkedinVersion": "202605" }' > ~/.liads/config.json
node packages/cli/dist/index.js auth login # 打开浏览器;令牌存储在~/.liads
node packages/cli/dist/index.js accounts list # 验证,然后在config.json中设置defaultAccountId
```
### 选项1:安装为MCP服务器
用您的MCP客户端注册服务器;它从步骤1读取`~/.liads`凭证。
**克劳德代码**
```bash
claude mcp add liam -- node /abs/path/liam/packages/mcp/dist/index.js
```
**克劳德桌面,光标或任何MCP客户端**,在其MCP配置JSON中:
```json
{
"mcpServers": {
"liam": { "command": "node", "args": ["/abs/path/liam/packages/mcp/dist/index.js"] }
}
}
```
请求一些只读内容以确认它是否有效:“列出我的广告账户”或“我的账户在过去30天内表现如何?”
#### 托管MCP:使用您自己的凭证连接,无需部署
托管MCP服务器在
```
https://liam-mcp.vercel.app/api/mcp
```
是**多租户,凭证自带**:您传递领英开发者应用的凭证作为请求头,每次调用都针对**您的**应用和**您的**广告账户运行。服务器不存储您的任何状态:凭证在内存中用于调用领英,不会记录或持久化。
| 头部 | 值 | 必需? |
| --- | --- | --- |
| `X-Liads-Client-Id` | 您的领英应用的客户端ID | 是 |
| `X-Liads-Client-Secret` | 您的领英应用的客户端密钥 | 是 |
| `X-Liads-Refresh-Token` | `auth login`的刷新令牌(~365d) | 是 |
| `X-Liads-Account-Id` | 调用省略时使用的数字广告账户ID | 否 |
| `X-Liads-Linkedin-Version` | API版本固定(YYYYMM),默认为服务器版本 | 否 |
执行步骤0和步骤1(领英应用和本地`auth login`;领英的OAuth同意必须在您的浏览器中进行,以便令牌颁发是本地步骤之一)。然后打印准备好的连接命令:
```bash
node packages/cli/dist/index.js auth export --mcp
# claude mcp add --transport http liam https://liam-…vercel.app/api/mcp \
# --header "X-Liads-Client-Id: …" \
# --header "X-Liads-Client-Secret: …" \
# --header "X-Liads-Refresh-Token: …" \
# --header "X-Liads-Account-Id: …"
```
任何支持自定义头的MCP客户端都可以使用这种方式(对于不支持原生HTTP传输的客户端:`npx mcp-remote <url> --header "X-Liads-Client-Id: …" …`)。验证只读调用(“列出我的广告账户”),从那时起连接只是一个URL加上头,可从从未克隆此存储库的机器上使用。
了解权衡:您的客户端密钥和刷新令牌随每个请求传递到该服务器,因此请仅指向您信任的部署,或自行托管相同的端点(下一节)。范围可以管理广告但永远不会激活它们;仅在工具层中强制执行草稿规则。
托管限制(全部设计如此,需要本地资源):`upload_audience_csv`读取服务器上的CSV路径,`audience_from_salesforce`需要您的本地`sf` CLI,竞争对手广告抓取回退到仅API元数据(无浏览器),变更日志/提升工具需要本地`~/.liads/changelog.jsonl`。通过本地MCP服务器或CLI运行这些。
**添加技能。** 清洁的分工适用于团队:您的MCP客户端配置保存凭证(上面的头部),小型技能或系统提示保存您的剧本:默认广告账户、命名约定、固定排除、类似“受众扩展始终关闭”的规则。此存储库中的`skills/`文件夹是一个工作示例;复制一个,交换您的默认值,您的助手使用托管工具驱动,具有您的规则。凭证永远不应出现在技能文件中。
#### 自托管相同的端点到Vercel
运行您自己的实例,以便凭证永远不会触及共享基础设施,您还可以获得一个私有环境配置的租户:
1. 获取您的环境变量:`node packages/cli/dist/index.js auth export`。
2. 将`apps/web`部署到Vercel(将项目**根目录**设置为`apps/web`)。
3. 在Vercel项目设置中,添加`.env.example`中的环境变量(`LIADS_CLIENT_ID`、`LIADS_CLIENT_SECRET`、`LIADS_REFRESH_TOKEN`、`LIADS_LINKEDIN_VERSION`和一个强`MCP_AUTH_TOKEN`)。在Vercel的部署保护设置中,禁用Vercel身份验证以进行生产(或添加保护绕过密钥);否则MCP客户端无法访问端点。
4. 您的MCP端点是`https://<your-app>.vercel.app/api/mcp`。使用标头连接:
```bash
claude mcp add --transport http liam https://<your-app>.vercel.app/api/mcp \
--header "Authorization: Bearer <MCP_AUTH_TOKEN>"
```
请求携带`MCP_AUTH_TOKEN`使用环境凭证(您的租户)。携带`X-Liads-*`标头的请求使用调用者的凭证,反之亦然,因此一个自托管实例可以为您的整个团队服务,每个成员都在他们自己的领英应用上。
### 选项2:安装终端CLI
步骤1已经留下一个可用的CLI在`node packages/cli/dist/index.js`。要获得全局`liam`命令而不是长的`node`路径:
```bash
cd packages/cli && pnpm link --global
liam accounts list
```
(没有pnpm link?别名也可以:`alias liam="node /abs/path/liam/packages/cli/dist/index.js"`。)
一个合理的第一个会话:
```bash
liam targeting search titles "demand generation" # 解析定位URN
liam report summary -p last_30_days # 账户汇总 + 标记
liam launch --brief examples/brief.json # 仅创建草稿
```
完整的 [CLI参考](#cli-reference) 如下。
### 或粘贴此提示,让您的助手完成设置
将整个块复制到克劳德(或任何具有终端访问权限的具备能力的助手)中,它将一步一步地引导您完成上述所有步骤:
```text
您正在帮助我设置利姆(Liam),这是一个开源的领英广告管理器,来自
https://github.com/stan-default/liam。它在本地运行为MCP服务器和CLI。
它在领英上创建的所有内容都是草稿,因此在您激活之前,任何内容都不会花费。
请按照步骤引导我完成设置。您可以为您执行命令,请显示
您需要点击的位置,如果无法执行,请显示确切的错误并帮助我修复。
1. 检查git、Node.js 20或更高版本以及pnpm是否已安装。帮助我安装
任何缺失的内容。
2. 克隆https://github.com/stan-default/liam并在存储库根目录运行“pnpm install”然后
“pnpm -r build”。
3. 帮助我创建领英开发者应用,网址为
https://www.linkedin.com/developers/apps(它必须与我的
领英页面关联):
a. 在“产品”选项卡中,请求访问“广告API”产品。
这是唯一必需的产品;审批可能需要一段时间。
b. 可选:也可以请求“Audiences”,如果我想上传CSV联系人或
公司列表作为匹配受众。
c. 可选:也可以请求“领英广告库”,如果我想通过官方API获取竞争对手广告
元数据。
d. 在“身份验证”选项卡中,添加http://localhost:53682/callback作为授权
重定向URL,并显示我在哪里可以找到客户端ID和客户端密钥。
4. 创建~/.liads/config.json,其中包含我的clientId、clientSecret和
“linkedinVersion”: “202605”。
5. 运行“node packages/cli/dist/index.js auth login”。我的浏览器打开领英的
同意屏幕;我批准后,令牌存储在~/.liads/credentials.json中。
6. 验证“node packages/cli/dist/index.js accounts list”。如果没有
显示帐户,请提醒我到领英开发者门户下的“产品>广告API>查看广告账户”。
然后将我的账户ID设置为~/.liads/config.json中的“defaultAccountId”。
7. 使用以下方法注册MCP服务器与我使用的助手:
- 克劳德代码:claude mcp add liam -- node <绝对仓库路径>/packages/mcp/dist/index.js
- 克劳德桌面或其他客户端:添加{"command": "node", "args":
["<绝对仓库路径>/packages/mcp/dist/index.js"]}到其配置中的mcpServers。
8. 确认工具加载,然后显示一个只读调用以确认,例如
list_ad_accounts或last_30_days的性能总结。
如果任何步骤失败,请显示确切的错误并帮助我修复它,然后再继续。
```bash
./skills/install.sh # 将它们链接到~/.claude/skills(克劳德代码个人技能)
```
## 技能:在利姆之上构建剧本
`skills/`目录中有十个可移植的代理技能,将利姆的原始工具转换为有意见的工作流。每个编码一个方法论(要拉取的内容,如何判断它,重要性地板,注意事项,固定报告格式)并且适用于MCP或CLI。分析技能是只读的;操作技能仅创建草稿,确认后。
分析:
- **liam-spend”,“分析我的支出”:预算集中,浪费的支出,重新分配动作
- **liam-performance”,“我的广告表现如何”:赢家,失败者,疲劳,动作
- **liam-leads”,**“哪些广告带来了线索,哪些没有”:驱动因素,暂停列表,角度模式
- **liam-competitors”,“什么<公司>正在运行”:广告库拆解和差距
- **liam-weekly”,“每周快照”:固定格式的周周摘要,适合日程安排
- **liam-health”,“有什么问题”:无声除非警报,每天只有一行
- **liam-launch”,“启动一个活动”:从简介到确认的草稿,应用了内部防护措施
- **liam-experiments”,“该改变是否有帮助”:假设日志和前后收益
- **liam-audiences”,“审计我的受众”:健康状况,干燥运行上传,Salesforce刷新循环
- **liam-account-audit”,“我的账户设置正确吗”:卫生分数卡和修复列表
```bash
./skills/install.sh # 将它们链接到 ~/.claude/skills (Claude Code 个人技能)
```
请参阅 [skills/README.md](./skills/README.md) 了解详细信息和约定。
## 工具列表
- **账户:** `list_ad_accounts`
- **定位:** `list_targeting_facets`,`search_targeting`(输入 facet 进行实体 URN 的前缀匹配),
`list_facet_entities`,`estimate_audience`(结构化规格)。用平易近人的语言交流
(“美国 SaaS 公司需求生成的副总裁”),Liam 解析 facet 并在创建活动前估算覆盖范围。
- **受众:** `upload_audience_csv`(自动清理 CSV:规范列名,删除非匹配列,哈希电子邮件,
将公司域转换为网站 URL;支持联系人和公司列表),`audience_from_salesforce`(SOQL
到匹配受众),`get_audience_status`
- **转化:** `list_conversions`(选择现有的 insight-tag 转化来跟踪)。
`create_campaign` 和 `launch_from_brief` 接受 `conversionIds` 或 `conversionName`,
并默认为配置中的 `defaultConversionName`。
- **活动:** `create_campaign_group`,`create_campaign`,`create_text_ad`,`create_image_ad`;
`list_campaigns`(账户结构:活动组及其广告组,**包括草稿**,与报告不同,报告仅显示有花费的实体),
`list_ads`,`delete_ad`(删除创意和尽力而为的直接赞助内容帖子)。LinkedIn 的编辑器
忽略实时广告的帖子编辑,因此要更改副本,请重新创建:`delete_ad` + `create_image_ad`。
- **协调器:** `launch_from_brief`(受众 + 分组 + 活动 + 草稿创意,一次调用)
- **报告:** `performance_summary`(账户汇总 + 顶部/底部 + 标志),`get_performance`
(每个层级的实体 KPI),`performance_trend`(每周/每月及变化量)。KPI:点击率,
每点击成本,千次展示成本,每次转化成本,转化率,转化成本。层级:活动组,活动,创意。
- **竞争对手情报:** `inspect_competitor_ads` 读取任何公司的广告从 LinkedIn 广告库
(无需广告账户访问权限)。**官方广告库 API** (`GET /rest/adLibrary`,需要“LinkedIn
广告库”产品授权)返回结构化元数据(广告商,付款人,格式和面向欧盟的广告投放日期,
展示范围,每个国家/地区的划分和定位 facet)但没有创意。**Playwright 爬虫** 从公共库中提供广告副本/图片。
引擎(`engine`):`api`(仅元数据,快速,托管时有效),`scraper`(通过浏览器,本地,公司 ID 支持),
和 `auto`(默认:API 元数据加上每个广告详情页面的副本分层,如果 API 未配置则回退到爬虫)。
按`广告商`名称或`关键词`(API 无公司 ID 或日期筛选)搜索。CLI:`liam competitor ads`。
- **变更日志和提升:** `log_ad_change`(记录变更),`list_ad_changes`,`compute_lift`
(每个记录的变更的前后性能)。Liam 自动记录它对活动组,活动或创意所做的每个变更;
参见下面的[变更日志和提升](#变更日志和提升)。
### 定位规格
结构化定位使用映射到实体 URN 的短 facet 名称(使用 `search_targeting` 解析 URN)。
一个 facet 内的 URN 为 OR;facet 为 AND;排除的 facet 为 OR。
```json
{ "include": { "locations": ["urn:li:geo:103644278"], "seniorities": ["urn:li:seniority:7"], "titles": ["urn:li:title:26587"] },
"exclude": { "industries": ["urn:li:industry:47"] } }
```
## CLI 参考
所有命令也适用于 `node packages/cli/dist/index.js <cmd>`。
```
liam auth login # OAuth,存储令牌在 ~/.liads
liam auth export # 打印自托管服务器(Vercel)的环境变量
liam auth export --mcp # 打印托管 MCP 连接命令和您的标头
liam accounts list # 列出可访问的广告账户
liam targeting search <facet> <query> # 输入 facet 进行实体 URN 的前缀匹配
liam targeting estimate <facet> <urns…> # 一个 facet 的 URN 的受众规模
liam audience upload -n <name> -f <csv> # 清理 + 上传 CSV 为匹配受众
liam audience upload -n <name> -f <csv> --dry-run # 预览清理的 CSV,无上传
liam audience from-salesforce -n <name> -q "<SOQL>" # Salesforce 查询 -> 匹配受众
liam audience status <segmentId> # 匹配状态 + 分辨率大小
liam conversions list # 账户转化(选择一个跟踪)
liam campaigns list [--group <id>] [--all] # 活动组 + 广告组,包括草稿
liam ad list <campaignId> # 广告组中的广告(ID,状态,名称),包括草稿
liam ad delete <creativeId> # 删除广告(创意 + 其直接赞助内容帖子)
liam report summary [-p <period>] # 账户汇总:总数,表现最佳,标志
liam report perf <level> [--parent <id>] # 每个实体的 KPI 行
liam report trend <level> <id> [-b weekly|monthly] # 趋势和变化量
liam launch --brief <brief.json> # 受众 + 分组 + 活动 + 草稿创意
liam competitor ads <advertiser> # 任何公司的广告从公共广告库
# <advertiser> = 名称,公司 ID 或公司 URL
# -k <keyword> -c <countries> -e auto|api|scraper -m <max> --json
liam changelog list [-t <type>] [-i <id>] # 记录的广告变更,最新的在前
liam changelog add -t <type> -i <id> -f <field> --after <v> [-l <label>] # 记录其他地方的变更
liam lift <level> <id> [-w <days>] # 记录的变更的前后性能
```
时间段:`last_7_days`,`last_30_days`,`last_90_days`,`month_to_date`,`last_month`。
`--account` 默认情况下适用于 `defaultAccountId`(如果适用)。
## 变更日志和提升
Liam 保留一个追加日志的变更日志,记录对广告实体的每个变更,以便您可以衡量变更的**提升**:
变更前后性能的差异。
- **存储位置:** `~/.liads/changelog.jsonl`(每行一个 JSON 对象)。一个纯本地文件,无需设置。
使用 `LIADS_CHANGELOG_PATH` 覆盖路径。
- **自动捕获:** Liam 对活动组,活动或创意所做的每个创建/更新操作都会自动记录(在单个 HTTP
阻塞点捕获,因此不会被遗忘)。
- **手动条目:** 记录 Liam 以外的变更(例如在活动管理器中),或附加假设,使用 `liam changelog add`
/ `log_ad_change` 工具。使用 `-l/--label` 命名测试(例如`"outcome-led headline test"`),
并使用 `--tags` 分组相关变更。
- **提升:** `liam lift <level> <entityId>`(或 `compute_lift`)读取该实体的日志,并针对每个变更,
比较 `--window` 天之前(默认为 14 天)与之后相同窗口的性能,报告变更前后的 KPI 和每个指标的变化量。
最近的变更会获得一个受限的,部分的后续窗口。
这是一个**定向前后比较,而不是受控实验**。它受到季节性,LinkedIn 编辑后的学习阶段和任何并发预算变更的影响,
因此请将变化量视为一个信号。设置 `LIADS_NO_CHANGELOG=1` 以禁用自动捕获;日志记录在托管部署(只读文件系统)中也处于关闭状态。
## 配置
本地配置存储在 `~/.liads/config.json`(模式 0600,永远不会进入仓库):
| 字段 | 用途 |
| --- | --- |
| `clientId`,`clientSecret` | LinkedIn 应用凭证(或 `LIADS_CLIENT_ID`/`LIADS_CLIENT_SECRET`) |
| `linkedinVersion` | 固定的 API 版本,例如 `202605` |
| `defaultAccountId` | 命令/简介省略时使用的广告账户 |
| `defaultConversionName` | 为新活动选择的默认转化名称(如果未指定) |
| `mcpAuthToken` | 托管 MCP 端点的 Bearer 机密 |
托管等效项是 `LIADS_*` 环境变量和 `MCP_AUTH_TOKEN`(参见 `.env.example`)。
OAuth 令牌单独存储在 `~/.liads/credentials.json` 中。
## Salesforce 集成
Liam 通过 shell 调用身份验证的 `sf` CLI(`sf data query`)来读取 Salesforce,因此它重用现有的登录,
不需要新的凭证。`audience_from_salesforce`(和 `liam audience from-salesforce`)采用 SOQL 查询,
选择一个电子邮件列,并将结果转换为匹配的受众,从“Salesforce 中标记的账户”到“LinkedIn 定位”。
示例:
```
liam audience from-salesforce -n "Q3 target accounts" \
-q "SELECT Email FROM Contact WHERE Account.Target_List__c = true AND Email != null"
```
## 安全
- 每个活动/创意都创建为**草稿/暂停状态**。激活是一个单独的明确步骤。
- 匹配受众的匹配需要最多 48 小时,一个活动需要约 300 个匹配成员才能投放。
- LinkedIn 不公开人员级别的广告查看数据;交叉引用是账户/分段级别的。
- 机密信息从不进入仓库。本地:`~/.liads`。托管:Vercel 环境变量。
## 许可证
MIT
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器