Следen

Почему в Instagram нет даты подписки

Это самый частый вопрос про списки подписок. Короткий ответ: даты нет нигде — ни в приложении, ни на сайте, ни в официальном интерфейсе для разработчиков. Ниже разберём, почему так, что люди пробуют вместо этого и что из этого действительно работает.

Короткий ответ

Instagram не показывает, когда один аккаунт подписался на другой. Этой информации нет в интерфейсе приложения, нет на сайте и нет в официальном Graph API, которым пользуются разработчики. Сторонние сервисы работают с теми же данными, что и вы, — значит, взять дату им тоже неоткуда.

Если сервис показывает «подписался 14 марта» — эта дата выдумана. Не оценочно, а буквально: источника для неё не существует.

Что люди пробуют и почему это не работает

Вопрос задают годами, и вокруг него накопились полурешения. Разберём их по одному — каждое что-то даёт, но ни одно не даёт даты.

Лента уведомлений

Когда на вас подписываются, приходит уведомление, и рядом стоит время: «2 ч.», «3 нед.». Это ближе всего к дате — но с тремя оговорками.

Во-первых, работает только для ваших собственных подписчиков: о том, на кого подписался кто-то другой, вам никто не сообщит. Во-вторых, показывается относительное время, а не дата, и чем старше событие, тем грубее округление. В-третьих, лента уведомлений не бесконечна: старые записи из неё уходят, и восстановить их нельзя.

То есть способ отвечает на вопрос «кто подписался на меня на этой неделе» и совсем не отвечает на «когда он подписался на неё».

Отметка в начале переписки

В личных сообщениях, если прокрутить в самое начало, встречается надпись «Вы подписаны друг на друга». Её часто принимают за отметку о времени.

Это не событие, а текущий статус: он показывает, что взаимная подписка есть прямо сейчас. Даты в нём нет, и он меняется, если кто-то отпишется. К моменту подписки эта надпись отношения не имеет.

«Почему вы видите эту публикацию»

В меню поста есть пункт, объясняющий, почему запись попала в ленту. Иногда там встречаются формулировки про недавние подписки, и это порождает надежду.

На деле пункт объясняет работу ленты, а не историю подписок: он про то, почему показали конкретную публикацию. Даты подписки там нет и не появится.

Сторонние сервисы, обещающие даты

Самый частый случай — сервис показывает уверенную дату и выглядит убедительно. Обычно за неё выдают одно из двух: момент, когда сервис сам впервыезаметил эту подписку в своих регулярных проверках, либо просто сгенерированное число. Первое хотя бы честно называется «замечено тогда-то», второе — обман.

Коротко: что даёт каждый способ

СпособЧто показываетДля чужого профиля
Лента уведомленийОтносительное время, только новые подписчикиНет
Отметка в перепискеТекущий статус взаимности, без времениНет
«Почему вы видите публикацию»Причину показа поста в лентеНет
Порядок в спискеКто добавлен последнимиДа
Два снимка спискаЧто изменилось между проверкамиДа

Что существует вместо даты

Порядок. При обращении к списку подписок он возвращается не по алфавиту и не случайно — записи идут в порядке добавления, и свежие подписки находятся ближе к началу.

Практическая разница простая: узнать «когда» нельзя, а узнать «кто последний» — можно. И спрашивают почти всегда именно второе. Вопрос «когда он на неё подписался» в девяти случаях из десяти означает «недавно или давно» — а на это порядок отвечает.

Почему в приложении список выглядит перемешанным

Частая жалоба: «открываю подписки — там каша, ни алфавита, ни хронологии». Причин две, и они разные.

Своё и чужое сортируется по-разному. Для вашего собственного списка приложение подмешивает алгоритм: наверх поднимаются те, с кем вы чаще переписываетесь и чьи публикации смотрите. Instagram официально порядок не документирует, но эффект заметен — список выглядит отсортированным «по близости», а не по времени. Именно поэтому свой список кажется хаотичным, хотя данные под ним упорядочены.

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

Мы показываем список в том порядке, в котором его отдаёт Instagram при прямом обращении, — без алгоритмической пересортировки и без обрывов подгрузки. Поэтому верх нашего списка и верх списка в приложении могут не совпадать: у нас там свежие подписки, в приложении — частые собеседники.

Почему у публикаций дата есть, а у подписки нет

Вопрос закономерный: у поста дата отображается, у комментария тоже, у истории видно, сколько часов назад она выложена. Почему связь между аккаунтами — исключение?

Разница в том, что публикация — это объект, у неё есть автор, содержимое и момент создания, и всё это показывается по определению. Подписка же — это связь между двумя аккаунтами, и наружу отдаётся только сам факт её существования: есть или нет.

Момент создания связи внутри системы почти наверняка хранится — иначе список нельзя было бы отдавать в порядке добавления. Но ни в интерфейсе, ни в официальном API это поле не публикуется. Именно поэтому порядок мы видим, а дату — нет: наружу выходит следствие, а не сама величина.

Как честно привязать подписку ко времени

Способ есть, и он не требует дат: два снимка списка с разницей во времени. Всё, что есть во втором и отсутствует в первом, добавлено между двумя проверками.

  1. Сделайте отчёт по профилю сейчас и сохраните выгрузку в CSV.
  2. Повторите через неделю или месяц — как вам нужно.
  3. Сравните два файла. Строки, которых не было в первом, — это подписки, появившиеся за период.

Сравнить можно в любой таблице. В Excel или Google Таблицах достаточно функции ВПР: подставьте ники из нового файла в старый и отберите те, для которых совпадения не нашлось. Это и есть новые подписки.

Результат — не календарная дата, а промежуток: «появился между первым и восьмым числом». Зато это факт, а не выдуманное число. И работает он в обе стороны: те, кто был в первом файле и пропал во втором, — отписались.

Почему мы не добавим «хотя бы примерные» даты

Потому что примерная дата, взятая из ниоткуда, — это та же выдумка, просто аккуратнее оформленная. Человек покупает отчёт ради одного конкретного вопроса и имеет право заранее знать, что он получит, а чего не получит никогда.

Мы могли бы начать запоминать, когда сами впервые увидели каждую подписку, и называть это датой. Но для профиля, который проверяют впервые, такая «дата» совпадала бы с датой проверки — то есть не значила бы ничего. Честнее показывать порядок и прямо говорить, что это порядок.

Что это значит на практике

  • Нужны свежие подписки — смотрите верх списка. Достаточно одного отчёта.
  • Нужно понять, что изменилось за период — делайте два отчёта и сравнивайте выгрузки.
  • Нужна точная дата — её не существует. Ни у нас, ни у кого-либо ещё.
  • Речь о своих подписчиках за последние дни — посмотрите ленту уведомлений, там будет относительное время.
Посмотреть, на кого профиль подписался последнимиПроверить профиль