Перейти к содержимому
Socialift
Руководство

Статистика Instagram через API: аккаунт и публикации

Статистика Instagram в API доступна на двух уровнях: аккаунт (GET /{ig-user-id}/insights) и публикация (GET /{ig-media-id}/insights). В 2025 году Meta отключила метрики impressions и plays и ввела вместо них views. API работает только с аккаунтами Business и Creator, данные могут запаздывать до 48 часов, а демография возвращает только 45 самых крупных значений.

Обновлено:

Коротко: как получить статистику Instagram через API

Для метрик аккаунта отправляете запрос к /{ig-user-id}/insights с metric, period=day и metric_type=total_value, для метрик публикации — к /{ig-media-id}/insights. Разрешение зависит от способа входа: при входе через Instagram — instagram_business_manage_insights, через Facebook — instagram_manage_insights. Личные аккаунты не поддерживаются — только Business или Creator.

Если в запросе аккаунта не указать since и until, API смотрит последние 24 часа. Когда данных нет, API возвращает не 0, а пустой набор — не записывайте это в отчёт как ноль.

Способ входа: хост и разрешения

Способ входа: хост и разрешения — Таблица возможностей по платформам
Вход через InstagramВход через Facebook
Хостgraph.instagram.comgraph.facebook.com
Страница FacebookНе нужнаInstagram-аккаунт должен быть привязан к странице
Разрешенияinstagram_business_basic, instagram_business_manage_insightsinstagram_basic, instagram_manage_insights, pages_read_engagement
Суммы вместе с рекламойНетtotal_likes, total_comments, total_views
Socialift SDKInstagram(app_id=..., app_secret=...)Instagram.via_facebook(app_secret=...) и ig_user_id

При входе через Facebook, если роль пользователя на странице выдана через Business Manager, документация Meta дополнительно указывает разрешения ads_management и ads_read.

Метрики уровня аккаунта

Список из актуального справочника Meta. Обычные метрики запрашиваются с period=day.

Метрики уровня аккаунта — Таблица возможностей по платформам
МетрикаЧто измеряетBreakdown
viewsСколько раз контент (reels, посты, stories) воспроизводился или показывалсяfollower_type, media_product_type
reachУникальные аккаунты, видевшие контент хотя бы раз, включая рекламуmedia_product_type, follow_type
accounts_engagedАккаунты, взаимодействовавшие с контентом, включая рекламунет
total_interactionsВсе взаимодействия с постами, stories, reels, видео и эфирамиmedia_product_type
likes, comments, saves, sharesОтдельные типы взаимодействийmedia_product_type
replies, repostsОтветы и репостынет
follows_and_unfollowsПодписки и отпискиfollow_type
profile_links_tapsНажатия на адрес, звонок, email и сообщениеcontact_button_type
follower_demographics, engaged_audience_demographicsДемография подписчиков и вовлечённой аудиторииage, city, country, gender

естьнет

Все метрики работают с metric_type=total_value, reach поддерживает ещё и time_series. Демография запрашивается с period=lifetime и timeframe.

Метрики публикаций по типам контента

Набор зависит от media_product_type. Если запросить неподходящую метрику, Graph API отклонит весь запрос.

Метрики публикаций по типам контента — Таблица возможностей по платформам
МетрикаFEEDREELSSTORY
viewsестьестьесть
reachестьестьесть
total_interactionsестьестьесть
shares, repostsестьестьесть
likes, commentsестьестьнет
savedестьестьнет
profile_visits, profile_activity, followsестьнетесть
ig_reels_avg_watch_timeнетестьнет
navigation, replies, link_clicksнетнетесть

естьнетТаблицу можно прокрутить вбок

likes и comments считают только органику. При входе через Facebook есть total_likes, total_comments и total_views, которые включают взаимодействия с рекламой.

Изменения 2024–2025: что отключили и что добавили

Именно поэтому код из старых туториалов перестал работать.

Изменения 2024–2025: что отключили и что добавили — Таблица возможностей по платформам
МетрикаЧто произошлоКогда
impressions (аккаунт и публикации)Отключена, замена — viewsВ v22.0 с 21 января 2025, во всех версиях с 21 апреля 2025
plays, clips_replays_count, ig_reels_aggregated_all_plays_count (публикации)Отключены, замена — viewsТе же даты
video_views (публикации)ОтключенаВ v21.0 со 2 октября 2024, во всех версиях с 8 января 2025
profile_views, website_clicks, email_contacts, phone_call_clicks, text_message_clicks, get_direction_clicks (аккаунт, time series)ОтключеныТе же даты (v21.0)
last_14_days, last_30_days, last_90_days, prev_month (timeframe демографии аудитории)ОтключеныВо всех версиях с 19 августа 2024
views (аккаунт и публикации)Добавлена21 января 2025
reposts, reels_skip_rate, facebook_views, crossposted_viewsДобавлены3 декабря 2025

Для публикаций, созданных после 2 июля 2024 года, impressions перестала работать ещё раньше.

Демография: кто подписан и кто вовлечён

follower_demographics (подписчики) и engaged_audience_demographics (взаимодействовавшие с контентом) запрашиваются с period=lifetime, metric_type=total_value, breakdown (age, city, country или gender) и timeframe. timeframe имеет приоритет над since/until; безопасные значения — this_week и this_month.

Meta возвращает только 45 самых крупных значений. Учитывайте это при расчёте долей: например, города за пределами топ-45 в ответ просто не попадут.

У небольших аккаунтов есть ограничения: для аккаунтов с менее чем 100 подписчиками Meta не отдаёт follower_count и online_followers, а демография может прийти пустой. Метод ig.demographics в SDK Socialift в таком случае не выбрасывает исключение: для этого разреза вернётся available: False с причиной от Meta, остальные разрезы придут как обычно.

Период, задержка и срок хранения данных

Данные могут запаздывать до 48 часов: если вчерашняя цифра завтра изменилась, это не ошибка. Перезагружайте последние два дня при каждой синхронизации.

Метрики публикаций хранятся до 2 лет. Метрики stories доступны только 24 часа — собирайте их, пока история жива. Метрики stories со значением меньше 5 возвращают ошибку с кодом 10, а для отдельных элементов внутри альбома статистики нет вовсе.

Для отчётов за длинный период надёжнее всего каждый день снимать снапшот и хранить в своей базе. Метод ig.insights в SDK Socialift ограничивает период 30 днями и не пускает until в будущее — длинные периоды запрашивайте кусками по 30 дней.

Как настроить сбор статистики: 5 шагов

  1. Проверьте тип аккаунта

    Аккаунт Instagram должен быть Business или Creator. Для входа через Facebook он привязывается к странице Facebook.

  2. Запросите разрешения на статистику

    Вход через Instagram: instagram_business_basic и instagram_business_manage_insights. Через Facebook: instagram_basic, instagram_manage_insights, pages_read_engagement. Для чужих аккаунтов они требуют App Review.

  3. Собирайте метрики аккаунта ежедневно

    Запрашивайте views, reach, accounts_engaged, total_interactions и другие с period=day и сохраняйте каждый день.

  4. Метрики публикаций — по типу контента

    Сначала узнайте media_product_type (FEED, REELS, STORY), затем запросите подходящий набор. Stories собирайте в течение 24 часов.

  5. Демографию — раз в неделю или месяц

    Запрашивайте follower_demographics с timeframe=this_month отдельно для каждого breakdown и сохраняйте результат с датой.

Python: аккаунт, публикации и демография

Вход через Facebook: токен страницы и ID Instagram-аккаунта.

instagram_stats.py
import asyncio, os
from datetime import date, timedelta
from socialift import Instagram

async def main() -> None:
    token = os.environ["PAGE_TOKEN"]
    ig_user_id = os.environ["IG_USER_ID"]
    async with Instagram.via_facebook(app_secret=os.environ["FACEBOOK_APP_SECRET"]) as ig:
        week = await ig.insights(
            token, ig_user_id=ig_user_id, since=date.today() - timedelta(days=7), until=date.today()
        )
        print(week["since"], week["until"], week["metrics"])

        for post in await ig.media(token, ig_user_id=ig_user_id, limit=5):
            print(post["id"], post["media_type"], await ig.media_insights(post["id"], token))

        demo = await ig.demographics(token, ig_user_id=ig_user_id)
        for cut, data in demo.items():
            print(cut, data["values"] if data["available"] else data["reason"])

asyncio.run(main())

При входе через Instagram клиент создаётся через Instagram.from_env(), токен — пользовательский токен Instagram, а ig_user_id необязателен.

Если у публикации нет статистики (старый пост или истёкшая история), media_insights не бросает исключение, а возвращает пустой словарь.

Что именно запрашивает SDK Socialift

Важно знать, какие метрики запрашивают методы, чтобы правильно строить отчёт.

Что именно запрашивает SDK Socialift — Таблица возможностей по платформам
МетодЗапрос к Graph APIВозвращает
ig.insights/{ig-user-id}/insights: reach, profile_views, website_clicks, accounts_engaged, total_interactions; period=day, metric_type=total_value. По умолчанию последние 30 дней, период не больше 30 днейsince, until и словарь metrics
ig.media_insightsСначала media_type и media_product_type, затем подходящий набор. Фото: reach, likes, comments, saved, shares, total_interactions, profile_visits. Видео и Reels: те же + views (без profile_visits). Карусель: reach, likes, comments, saved, shares, total_interactions. Story: reach, replies, navigation, total_interactions{метрика: значение} или пустой словарь
ig.demographicsfollower_demographics, period=lifetime, timeframe=this_month; разрезы отдельными запросами: age,gender, city, countryДля каждого разреза available и values или reason
Примечания и ограничения

Внимание: в актуальном списке метрик аккаунта Meta нет profile_views и website_clicks (их time series отключили в январе 2025). Если ig.insights вернёт ошибку метрики, причина, вероятно, в этом.

Советы для системы отчётности

  • Используйте views вместо impressions и plays — обновите старые дашборды.
  • Не записывайте пустой ответ как 0: это «нет данных».
  • Ежедневно перезагружайте последние 48 часов — цифры могут быть не финальными.
  • Собирайте статистику stories в течение 24 часов.
  • Храните ежедневные снапшоты у себя, длинные периоды запрашивайте частями.
  • Отдельно обрабатывайте нехватку разрешений (PermissionError) и проблемы с токеном (AuthError).

← Назад в блог

Частые вопросы

Почему в Instagram API не работает impressions?

Meta отключила impressions в v22.0 с 21 января 2025 года, а во всех версиях — с 21 апреля 2025 года. Используйте метрику views: она есть и для аккаунта, и для публикаций.

Чем views отличается от reach?

views — сколько раз контент воспроизводился или показывался (один человек может посчитаться несколько раз). reach — число уникальных аккаунтов, видевших контент хотя бы раз.

Можно ли получить статистику личного аккаунта Instagram через API?

Нет. Insights API работает только с аккаунтами Business и Creator. Переключите аккаунт на профессиональный в настройках приложения Instagram.

Почему демография приходит пустой?

Чаще всего аккаунт слишком маленький или выбран неподдерживаемый timeframe. Используйте this_week или this_month, запрашивайте каждый breakdown отдельно и помните, что в ответе максимум 45 значений.

Можно ли получить статистику stories позже?

Нет, метрики stories доступны только 24 часа. Запланируйте сбор в момент публикации истории и сохраняйте результат в свою базу.

За какой период можно получить статистику?

Метрики публикаций Meta хранит до 2 лет. Для длинных периодов на уровне аккаунта надёжнее ежедневно снимать и хранить собственные снапшоты.

Источники

  1. Meta: Instagram User Insights
  2. Meta: Instagram Media Insights
  3. Meta: Instagram Platform changelog
  4. Meta: Graph API v21.0 changelog

Связанные страницы