Частые вопросы и решение проблем
Создание приложения
Для одного приложения на разных платформах нужно использовать разные API-ключи?
Рекомендуем для одного и того же приложения на разных платформах использовать один API-ключ. Это позволит удобнее просматривать общую статистику приложения, статистику по отдельной платформе, а также даст возможность использовать smartlink в трекерах.
Интеграция SDK
Как проверить, что у меня установлены последние версии Android-библиотек?
Чтобы проверить, что у вас установлены последние версии библиотек AppMetrica SDK и AppMetrica Push SDK, выполните шаги:
- В строке меню Android Studio выберите Analyze → Run Inspection By Name.
- В появишемся окне введите и выберите Newer Library Versions Available.
- Выберите библиотеки, которые нужно обновить.
Как обновить версию AppMetrica в приложении?
Чтобы обновить версию библиотеки AppMetrica SDK, необходимо:
- Отредактировать версию библиотеки в файле
build.gradle
. - Произвести инициализацию библиотеки в приложении.
Подробнее в разделе Подключение и инициализация.
- Отредактировать версию библиотеки в
Podfile
вашего проекта. - Произвести инициализацию библиотеки в приложении.
Подробнее в разделе Подключение и инициализация.
Как включить отправку данных о местоположении пользователей?
AppMetrica умеет определять местоположение устройства. Точность определения зависит от конфигурации, с которой инициализируется библиотека:
- С включенной опцией locationTracking
-
Примечание
Для iOS опция включена по умолчанию, но AppMetrica SDK не запрашивает разрешение на получение данных о местоположении. Это необходимо сделать самостоятельно с помощью методов класса CLLocationManager.
Местоположение определяется с точностью до города. Информация доступна в отчетах и в Logs API.
Приложение запрашивает доступ к GPS. Расход заряда аккумулятора может увеличиться.
- С отключенной опцией locationTracking
-
Примечание
Начиная с версии 5.0.0 AppMetrica Android SDK опция
locationTracking
по умолчанию отключена.Ниже версии 5.0.0 опция
locationTracking
по умолчанию включена.Местоположение определяется по IP-адресу с точностью до страны. Информация доступна в отчетах, но не доступна в Logs API.
Приложение не запрашивает доступ к GPS. Расход заряда аккумулятора не увеличивается.
Примечание
Если у вас включена маскировка IP-адреса, местоположение определяется так же с точностью до страны по немаскированной части IP-адреса.
Примеры см. в разделе Определение местоположения.
Ошибка «Library Not Found» при запуске приложения на устройстве
Ошибка возникает, потому что Xcode не может подписать библиотеки, которые предоставляет SPM. В проекте SPM заведена задача на исправление, но на текущий момент она не решена.
Чтобы решить проблему, выполните последовательность действий:
-
На этапе сборки вашего приложения добавьте шаг с копированием файлов.
-
В пункте Destination выберите значение Frameworks.
-
Добавьте шаг с запуском скрипта.
-
Добавьте скрипт. Скрипт подпишет библиотеки, которые предоставляет SPM.
find "${CODESIGNING_FOLDER_PATH}" -name '*.framework' -print0 | while read -d $'\0' framework do codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}" done
Ошибка во время установки библиотеки на устройство
Во время установки библиотеки может возникнуть ошибка, указанная ниже (пример лога). Чтобы решить проблему, выполните последовательность шагов из раздела Ошибка "Library Not Found" при запуске приложения на устройстве.
Пример лога
Details
Unable to install "Your App"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620395
--
A valid provisioning profile for this executable was not found.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620395
User Info: {
DVTRadarComponentKey = 487925;
MobileDeviceErrorCode = "(0xE8008015)";
"com.apple.dtdevicekit.stacktrace" = (
0 DTDeviceKitBase 0x00000001212d493f DTDKCreateNSErrorFromAMDErrorCode + 220
1 DTDeviceKitBase 0x0000000121313124 __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 155
2 DVTFoundation 0x000000010576db33 DVTInvokeWithStrongOwnership + 71
3 DTDeviceKitBase 0x0000000121312e65 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1440
4 IDEiOSSupportCore 0x0000000121183d28 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.292 + 3513
5 DVTFoundation 0x000000010589c29a __DVT_CALLING_CLIENT_BLOCK__ + 7
6 DVTFoundation 0x000000010589debc __DVTDispatchAsync_block_invoke + 1191
7 libdispatch.dylib 0x00007fff73c476c4 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff73c48658 _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff73c4dc44 _dispatch_lane_serial_drain + 597
10 libdispatch.dylib 0x00007fff73c4e5d6 _dispatch_lane_invoke + 363
11 libdispatch.dylib 0x00007fff73c57c09 _dispatch_workloop_worker_thread + 596
12 libsystem_pthread.dylib 0x00007fff73ea2a3d _pthread_wqthread + 290
13 libsystem_pthread.dylib 0x00007fff73ea1b77 start_wqthread + 15
);
}
--
System Information
macOS Version 10.15.7 (Build 19H15)
Xcode 12.1 (17222)
Как получить appmetrica_device_id
в SDK?
Получить appmetrica_device_id
можно с помощью метода requestStartupParams()
. Запрашивать нужно идентификатор DeviceIdHashKey
.
Трекинг
Чем отличается трекинг предустановок от отдельной сборки приложения?
- Версии приложения обновляются, и когда пользователи обновят их стандартным образом (через магазин), предустановленное приложение уже невозможно будет отличить от обычного по названию сборки. Даже если собрать приложение с отдельным именем пакета, после обновления оно так же не будет отличаться от обычного.
- Использование трекинга предустановок позволяет привязать пользователя к условному источнику трафика (предустановке) и сегментировать отчеты. Также это удобно при работе с несколькими вендорами: достаточно создать несколько трекеров и использовать разные tracking-ID при инициализации библиотеки AppMetrica.
- Поскольку установка привязана к единственному источнику трафика, за нее не придется платить рекламному партнеру в случае, если во время атрибуции (например, с помощью Probabilistic Matching) произойдет случайное совпадение.
Как создать ремаркетинг-кампанию в AppMetrica
Чтобы создать ремаркетинг-кампанию, сделайте следующее:
- Убедитесь, что у вас AppMetrica SDK версии 3.1.0 или выше.
- Добавьте поддержку deeplink в своем приложении.
- Добавьте отслеживание открытий deeplink для Android.
- Создайте трекер для ремаркетинг-кампании.
- Убедитесь, что у вас AppMetrica SDK версии 3.1.2 или выше.
- Добавьте поддержку Universal Links в своем приложении.
- Добавьте отслеживание открытий deeplink для iOS.
- Создайте трекер для ремаркетинг-кампании.
Подробнее о атрибуции ремаркетинг-кампаний в разделе Атрибуция ремаркетинг-кампаний.
Использует ли AppMetrica UTM-метки?
AppMetrica позволяет использовать UTM-метки в трекинг-ссылке, целевой ссылке и deeplink. Для этого необходимо дописать UTM-метку в созданную ссылку, как параметр: после знака вопроса в формате ключ=значение. Подробнее в разделе Параметры трекинг-ссылки.
Необязательно сохранять трекинг-ссылку (целевую или deeplink) с UTM-метками при создании трекера, достаточно добавить метки перед рекламным размещением. Таким образом, вы можете использовать одну ссылку с разными UTM-метками.
В отчетах AppMetrica UTM-метки отображаются как параметры трекера и доступны в группировке по параметрам.
Какой формат ожидается в параметре click_id
при передаче его трекеру?
В параметре click_id
может быть прописана произвольная строка.
Как создать трекинг-ссылку для других источников установок?
Чтобы создать трекинг-ссылку, вы можете в веб-интерфейсе AppMetrica добавить рекламного партнера. Затем при создании трекера указать в трекинг-ссылке произвольные параметры, которые вам необходимы. Подробнее о настраиваемых параметрах.
Почему трекер переведен в архив?
Если за последние 12 месяцев по трекеру не было установок, трекер автоматически отправляется в архив. Накопленная статистика по трекеру останется в отчетах.
Архивный трекер можно восстановить:
- Перейдите в список трекеров.
- Активируйте опцию Показать архивные.
- Нажмите Восстановить на нужном трекере.
При переходе по трекинг-ссылке с мобильного устройства появляется ошибка сертификата безопасности. Как это исправить?
Установите на устройстве корректные дату и время.
Почему при переходе по трекинг-ссылке с ПК вижу ошибку 404?
В настройках Smartlink указываются ссылки для разных типов устройств. Вы можете получать ошибку 404 с ПК, если ссылка для десктопных устройств в трекере не настроена. Ее можно указать в Fallback. Подробнее.
Почему при переходе по трекинг-ссылке на iOS открывается AppStore?
Для iOS вместо обычной трекинг-ссылки нужно использовать Universal link.
Отчеты
Почему в App Store и Google Play я вижу больше установок, чем в интерфейсе AppMetrica?
Google Play и App Store считают установки после загрузки приложения на смартфон, а AppMetrica считает установки после открытия приложения (первой инициализации AppMetrica SDK).
Почему в статистике не отображаются новые установки?
В отчетах События и Вовлеченность посмотрите, приходит ли информация о событиях и сессиях:
-
Если нет установок, но есть события и сессии, проверьте использование метода или свойства
handleFirstActivationAsUpdate
в расширенной конфигурации.По умолчанию параметр отключен, и новые установки отображаются в отчетах. Если параметр активирован, то все установки будут считаться обновлением приложения и не отобразятся в отчетах. См. примеры для Android и iOS.
-
Если нет установок, событий и сессий, убедитесь, что AppMetrica правильно отслеживает активность сессий.
Если ваше приложение поддерживает устройства с версией:
- Android 4.0 и выше — вызывайте метод
enableActivityAutoTracking
после инициализации библиотеки и до открытия первого экрана. - Android ниже 4.0 — используйте методы
AppMetrica.resumeSession(activity)
иAppMetrica.pauseSession(activity)
.
- Android 4.0 и выше — вызывайте метод
Узнать больше
Как получить все крэш-логи без группировки?
AppMetrica группирует крэш-логи по stack trace. Чтобы узнать, в чем именно заключается ошибка, не надо просматривать каждый лог в отдельности, достаточно увидеть один лог из группы.
Чтобы получить статистику по крэшам для определенных видов устройств, рекомендуем использовать сегментацию.
Почему различается число событий в отчетах по событиям и User Acquisition?
В отчете User Acquisition отображаются только те события, которые произошли после установки приложения и установка произошла в выбранном периоде отчета. В отчете События отображаются события без привязки к дате установки. Пользователь мог установить приложение раньше, вне периода отчета, а событие совершить позднее.
Почему недельная аудитория не совпадает с суммой пользователей за каждый день в неделе?
В большинстве случаев один и тот же пользователь запускает приложение в разные дни в течение недели. Поэтому он учитывается несколько раз в дневной аудитории, но в недельной будет учтен только единожды.
Например, недельная аудитория приложения — 100 пользователей. А если сложить количество пользователей за каждый день, то получится 110 пользователей. Это значит, что некоторые пользователи запускали приложение несколько раз за прошедшую неделю.
Как рассчитывается Retention?
- Интервал дат: 1 декабря — 24 марта.
- Группировка: по источниками.
- Разбиение: по месяцам.
- Метрика: Retention.
Пример расчета процента пользователей, которые вернулись в первый месяц после установки:
В отчете отображается 17,20%. Числа отличаются из-за того, что в интерфейсе при группировке по партнеру отображается число всех вернувшихся пользователей, а процент возвращений рассчитывается только за завершенный интервал.
Например, сейчас 24 марта. Для установок за февраль первый месяц (март) еще не закончился. Значит февраль не входит в расчет итогового значения первого месяца. Поэтому, чтобы рассчитать процент возвращений в первый месяц, надо просуммировать значения только тех нулевых месяцев, значения которых учитываются.
Чтобы рассчитать процент вернувшихся пользователей в первый месяц:
-
Включите группировку по дате установки.
-
Включите сегментацию по нужному источнику установки.
-
Поделите общее число вернувшихся пользователей в первый месяц на сумму числа установок в июле и августе:
В отчете значение 17,15 округляется до десятичного знака: 17,20%.
Узнать больше
Почему различаются показатели Retention в отчетах User Acquisition и Retention-анализ?
В отчете Retention-анализ сессии считаются по календарным дням — начиная с 00:00.
В отчете User Acquisition сессии считаются по времени с момента установки приложения. Например, если пользователь скачал и открыл приложение в 19:00 20 апреля, то следующий день начнется в 19:00 21 апреля.
Соответственно рассчитываются и показатели: в отчете Retention-анализ — календарно, а в отчете User Acquisition — интервально.
Почему в канале Органика есть источник Google Play, но нет источника App Store?
Google Play дает возможность получить источник органической установки при помощи библиотеки Play Install Referrer Library. В App Store аналогичного механизма нет.
События с устройства долго не приходят в отчет
AppMetrica SDK не отправляет событие сразу после того, как оно произошло. События накапливаются в буфере и отправляются пачками.
AppMetrica принимает события из SDK в течение 7 дней. В отчетах они отображаются по времени совершения события.
Для принудительной отправки сохраненных событий после прохождения важных сценариев пользователя можно использовать метод sendEventsBuffer()
— он отправляет данные из буфера и очищает его.
Частое использование метода sendEventsBuffer()
может привести к повышению энергопотребления и расходу исходящего интернет-трафика.
API. Экспорт данных
Почему данные в отчетах и Logs API отличаются?
Данные в отчетах и Logs API могут отличаться:
- Отчет User Acquisition
- В выгрузке из Logs API считаются все установки, в том числе переустановки на одно и то же устройство, которые можно опознать по полю
is_reinstallation
.
В отчете переустановки не считаются. Считается только одна установка на одно устройство.
Подробнее об отчете User Acquisition. - Отчет Remarketing
- В отчете за re-engagement считается количество уникальных устройств, открывших приложение диплинком за рассматриваемый период, а в выгрузке Logs API все открытия deeplink.
Подробнее об отчете Remarketing.
Как определить источник события по сырым данным?
Сырые данные по событиям, получаемые из Logs API, не содержат информацию об источнике. С событиями приходит идентификатор пользователя appmetrica_device_id
, и именно по нему в отчетах определяется, что событие принадлежит конкретному пользователю, источник которого определен при установке.
Информация об источнике содержится в выгрузке установок, где также есть appmetrica_device_id
.
Вы можете выгрузить установки и события, а затем, используя функцию ВПР или любой другой удобный метод, определить пользователя в каждой таблице по appmetrica_device_id
. Это позволит вам получить для событий соответствующие поля из таблицы установок, связанные с атрибуцией, например:
click_id
click_url_parameters
publisher_name
tracker_name
tracking_id
Интеграция с Yandex Ads SDK
Я хочу использовать возможности расширенной конфигурации AppMetrica SDK. Как это сделать?
Инициализируйте AppMetrica SDK самостоятельно, используя API Key в разделе Настройки → Основное.
Я уже использую AppMetrica SDK в своем приложении. Нужно ли мне что-то менять в интеграции?
Не нужно, поведение AppMetrica SDK не зависит от Yandex Mobile Ads SDK.
Я уже использую AppMetrica SDK в своем приложениии, и мне достаточно текущего набора отслеживаемых событий. Как отключить автоматические события Yandex Ads SDK?
Используйте метод setAppAdAnalyticsReporting для Android и setAppAdAnalyticsReportingEnabled для iOS в конфигурации Yandex Mobile Ads SDK.
Я хочу инициализировать AppMetrica SDK по логике, отличной от инициализации Yandex Mobile Ads SDK. Как это сделать?
Инициализируйте AppMetrica SDK самостоятельно, используя API Key в разделе Настройки → Основное.
Прочее
Почему меняется appmetrica_device_id
при переустановке приложения?
Начиная с версии AppMetrica Android SDK 5.0.0 и выше при переустановке приложения на смартфоне меняется appmetrica_device_id
. Это обусловлено новыми политиками Google.
Условия смены appmetrica_device_id
:
- актуальные политики Google запрещают использование идентификаторов, которые не сбрасываются после переустановки приложения;
- рекомендуемый источник для генерации идентификатора устройства описан в документации Google. От него сейчас генерируется
appmetrica_device_id
; appmetrica_device_id
сбрасывается при переустановке приложения, если на устройстве установлено только одно приложение от вендора;appmetrica_device_id
не сбрасывается при переустановке одного из приложений, если на устройстве установлено несколько приложений от вендора;- иное поведение подвергает приложение риску получить претензии со стороны Google.
Как выгрузить значения IDFA/GAID?
Значения IDFA/GAID можно получить:
- с помощью postback — если у вас есть собственный сервер, можно отправлять все postback на него. Подробнее о настройке postback.
- c помощью Logs API — выгружая неагрегированные данные.
Будет ли работать AppMetrica, если приложение не выложено в магазин приложений?
Магазин приложений не влияет на работу AppMetrica. Статистика будет собираться и для приложений, которые распространяются не через магазины.
Трекинг для таких приложений тоже будет работать, в том числе методы атрибуции Device Identifier Matching и Probabilistic Matching.
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.
Рекламная кампания, которая направлена на возвращение пользователей в установленное приложение. Подробнее о создании ремаркетинг-кампании в разделе Создание ремаркетинг-трекера.