7 мин чтенияИнтеграции

Отслеживание ссылок в Mixpanel: клики по коротким ссылкам как события

Отслеживание ссылок в Mixpanel через Elido: каждый клик по короткой ссылке становится серверным событием link_click. Настройка, свойства, ограничения идентичности и как это проверить.

Marius Voß
DevRel · edge infra
Диаграмма отслеживания ссылок в Mixpanel: клик по короткой ссылке покидает редирект Elido как серверное событие link_click и попадает в раздел Events в Mixpanel

Отслеживание ссылок в Mixpanel через Elido работает на сервере и однонаправленно: каждый раз, когда кто-то кликает по одной из ваших коротких ссылок, Elido отправляет событие link_click на endpoint отслеживания Mixpanel с вашим токеном проекта. Событие несет slug ссылки, ID ссылки, страну и устройство посетителя, целевой адрес, на который его отправили, и метку времени. В браузере посетителя ничего не выполняется, поэтому блокировщики рекламы и баннеры согласия его не затрагивают.

Загвоздка - в идентичности. Каждое событие привязано к ссылке, а не к человеку, а значит вы можете весь день считать и сегментировать клики в Mixpanel, но не можете по одному этому событию проследить за кликнувшим человеком дальше в свой продукт. Я покажу, для чего это хорошо подходит, как это настроить, как проверить в разделе Events и в каких местах я бы взяла что-то другое.

Если вы еще решаете, что размечать, прежде чем переходить к этому, опорное руководство сквозное отслеживание UTM - лучшая отправная точка. Mixpanel видит только то, что несет ссылка.

Что Elido отправляет в Mixpanel при каждом клике

Один клик - одно событие. Пересыльщик формирует пакет из одного события и отправляет его POST-запросом на /track хоста приема, соответствующего настройке Data residency интеграции (api.mixpanel.com для US, api-eu.mixpanel.com для EU, api-in.mixpanel.com для India), авторизуясь токеном внутри свойств - именно так API приема Mixpanel ожидает серверные события.

Вот полный payload, урезан только токен:

[
  {
    "event": "link_click",
    "properties": {
      "token": "<your project token>",
      "distinct_id": "elido-link-4711",
      "workspace_id": 12,
      "link_id": 4711,
      "slug": "spring-26",
      "country": "DE",
      "device": "mobile",
      "destination": "https://shop.example/spring?utm_source=newsletter",
      "time": 1790000000,
      "ip": "203.0.113.24"
    }
  }
]

Это все. Короткий список, и это сделано намеренно.

СвойствоЧто оно хранитЧто с этим делать в Mixpanel
slug / link_idКакая короткая ссылка была кликнутаИзмерение для разбивки в любом отчете
destinationURL, на который отправлен этот посетитель, после правил маршрутизацииОпределить, какой географический или девайс-вариант сработал
country, deviceОпределены на редиректеСегментация без опоры на собственную догадку Mixpanel
ipАдрес посетителяMixpanel определяет город и регион, затем отбрасывает
distinct_idelido-link-<link_id>Прочитайте раздел об идентичности перед использованием Uniques

Стоит знать две детали. destination - это уже разрешенный адрес, так что если умная ссылка отправляет владельцев iPhone в App Store, а всех остальных - на ваш сайт, вы увидите оба URL. И UTM-теги путешествуют только внутри этой строки назначения; отдельных свойств utm_source или utm_campaign нет, так что если вы хотите видеть их как колонки, вам понадобится производное свойство в Mixpanel. Это единственное, что я бы настроила в первый же день.

Очевидные боты - краулеры, которые сами объявляют себя в user agent, - отфильтровываются на редиректе и никогда не доходят до Mixpanel.

Настройка интеграции с Mixpanel

Вся настройка - это два поля. Чтобы отправлять события кликов в Mixpanel, вам нужен проект Mixpanel и его токен проекта, который находится в Project Settings в Mixpanel; токен - это ключ для записи, предназначенный для встраивания, так что вставить его в стороннее приложение - это нормально. Не вставляйте API-секрет - это другая строка, и пересыльщик использует не ее.

  1. В вашем рабочем пространстве Elido откройте Integrations и выберите карточку Mixpanel.
  2. Нажмите Connect Mixpanel, вставьте токен в поле Project Token и выберите Data residency: US (по умолчанию), EU или India, в соответствии со значением Data Residency в настройках вашего проекта Mixpanel. Сохраните. Elido шифрует токен на хранении и никогда не показывает вам его полностью снова.
  3. Подождите несколько минут. Настройки интеграции рабочего пространства недолго кешируются на стороне пересылки, так что первые клики после сохранения могут еще не отправиться.
  4. Кликните по одной из ваших ссылок с телефона.

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

Проверка раздела Events, прежде чем чему-либо доверять

То, что раньше в Mixpanel называлось Live View, теперь называется разделом Events, в левой навигации под Data, и руководство Mixpanel по отладке рекомендует именно его как первую точку проверки для такой задачи. Откройте его, отфильтруйте по link_click, затем кликните по своей короткой ссылке с телефона, который не в офисном Wi-Fi.

Путь клика по короткой ссылке в Mixpanel: посетитель кликает по ссылке, редирект Elido отвечает первым и фиксирует клик, пересыльщик отправляет событие link_click на endpoint отслеживания Mixpanel для региона Data residency, заданного в Elido (US, EU или India), с одной повторной попыткой, и событие появляется в разделе Events Mixpanel

Вы должны увидеть событие в течение нескольких секунд. Разверните его и проверьте три вещи: slug совпадает со ссылкой, по которой вы кликнули, country соответствует тому, где действительно находится телефон, а собственные город и регион Mixpanel заполнены на основе ip. Если город показывает дата-центр, ваш тест прошел через VPN.

Кнопка Test connection в панели интеграции отправляет одно событие link_click, помеченное elido_test: true, и показывает ответ Mixpanel под кнопкой. Это полезно, но не доказательство: endpoint приема Mixpanel принимает любой токен и никогда не проверяет резидентность, так что зеленый результат при неверном токене или неверном регионе все равно означает, что в ваш проект ничего не попадает. Событие, которое вы видите пришедшим от реального клика, - единственное доказательство, которое я бы приняла.

Почему distinct_id привязан к ссылке, и что это ломает

Вот ограничение идентичности, сказанное прямо. distinct_id - это elido-link- плюс ID ссылки, так что каждый клик по spring-26 принадлежит одному синтетическому «пользователю» Mixpanel.

Distinct_id Mixpanel для каждой ссылки: три разных посетителя кликают по одной и той же короткой ссылке, и все три события link_click разделяют distinct_id elido-link-4711, так что Mixpanel засчитывает одного пользователя, в то время как SDK Mixpanel на посадочной странице видит три отдельных устройства с UTM-тегами

Суммарные показатели работают. Разбивки по slug, стране, устройству и назначению работают, как и тренды во времени. Ломаются три вещи:

  • Uniques по link_click считают ссылки, а не людей. Кампания с 40 000 кликов по двум ссылкам покажет двух уникальных пользователей.
  • Воронки, начинающиеся с link_click и заканчивающиеся вашим событием регистрации, не свяжутся, потому что регистрация принадлежит другому distinct_id.

Есть и третья проблема, с которой большинство команд никогда не сталкивается. Mixpanel применяет лимиты hot shard в 200 тысяч событий на distinct_id в день, и сверх этого события переименовываются в $hotshard_events. Одна по-настоящему завирусившаяся ссылка может пересечь эту черту, и, поскольку ID привязан к ссылке, под удар попадает именно она.

Почему не ID на посетителя? Потому что редирект не знает, кто такой посетитель, и я бы предпочла, чтобы он не устанавливал cookie на домене, который посетитель никогда не выбирал посещать. Честный компромисс.

Как связать клики по коротким ссылкам с пользователями рабочим способом

Работающий паттерн использует обе половины для того, в чем каждая хороша. Пусть серверное событие Elido дает вам полный счетчик кликов, включая клики от людей, которые ушли до загрузки вашей страницы. Пусть SDK Mixpanel на вашей посадочной странице занимается идентичностью.

Поставьте UTM-теги на целевом URL. JavaScript-библиотека Mixpanel по умолчанию отслеживает параметры UTM и записывает значения первого касания в профиль, так что когда этот посетитель позже регистрируется и вы вызываете identify, кампания закрепляется за реальным человеком. Тогда клик по короткой ссылке и просмотр посадочной страницы делят значение кампании, а не ID пользователя, и вы объединяете их по utm_campaign в отчете. Это объединение на уровне кампании, что грубее, чем на уровне пользователя, и я думаю, что для этих данных это все равно правильный уровень.

Хотите видеть суммарные клики и сессии посадочной страницы рядом друг с другом? Ожидайте расхождений; статья клики по коротким ссылкам против сессий GA4 объясняет, почему один и тот же разрыв проявляется в любом инструменте аналитики, включая Mixpanel.

Если это как раз та настройка, которой вам не хватало, подключите рабочее пространство и проведите следующую кампанию через брендированные ссылки.

Где это сегодня не дотягивает

Три пробела, отсортированные по тому, насколько вероятно они вас укусят.

IP-адрес посетителя путешествует в каждом событии. При EU-резидентности он отправляется на EU-хост приема; при US по умолчанию - на US-endpoint, и руководство по резидентности данных в ЕС разбирает, как это взвесить. Что касается именно Mixpanel, включая проверку резидентности вашего проекта, см. Резидентность данных Mixpanel в ЕС.

Доставка работает по принципу «максимальных усилий». Неудачный POST получает одну повторную попытку через секунду, а затем отбрасывается, а у событий нет $insert_id, так что повтор после медленного успеха может привести к двойному счету.

В событии нет ни referrer, ни браузера, а клики, которые редирект помечает как подозрительные, все равно пересылаются. Загляните в дашборд аналитики кликов, когда вам это понадобится.

Конверсии в это не входят. Отслеживайте выручку там, где живет ваш ID пользователя.

По теме в блоге

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

Как отправлять события кликов в Mixpanel с короткой ссылки?

Вставьте токен вашего проекта Mixpanel в интеграцию Mixpanel в рабочем пространстве Elido и сохраните. С этого момента каждый клик по ссылке в этом рабочем пространстве отправляется на сервер Mixpanel как событие link_click, со slug, ID ссылки, страной, устройством и назначением в качестве свойств. На редиректе не выполняется никакой JavaScript.

Какое имя события использует Elido в Mixpanel?

Событие называется link_click, и имя фиксировано. Стройте отчеты именно на этом имени. Если вы видите упоминание другого имени события на старых страницах Elido, доверяйте тому, что реально приходит в ваш раздел Events, потому что это и есть payload, который на самом деле отправляет пересыльщик.

Может ли Mixpanel привязать клик по короткой ссылке к известному пользователю?

Не по одному только пересланному событию. Elido задает distinct_id как одно значение на каждую ссылку, так что каждый клик по одной и той же ссылке выглядит как один и тот же пользователь Mixpanel. Чтобы дойти до конкретного человека, поставьте UTM-теги на целевом адресе и позвольте SDK Mixpanel на вашей посадочной странице их подхватить, а затем идентифицируйте пользователя там как обычно.

Почему мои клики Elido не появляются в Mixpanel?

Проверьте три вещи по порядку. Токен должен быть токеном проекта из правильного проекта, а не API-секретом. Дайте несколько минут после сохранения, прежде чем будет переслан первый клик. Наконец, если ваш проект Mixpanel использует EU или India Data Residency, задайте такую же резидентность в интеграции Elido: события, отправленные не на тот хост приема, вообще не принимаются.

Пересылает ли Elido в Mixpanel еще и конверсии?

Интеграция с Mixpanel покрывает только клики; отдельного события конверсии в payload сегодня нет. Для выручки отслеживайте покупку из собственного бэкенда или через SDK Mixpanel с вашим реальным ID пользователя. Именно там живет идентичность, так что конверсия попадет на правильный профиль, а не на подставной профиль конкретной ссылки.

Хранит ли Mixpanel IP-адрес посетителя, который отправляет Elido?

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

Попробуйте Elido

Вставьте URL - получите короткую ссылку

Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.

Бесплатно, без регистрации · 2 в день

Попробуйте Elido

URL-сокращатель с хостингом в ЕС: собственные домены, глубокая аналитика, открытый API. Бесплатный тариф - без банковской карты.

Теги
mixpanel link tracking
send click events to mixpanel
mixpanel short link clicks
mixpanel server-side tracking
mixpanel distinct_id
link click analytics

Читать дальше