Сравнение по идентификаторам и событиям
Краткое содержание
Сравнение данных МТС Аналитики с Appmetrica
Статья помогает понять, как сравнивать данные МТС Аналитики с Appmetrica, акцентируя внимание на различиях в логике расчёта параметров и рекомендациях по выбору метода сравнения.
Как сравнивать данные
В статье приведена таблица с пятью способами сравнения: по Client ID, User ID, событиям, параметрам событий и идентификаторам сессий. Для каждого способа указаны особенности, возможные расхождения и рекомендации.
Способ 1. Идентификатор устройства (Client ID)
Сравнение по ma_client_id и appmetrica_device_id может привести к сильным расхождениям из-за различий в логике учёта идентификаторов. Для проверки стабильности Client ID рекомендуется использовать GAID. В статье приведён скрипт для сравнения и пример результата.
Способ 2. Уникальный идентификатор пользователя (User ID)
Этот способ позволяет точнее сравнивать данные по авторизованной зоне. Для сравнения используется скрипт, аналогичный методу 1, с заменой параметров.
Способ 3. Общее количество событий
Сравнение по количеству событий не рекомендуется для проверки идентичности данных, так как системы могут учитывать разные типы событий. В статье приведён скрипт для сравнения.
Способ 4. Уникальные сочетания параметров событий
Сравнение по уникальным сочетаниям EventName + EventLabel + EventCategory позволяет учитывать события, отсылаемые в обе системы. В статье описан скрипт для сравнения и пример результата.
Способ 5. Идентификатор сессии (ma_session_id)
Сравнени е по сессиям не рекомендуется из-за различий в логике формирования сессий в Appmetrica и МТС Аналитике.
Причины различий в данных
В статье перечислены восемь причин, объясняющих расхождения в данных: различия в начальном времени отслеживания, видах событий, фильтрации, обновлении данных, методике подсчёта, сетевых проблемах, конфигурации отслеживания и порядке SDK в коде.
Используйте статью, если ваша задача — узнать больше про точность данных МТС Аналитики и сравнить данные Аналитики с другой системой. В этой статье рассматривается сравнение только с Appmetrica.
Сравнивать данные МТС Аналитики с данными других систем, включая Appmetrica, можно по различным параметрам. Однако важно понимать значение и логику расчёта этих параметров в каждой системе аналитики.
Как сра внивать данные
| Способ сравнения | Описание | Особенность |
|---|---|---|
| По Client ID (ma_client_id) | Пользовательский параметр. Уникальный идентификатор устройства, который присваивается МТС Аналитикой | Возможно сильное расхождение в данных при сравнении. В МТС Аналитике и Appmetrica различается логика учёта идентификаторов, поэтому не рекомендуем использовать этот способ |
| По User ID | Пользовательский параметр. Идентификатор пользователя, задается на стороне приложения | Самый точный способ сравнить данные по авторизованной зоне |
| По событиям | Общее количество событий | Количество уникальных событий в системах может не совпадать, так как одна система может учитывать одни события, например, технические, а другая — нет |
| По параметрам событий | Общее количество уникальных сочетаний EventName (название события) + EventLabel (ярлык события) + EventCategory (категория события) | Учитываются только сочетания название + ярлык + категория |
| По количеству идентификаторов сессий (ma_session_id) | Уникальный идентификатор сессии, который формируется автоматически и объединяет события в сессии | Возможно сильное расхождение в данных при сравнении. В МТС Аналитике и Appmetrica различается логика формирования сессий, поэтому не рекомендуем использовать этот способ |
Способ 1. Идентификатор устройства (Client ID)
Сравнение можно производить по идентификаторам устройств: в МТС Аналитике — ma_client_id, в Appmetrica — appmetrica_device_id.
Замените значения переменных из блока:
with на актуальные для вашего продукта: start_date, end_date, os_name, app_version, build_version
from на соответствующую схему для вашего продукта, в коде эта схема называется your_product
Скрипт для сравнения:
WITH
'2024-01-01' AS start_date
, '2024-01-24' AS end_date
, 'android' AS os_name
, '1.12.0' AS app_version
, '201' AS build_version
, mtsa AS (
SELECT
count(DISTINCT ma_client_id) AS devices_mtsa
, toDate(ma_hit_datetime) AS dates
FROM your_product.ma_app_hits mwh
WHERE
toDate(ma_hit_datetime) BETWEEN start_date AND end_date
AND ma_os_name ilike os_name
AND ma_app_version_name = app_version
AND ma_app_build_number = build_version
GROUP BY dates)
, ym AS (
SELECT
count(DISTINCT appmetrica_device_id) AS devices_ym
, toDate(event_datetime) AS dates
FROM your_product.app_events_all whav
WHERE
toDate(event_datetime) BETWEEN start_date AND end_date
AND os_name ilike os_name
AND app_version_name = CONCAT(app_version, '+', build_version)
GROUP BY dates)
SELECT
devices_mtsa
, devices_ym
, round(devices_mtsa/devices_ym*100, 2) prc
, dates
FROM mtsa
FULL JOIN ym
USING(dates)
order by dates;
Подробнее про указанные в скрипте параметры
Расхождение при таком сравнении может быть связано с нестабильностью идентификатора устройства в Appmetrica.
Проверка стабильности Client ID
Стабильность Client ID можно проверить с помощью GAID. Для проверки используется рекламный идентификатор (GAID), который отсылается и в Appmetrica, и в МТС Аналитику. Зате м подсчитывается количество Client ID и appmetrica_device_id для каждого GAID.
Замените значения переменных из блока from на соответствующую схему для вашего продукта, в коде эта схема называется your_product. Скрипт для сравнения:
WITH mtsa AS (
SELECT
ma_gaid gaid
, count(DISTINCT ma_client_id ) mtsa_count
FROM your_product.ma_app_hits mah
WHERE ma_gaid <> ''
GROUP BY ma_gaid
HAVING mtsa_count > 1
), ym AS (
SELECT
google_aid gaid
, count(DISTINCT appmetrica_device_id ) ym_counta
FROM your_product.app_events_all aea
WHERE google_aid <> ''
GROUP BY google_aid
HAVING ym_counta > 1
)
SELECT *
FROM mtsa
INNER JOIN ym USING(gaid)
ORDER BY 3 desc
Например, можно получить такой результат.
| gaid | mtsa_count | ym_count |
|---|---|---|
| hg1234567890 | 39 | 97 |
| yh987654321 | 74 | 86 |
| jo5432167890 | 45 | 47 |
- На каждый GAID в МТС Аналитике приходится меньшее количество идентификаторов, чем в Appmetrica, поэтому сравнение по Client ID может давать непредсказуемый результат.
- Для большинства девайсов Huawei отсутствует Client_Id, поскольку при генерации МТС Аналитика использует специальный параметр в устройстве (app_set_id), которого нет в этих устройствах.
Способ 2. Уникальный идентификатор пользователя (UserId)
Для более точного сравнения систем рекомендуем использовать идентификатор клиента. Это позволит сравнить данные по авторизованной зоне, данные в неавторизованной зоне не учитываются.
Чтобы сравнить данные по UserId, используйте скрипт для сравнения по Client ID, заменив необходимые параметры.
Способ 3. Общее количество событий
Вы сможете узнать разницу в количестве событий по каждому дню. Не рекомендуем использовать этот способ для проверки идентичности самих данных.
Замените значения переменных из блока:
with на актуальные для вашего продукта: start_date, end_date, os_name, app_version, build_version
from на соответствующую схему для вашего продукта, в коде эта схема называется your_product
Скрипт для сравнения:
WITH
'2024-01-01' AS start_date
, '2024-01-24' AS end_date
, 'android' AS os_name
, '1.12.0' AS app_version
, '201' AS build_version
, mtsa AS (
SELECT
count() AS hit_mtsa
, toDate(ma_hit_datetime) AS dates
FROM your_product.ma_app_hits mwh
WHERE
toDate(ma_hit_datetime) BETWEEN start_date AND end_date
AND ma_os_name ilike os_name
AND ma_app_version_name = app_version
AND ma_app_build_number = build_version
GROUP BY dates)
, ym AS (
SELECT
count() AS hits_ym
, toDate(event_datetime) AS dates
FROM your_product.app_events_all whav
WHERE
toDate(event_datetime) BETWEEN start_date AND end_date
AND os_name ilike os_name
AND app_version_name = CONCAT(app_version, '+', build_version)
GROUP BY dates)
SELECT
hit_mtsa
, hits_ym
, round(hit_mtsa/hits_ym*100, 2) prc
, dates
FROM mtsa
FULL JOIN ym
USING(dates);
В Appmetrica или МТС Аналитике могут быть события, которые не учитываются в другой системе аналитике, например, технические. Для более точного сравнения по событиям рекомендуем использовать Способ 4.