关于 instagram-marketing
instagram-marketing 是面向 AI Agent 的技能,用于规划 Instagram 内容并使用 Instagram Graph API。它涵盖内容格式、文案与标签建议、发布示例、数据分析和增长策略。
主要功能
- 01Reels、Stories、轮播和动态内容规划
- 02视觉格式与内容规范指导
- 03文案和标签策略建议
- 04Graph API 发布指导
- 05账号与内容数据分析
- 06增长策略与内容组合规划
适用场景
- 01为健身教练制定 Instagram 内容日历
- 02撰写 Reels、轮播和 Stories 的内容方案
- 03编写通过 Graph API 发布轮播帖的脚本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ terminalskills/ skills --skill instagram-marketing安装后在 Claude Code 中输入/instagram-marketing确认已加载。
附带文件_scores.json
详细介绍
Instagram 营销
概述
此技能可帮助 AI Agent 创建表现出色的 Instagram 内容,并集成 Instagram Graph API。内容涵盖内容格式(Reels、Stories、轮播图、信息流帖子)、视觉指南、文案撰写、标签策略、API 发布、分析,以及针对 Instagram 视觉优先、由 Reels 主导的算法制定的增长策略。
指南
平台规则与算法
Instagram 算法(2025-2026 年):
- Reels 为王 — 与静态帖子相比,触达率高出 2-3 倍,是 Instagram 的主要增长杠杆
- 收藏和分享 — 最强信号(比点赞或评论更重要)
- 观看时长 — 完整观看或重复播放的 Reels 会获得大幅推荐
- 内容类型多样化 — 同时发布 Reels、轮播图和 Stories 的账号排名更高
- 标签作用减弱 — 现在更看重类似 SEO 的关键词文案
- 保持规律 — 每天发布 Stories,每周发布 4-7 条信息流帖子
导致触达率下降的因素:
- 转发带水印的 TikTok 视频(Instagram 会主动降低其推荐)
- 低分辨率图片或视频
- 诱导互动(“点赞看第二部分”)
- 长时间不活跃(算法会降低不活跃账号的优先级)
- 文案中使用过多标签(看起来像垃圾内容,精准使用 5-10 个比用 30 个更好)
内容格式
Reels(主要增长形式)
- 时长: 15-60 秒为最佳(最长不超过 90 秒,但较短的视频表现更好)
- 宽高比: 9:16(1080x1920px)— 全屏竖版
- 开场钩子: 前 1-2 秒决定观众是否继续观看。添加文字叠层或令人惊讶的画面
- 字幕: 必不可少 — 85% 以上的观众会静音观看
- 音乐: 使用热门音频以提升算法推荐(查看 Reels 标签页中的热门音效)
- 封面图片: 使用 1080x1920px 的自定义封面,在网格中展示 — 保持简洁并添加文字叠层
- 文字叠层: 字体大、加粗、居中。假设观众用手机观看
- 行动号召: “稍后收藏起来”、“分享给需要的人”、“关注以获取更多[主题]内容”
表现良好的 Reels 类型:
- 教程/操作指南(通过画面展示 3-5 个步骤)
- 改造前后对比
- 热门音频 + 你的细分领域创意
- 一天的生活 / 幕后花絮
- 列表形式并添加文字叠层(“我离不开的 5 个工具”)
- POV / 引发共鸣的场景
轮播图(收藏率最高)
- 幻灯片: 每个轮播图包含 2-10 张图片/视频
- 宽高比: 1:1(1080x1080px)或 4:5(1080x1350px)— 4:5 占据更多屏幕空间
- 第 1 张: 开场钩子 — 标题要醒目,把它当作缩略图来设计
- 第 2-9 张: 每张只表达一个想法,文字要大,设计要简洁
- 最后一张: 行动号召(收藏、分享、关注)+ 你的账号名称/品牌标识
- 滑动提示: 在第 1 张添加“向右滑动 →”或箭头
- 设计一致性: 所有幻灯片使用相同的字体、颜色和布局
轮播图类型:
- 知识分享(分步骤教程)
- 技巧/清单(关于 X 的 10 件事)
- 叙事(跨多张幻灯片讲述故事)
- 改造前后对比
- 数据/统计可视化
Stories(每日互动工具)
- 时长: 每条 Story 时长 15 秒,每天发布 3-7 条
- 宽高比: 9:16(1080x1920px)
- 贴纸: 使用投票、提问、问答、倒计时贴纸(促进互动)
- 链接: 所有账号均可使用(链接贴纸)
- 精选集: 将优质 Stories 保存到个人主页的主题精选集中
- 真实感: Stories 可以不如信息流精致 — 真实胜过完美
信息流帖子(静态图片)
- 宽高比: 1:1(1080x1080px)或 4:5(1080x1350px)
- 质量: 仅使用高分辨率图片,并保持视觉风格/滤镜一致
- 替代文本: 添加替代文本以提升无障碍体验和 SEO 表现(Instagram 会将其编入索引)
文案撰写
[Hook line — stops the scroll, shown before "...more"]
[Empty line for spacing]
[Body — value, story, or insight. Written conversationally.]
[Break long paragraphs into 2-3 sentences max.]
[Include searchable keywords naturally — Instagram now does SEO]
[CTA — question, save prompt, or share prompt]
.
.
.
[Hashtags below dot spacers — or in first comment]
文案规则:
- 第一行要设置钩子(截断前显示的内容)
- 知识类帖子写 150-300 个词(停留时长很重要)
- 采用对话式写法 — Instagram 注重个人化
- 使用换行和空行(不要堆成一整块文字)
- 自然地融入关键词(Instagram 搜索现在基于关键词)
- 使用 5-15 个标签 — 混合细分标签(1 万-50 万条帖子)和中等热度标签(50 万-500 万条帖子)
- 将标签放在文案中或第一条评论中(两种方式都有效,可以测试哪种更好)
Instagram Graph API
身份验证
// Instagram Graph API uses Facebook's OAuth
// Requires: Facebook Page + Instagram Professional account linked
// Step 1: Get Facebook User Access Token via Facebook Login
const FB_AUTH_URL = 'https://www.facebook.com/v19.0/dialog/oauth';
const params = new URLSearchParams({
client_id: process.env.FB_APP_ID,
redirect_uri: process.env.REDIRECT_URI,
scope: 'instagram_basic,instagram_content_publish,instagram_manage_insights,pages_show_list,pages_read_engagement',
response_type: 'code',
});
// Redirect to: FB_AUTH_URL + '?' + params
// Step 2: Exchange code for token
const tokenRes = await fetch(`https://graph.facebook.com/v19.0/oauth/access_token?client_id=${FB_APP_ID}&client_secret=${FB_APP_SECRET}&redirect_uri=${REDIRECT_URI}&code=${code}`);
const { access_token } = await tokenRes.json();
// Step 3: Get long-lived token (60 days)
const longLivedRes = await fetch(`https://graph.facebook.com/v19.0/oauth/access_token?grant_type=fb_exchange_token&client_id=${FB_APP_ID}&client_secret=${FB_APP_SECRET}&fb_exchange_token=${access_token}`);
const { access_token: longLivedToken } = await longLivedRes.json();
// Step 4: Get Instagram Business Account ID
const pagesRes = await fetch(`https://graph.facebook.com/v19.0/me/accounts?access_token=${longLivedToken}`);
const { data: pages } = await pagesRes.json();
const pageId = pages[0].id;
const igRes = await fetch(`https://graph.facebook.com/v19.0/${pageId}?fields=instagram_business_account&access_token=${longLivedToken}`);
const { instagram_business_account: { id: igAccountId } } = await igRes.json();
发布内容
// Publish single image
// Step 1: Create media container
const containerRes = await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
image_url: 'https://example.com/image.jpg', // Must be public URL
caption: 'Your caption here\n\n#hashtag1 #hashtag2',
access_token: longLivedToken,
}),
});
const { id: containerId } = await containerRes.json();
// Step 2: Publish
await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media_publish`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
creation_id: containerId,
access_token: longLivedToken,
}),
});
// Publish carousel
const mediaIds = [];
for (const imageUrl of imageUrls) {
const res = await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
image_url: imageUrl,
is_carousel_item: true,
access_token: longLivedToken,
}),
});
const { id } = await res.json();
mediaIds.push(id);
}
const carouselRes = await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
media_type: 'CAROUSEL',
children: mediaIds,
caption: 'Carousel caption...',
access_token: longLivedToken,
}),
});
const { id: carouselId } = await carouselRes.json();
await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media_publish`, {
method: 'POST',
body: JSON.stringify({ creation_id: carouselId, access_token: longLivedToken }),
});
// Publish Reel
const reelContainer = await fetch(`https://graph.facebook.com/v19.0/${igAccountId}/media`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
media_type: 'REELS',
video_url: 'https://example.com/reel.mp4', // Public URL, mp4, H.264
caption: 'Reel caption...',
share_to_feed: true,
cover_url: 'https://example.com/cover.jpg', // Optional custom cover
access_token: longLivedToken,
}),
});
分析
// Account insights
const insightsRes = await fetch(
`https://graph.facebook.com/v19.0/${igAccountId}/insights?metric=impressions,reach,profile_views,follower_count&period=day&since=${startDate}&until=${endDate}&access_token=${longLivedToken}`
);
// Media insights
const mediaInsightsRes = await fetch(
`https://graph.facebook.com/v19.0/${mediaId}/insights?metric=impressions,reach,engagement,saved,shares&access_token=${longLivedToken}`
);
// Reel insights
const reelInsightsRes = await fetch(
`https://graph.facebook.com/v19.0/${reelId}/insights?metric=plays,reach,likes,comments,shares,saved,total_interactions&access_token=${longLivedToken}`
);
增长策略
发布计划: 每天 1 条 Reel + 每周 2-3 条轮播帖 + 每天发布 Story
内容组合:
- 40% Reel(增长驱动力——触达非关注者)
- 30% 轮播帖(收藏利器——培养忠诚度)
- 20% Story(日常互动,展现真实感)
- 10% 信息流帖子(美观、公告)
话题标签策略:
- 每条帖子使用 5-15 个话题标签
- 组合:5 个小众标签(帖子数 <100K)、5 个中等热度标签(100K-1M)、3-5 个热门标签(1M+)
- 为你的社群创建一个品牌专属话题标签
- 在 Instagram 的探索页面搜索关键词,调研话题标签
示例
示例 1:为健身教练制定 Instagram 内容策略
用户提示词:“我是在德克萨斯州奥斯汀市的一名私人教练,有 1,200 名关注者。请规划一份为期 2 周的 Instagram 内容策略,帮助我扩大受众并获得更多教练客户。”
Agent 将创建一份为期 14 天的内容日历,结合 Reel、轮播帖和 Story。第 1 周:周一——Reel《你在健身房做错的 3 个动作》(使用热门音频,时长 30 秒,通过文字叠加展示正确姿势);周三——轮播帖《备餐指南:5 份每份不到 $8 的高蛋白午餐》(10 张幻灯片,4:5 比例,第 1 张提示左右滑动);周五——Reel《客户蜕变:Sarah 在 12 周内减掉 22 磅》(前后对比画面配旁白)。第 2 周沿用相同的模式,主题则换成新的内容。每天还会发布 3-5 条 Story(晨间锻炼片段、中午投票“接下来我应该发什么?”,以及下午的轮播帖预告)。标题包含富含关键词的吸引语,例如“别再浪费时间做卷腹练腹肌”,并配上“下次去健身房时记得收藏这条”的行动号召。话题标签:5 个小众标签(#AustinFitness #PersonalTrainerAustin)、5 个中等热度标签(#FitnessTips #GymMotivation)、3 个热门标签(#Fitness #Workout)。
示例 2:通过 Instagram Graph API 发布轮播帖
用户提示词:“编写一个 Node.js 脚本,通过 Graph API 向我的 Instagram 商业账号发布一个包含 5 张图片的轮播帖。这些图片托管在我的 CDN 上,地址为 cdn.brightbody.co/posts/。”
Agent 将创建一个 Node.js 脚本,使用 Instagram Graph API 和长期有效的 Facebook 访问令牌。脚本遍历 5 个图片 URL(例如,https://cdn.brightbody.co/posts/slide-1.jpg 到 slide-5.jpg),通过 POST /{ig-account-id}/media 并设置 is_carousel_item: true 来创建单独的媒体容器,收集返回的容器 ID,然后创建轮播容器,并设置 media_type: CAROUSEL、children 数组,以及包含话题标签的说明文字。最后,脚本通过 POST /{ig-account-id}/media_publish 并传入轮播容器 ID 来发布内容。脚本会为每次 API 调用添加错误处理,并在创建容器的请求之间延迟 3 秒,以避免触发速率限制。
指南
- 优先采用 Reels 策略——这是 Instagram 在 2025-2026 年希望你用来增长的方式
- 切勿发布带水印的 TikTok 视频——Instagram 会降低其推荐。请重新导出并去掉水印
- 轮播帖采用 4:5 比例(1080x1350px)——最大限度占用信息流空间
- 为每张图片添加替代文本——这有助于无障碍访问,Instagram 也会将其用于搜索
- 在 Story 中使用 Instagram 原生的文字和贴纸工具——算法更偏好原生创作
- 在首条评论中添加话题标签,还是放在说明文字中——两种方式都测试,没有哪一种普遍更好
- 网格规划:使用 Preview 或 Later 应用,规划帖子组合后的整体效果
- 回复私信——私信互动是重要的算法信号
- 使用“协作者”功能(标记共同作者),可以触达双方受众
- 收藏数比点赞数更重要——创作值得收藏的内容