apify-influencer-brand-collabs

от apify

Обнаруживайте партнёрства брендов и создателей в Instagram, объединяя Apify Actors. Используйте, когда пользователь спрашивает, кто сотрудничает с брендом, с какими брендами работал создатель на платной основе…

npx skills add https://github.com/apify/awesome-skills --skill apify-influencer-brand-collabs

Influencer–Brand Collaborations

Surface Instagram branded-content partnerships by chaining four Apify Actors against Meta's Ad Library. Distilled from the production influencer-brand-collabs mini-tool.

When to use

  • "Who has Nike paid to promote them this quarter?"
  • "What brands does @bellahadid do sponsored posts for?"
  • Auditing an account's branded-content history
  • Building a competitor's influencer roster

Don't use for: organic mentions or tags (use a hashtag/mentions scraper), TikTok or YouTube collabs (different platforms), generic competitor ads (query Meta Ad Library directly).

Inputs to gather

  1. Instagram handle or URL@adidas or https://www.instagram.com/adidas/
  2. Lookback window — days; default 90
  3. Enrichment toggles (each adds cost + time):
    • Content insights — likes, comments, views per collab
    • Profile enrichment — followers, bio, verified status of the other side

Direction (brand vs creator) is detected empirically. Do not ask.

The pipeline

#ActorPurposeRequired
1apify/instagram-profile-scraperResolve the target's Facebook fbid
2apify/brand-collaboration-scraperPull branded-content posts from Meta's Ad Library
3apify/instagram-post-scraper + apify/instagram-reel-scraperEngagement metricsoptional
4apify/instagram-profile-scraper (again)Enrich the result-side partnersoptional

Call each via mcp__claude_ai_Apify__call-actor. Use mcp__claude_ai_Apify__fetch-actor-details first if you've never run one of these and want the exact input schema.

Step 1 — Resolve the target

// actor: apify/instagram-profile-scraper
{ "usernames": ["adidas"] }

Grab fbid from the first item. No fbid → can't query Ad Library → stop and tell the user. Most common cause: private account.

Step 2 — Build the Meta Ad Library URL

https://www.facebook.com/ads/library/branded_content/?id={fbid}&query={username}&target=instagram&start_date={YYYY-MM-DD}&end_date={YYYY-MM-DD}

Date range = the lookback window (default 90 days, ending today).

Step 3 — Fetch collaborations

// actor: apify/brand-collaboration-scraper
{ "startUrls": ["<ad library url>"], "resultsLimit": 10 }

Schema is fixed: every item has creator (always the influencer side) and brandPartners[0] (always the brand side). Do not try to infer direction from these fields.

Step 4 — Detect direction empirically

Count how often the target username appears on each side of the results:

  • target appears more on creator side → target is the influencer; results are the brands
  • target appears more on brandPartners side → target is the brand; results are the creators

⚠️ Do not use isBusinessAccount to infer this. It's unreliable — e.g. @fifaworldcup is a business account but appears as the creator of its own branded content.

Step 5 — (optional) Content metrics

Split collab URLs by type:

  • /reel/... → reel scraper
  • /p/... or /tv/... → post scraper
// actor: apify/instagram-post-scraper
{ "username": ["<post urls>"], "resultsLimit": 1, "dataDetailLevel": "basicData" }

// actor: apify/instagram-reel-scraper
{ "username": ["<reel urls>"], "resultsLimit": 1 }

Match back to collabs via shortcode in the URL: /(p|reel|tv)/([A-Za-z0-9_-]+).

Engagement formula: likesCount + commentsCount + (videoViewCount ?? videoPlayCount ?? 0).

Run the two scrapers in parallel — they're independent.

Step 6 — (optional) Enrich the result side

Collect unique usernames from the side that is not the target. Then:

// actor: apify/instagram-profile-scraper
{ "usernames": [<unique result-side usernames>] }

Only enrich the side the user actually cares about. The input handle is already known.

What to present

After aggregation, surface:

  • Headline counts: total collabs, unique partners, total engagement (if metrics enriched)
  • Top 5 collabs by engagement — only meaningful when content insights were toggled on
  • Content-type mix: Post vs Reel; Reels usually dominate engagement
  • Weekly timeline across the date range — spikes reveal campaign launches
  • Per-partner card (when profiles enriched): handle, full name, followers, verified, category, collabs in this run, avg engagement

For who-questions, the partner list alone is enough. Metrics only matter for which-was-best-questions.

URL parsing

Strip Instagram's _u/ and _n/ deep-link prefixes before extracting the handle:

/instagram\.com\/(?:_u\/|_n\/)?([A-Za-z0-9_.]+)/i

These slugs are not usernames — skip them: explore, reels, stories, direct, accounts, about, p, reel, tv, tags, locations, _u, _n.

Pitfalls

  • Target is private → profile scraper returns no fbid. Bail early with a clear message.
  • No results → try in order: widen the date range, double-check the handle (strip _u/), confirm the account actually runs branded content. Meta only indexes ads they've classified as branded content.
  • Engagement is all zeros → user skipped content enrichment. Offer to re-run with it on.
  • Direction looks wrong in the output → re-check the empirical count. Don't trust isBusinessAccount.
  • Brand collabs with no metrics are still answer-shaped for who questions — don't gate the whole flow on enrichment.

Cost & time

Full 4-actor run: ~3–5 minutes, a few cents of Apify compute. Order of magnitude:

EnrichmentActors runApprox time
None21–2 min
+ Content3–42–4 min
+ Profiles+1+30–60 s

If the user just needs a partner list, skip both toggles.

Reference implementation

Production route this skill was distilled from: mini-tools-main/src/app/api/tools/influencer-brand-collabs/route.ts — full transformation logic, error handling, and slimmed display shapes for each scraper's output.

Больше skills от apify

bug-triage
apify
Выполнять триаж открытых баг-репортов в apify/apify-mcp-server. Анализировать, составлять черновики ответов, получать одобрение, публиковать.
official
dig
apify
Гибкий навык для изучения, планирования и спецификации работы на сервере Apify MCP. НЕ редактируйте исходные файлы — этот навык предназначен только для понимания и планирования.
official
apify-financial-news
apify
Обнаруживайте и извлекайте финансовые новости для отслеживаемых портфельных компаний из 33 проверенных источников первого уровня (Bloomberg, Reuters, FT, WSJ, IntelliNews, ČTK, PAP, BTA,…)
official
apify-actor-development
apify
Создавайте, отлаживайте и развертывайте серверные облачные программы для веб-скрапинга, автоматизации и обработки данных. Поддерживает шаблоны JavaScript, TypeScript и Python с интегрированными библиотеками Crawlee, Playwright и Cheerio для HTTP- и браузерного краулинга. Включает локальное тестирование через apify run с изолированным хранилищем, проверку схемы для входных/выходных данных и развертывание на платформе Apify через apify push. Требуется аутентификация Apify CLI и обязательные метаданные generatedBy в .actor/actor.json для AI...
official
apify-actorization
apify
Преобразуйте существующие проекты в бессерверные Apify Actors с интеграцией SDK для конкретного языка. Поддерживает JavaScript/TypeScript (с Actor.init() / Actor.exit()), Python (асинхронный контекстный менеджер) и любой язык через CLI-обёртку. Предоставляет структурированный рабочий процесс: apify init для создания каркаса, применение SDK-обёртки, настройка схем ввода/вывода, локальное тестирование с apify run, затем развёртывание с apify push. Включает валидацию схем ввода и вывода, контейнеризацию Docker и опциональную оплату за событие...
official
apify-generate-output-schema
apify
Генерирует схемы вывода (dataset_schema.json, output_schema.json, key_value_store_schema.json) для Apify Actor путем анализа его исходного кода. Используйте, когда…
official
apify-ultimate-scraper
apify
Автоматизированный веб-скрапер, выбирающий оптимальные Акторы для 55+ платформ, включая Instagram, TikTok, YouTube, Facebook, Google Maps и другие. Охватывает 55+ предварительно настроенных Акторов на 8 основных платформах с рекомендациями по выбору в зависимости от сценария использования (генерация лидов, поиск инфлюенсеров, мониторинг бренда, анализ конкурентов, исследование трендов). Поддерживает три формата вывода: быстрый чат-дисплей, экспорт в CSV или JSON с настраиваемыми лимитами результатов. Включает многоАкторные шаблоны рабочих процессов для сложных...
official
apify-audience-analysis
apify
We need to translate the given text from English to Russian, preserving the name "apify-audience-analysis" if it appears. The name does not appear in the text, so we don't include it. We must not add any extra commentary, labels, or formatting. Just translate the text as is. The text: "Extract audience demographics, engagement patterns, and behavior data from Facebook, Instagram, YouTube, and TikTok. Supports 18+ specialized Actors covering follower demographics, engagement metrics, comments, and profile analysis across all four platforms Offers three output formats: quick chat display, CSV export, or JSON export for downstream analysis Requires Apify token and mcpc CLI tool; uses dynamic schema fetching to adapt inputs to each Actor's requirements Includes structured..." We need to translate accurately. Note: "Actors" is a term from Apify (likely capitalized). Keep as "Акторы" or "Actors"? Since it's a product-specific term, we might keep it as "Actors" or translate? The instruction says "Preserve product names, protocol names, URLs
official