public final class YandexMetrica
extends java.lang.Object
Методы класса используются для настройки работы библиотеки.

Method Summary

All Methods
Static Methods
Concrete Methods
Deprecated Methods
Modifier and TypeMethod and Description
static voidactivate(android.content.Context context, YandexMetricaConfig config)
Инициализирует библиотеку YandexMetrica с расширенной стартовой конфигурацией Context и YandexMetricaConfig.
static voidactivateReporter(android.content.Context context, ReporterConfig config)
Активирует репортер с расширенной конфигурацией.
static voidenableActivityAutoTracking(android.app.Application application)
Сеансы должны отслеживаться автоматически без вызова этого метода.
static intgetLibraryApiLevel()
Возвращает уровень API библиотеки.
static java.lang.StringgetLibraryVersion()
Возвращает текущую версию библиотеки AppMetrica.
static YandexMetricaPluginsgetPluginExtension()
Создает экземпляр YandexMetricaPlugins который может отправлять события основному API key.
static IReportergetReporter(android.content.Context context, java.lang.String apiKey)
Возвращает объект, который реализует интерфейс IReporter для заданного API key.
static voidinitWebViewReporting(android.webkit.WebView webView)
Добавляет для указанной вебвью JavaScript-интерфейс с названием AppMetrica в window.
static voidpauseSession(android.app.Activity activity)
Приостанавливает сессию.
static voidputErrorEnvironmentValue(java.lang.String key, java.lang.String value)
Добавляет/удаляет пару ключ-значение в окружение ошибок приложения.
static voidreportAdRevenue(AdRevenue adRevenue)
Отправляет информацию о рекламной выручке (Ad Revenue) на сервер AppMetrica.
static voidreportAppOpen(android.app.Activity activity)
Отправляет сообщение об открытии приложения с помощью deeplink.
static voidreportAppOpen(android.content.Intent intent)
Отправляет сообщение об открытии приложения с помощью deeplink.
static voidreportAppOpen(java.lang.String deeplink)
Отправляет сообщение об открытии приложения с помощью deeplink в виде строки.
static voidreportECommerce(ECommerceEvent event)
Отправляет сообщение о ECommerce-событии.
static voidreportError(java.lang.String identifier, java.lang.String message)
Отправляет сообщение об ошибке с собственным идентификатором.
static voidreportError(java.lang.String identifier, java.lang.String message, java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором.
static voidreportError(java.lang.String message, java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором.
static voidreportEvent(java.lang.String eventName)
Отправляет сообщение о событии.
static voidreportEvent(java.lang.String eventName, java.util.Map<java.lang.String,java.lang.Object> attributes)
Отправляет сообщение о событии в виде набора атрибутов (Map).
static voidreportEvent(java.lang.String eventName, java.lang.String jsonValue)
Отправляет сообщение о событии в формате JSON в виде строки.
static voidreportNativeCrash(java.lang.String nativeCrash)
Deprecated. 
static voidreportReferralUrl(java.lang.String referralUrl)
Deprecated.
static voidreportRevenue(Revenue revenue)
Отправляет информацию о покупке на сервер AppMetrica.
static voidreportUnhandledException(java.lang.Throwable exception)
Отправляет сообщение об аварийной остановке приложения в объекте Throwable.
static voidreportUserProfile(UserProfile profile)
Отправляет информацию об обновлении пользовательского профиля.
static voidrequestAppMetricaDeviceID(AppMetricaDeviceIDListener listener)
Запрашивает уникальный идентификатор AppMetrica (deviceID).
static voidrequestDeferredDeeplink(DeferredDeeplinkListener listener)
Запрашивает отложенный deeplink.
static voidrequestDeferredDeeplinkParameters(DeferredDeeplinkParametersListener listener)
Запрашивает параметры отложенного deeplink.
static voidresumeSession(android.app.Activity activity)
Возобновляет сессию или создает новую, если тайм-аут сессии истек.
static voidsendEventsBuffer()
Отправляет сохраненные события из буфера.
static voidsetLocation(android.location.Location location)
Устанавливает собственную информацию о местоположении устройства.
static voidsetLocationTracking(boolean enabled)
Включает/отключает отправку информации о местоположении устройства.
static voidsetLocationTracking(android.content.Context context, boolean enabled)
Определяет, будет ли включены данные о местоположении в отчеты AppMetrica.
static voidsetStatisticsSending(android.content.Context context, boolean enabled)
Включает/отключает отправку статистики на сервер AppMetrica.
static voidsetUserProfileID(java.lang.String userProfileID)
Задает ID пользовательского профиля.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

activate

public static void activate(@NonNull
                            android.content.Context context,
                            @NonNull
                            YandexMetricaConfig config)
Инициализирует библиотеку YandexMetrica с расширенной стартовой конфигурацией Context и YandexMetricaConfig.
Parameters:
context - Объект класса Context.
config - Объект класса YandexMetricaConfig, который содержит расширенную стартовую конфигурацию библиотеки.
See Also:
YandexMetricaConfig

sendEventsBuffer

public static void sendEventsBuffer()
Отправляет сохраненные события из буфера.

AppMetrica SDK не отправляет события сразу после того, как оно произошло. Библиотека хранит данные о событиях в буфере. Метод sendEventsBuffer() отправляет данные из буфера и очищает его.

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

ВНИМАНИЕ: Частое использование метода может привести к повышению энергопотребления и расходу исходящего интернет-трафика.

resumeSession

public static void resumeSession(@Nullable
                                 android.app.Activity activity)

Возобновляет сессию или создает новую, если тайм-аут сессии истек.

Вызывается в реализации метода Activity.onResume() ()} Activity вашего приложения. Используйте после инициализации библиотеки в приложении. ПРИМЕЧАНИЕ: Длительность сессии зависит от заданного тайм-аута. Если интервал между приостановкой и возобновлением сессии меньше заданного времени тайм-аута, то текущая сессия будет возобновлена, если больше — будет создана новая.
Parameters:
activity - Объект Activity.
Throws:
java.lang.IllegalArgumentException - Если activity null.
See Also:
Activity, Activity.onResume(), pauseSession(android.app.Activity)

pauseSession

public static void pauseSession(@Nullable
                                android.app.Activity activity)

Приостанавливает сессию.

Вызывается в реализации метода Activity.onPause() Activity вашего приложения. Используйте после инициализации библиотеки в приложении. ПРИМЕЧАНИЕ: Длительность сессии зависит от заданного тайм-аута. Если интервал между приостановкой и возобновлением сессии меньше заданного времени тайм-аута, то текущая сессия будет возобновлена, если больше — будет создана новая.
Parameters:
activity - Объект Activity.
Throws:
java.lang.IllegalArgumentException - Если activity null.
See Also:
Activity, Activity.onPause(), resumeSession(android.app.Activity)

enableActivityAutoTracking

public static void enableActivityAutoTracking(@NonNull
                                              android.app.Application application)
Сеансы должны отслеживаться автоматически без вызова этого метода. См. YandexMetricaConfig.Builder.withSessionsAutoTrackingEnabled(boolean) Используйте этот метод только в том случае, если вы не видите автоматически отслеживаемых пользовательских сеансов.

Вспомогательный метод для отслеживания жизненного цикла приложения.

Сеансы должны отслеживаться автоматически.
Parameters:
application - Объект класса Application.
Throws:
java.lang.IllegalArgumentException - Если application null.

reportEvent

public static void reportEvent(@NonNull
                               java.lang.String eventName)
Отправляет сообщение о событии.
Parameters:
eventName - Короткое название или описание события. Не должно быть пустым.
Throws:
java.lang.IllegalArgumentException - Если eventName null.
See Also:
reportEvent(String)

reportError

public static void reportError(@NonNull
                               java.lang.String message,
                               @Nullable
                               java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором. По нему группируются ошибки в отчетах. Если вы хотите изменить группировку ошибок, используйте reportError(String, String, Throwable) или reportError(String, String)
Parameters:
message - Описание ошибки. Не должно быть пустым.
error - Класс ошибки. Объект Throwable. Может быть пустым.
Throws:
java.lang.IllegalArgumentException - Если message null.
See Also:
reportUnhandledException(Throwable)

reportError

public static void reportError(@NonNull
                               java.lang.String identifier,
                               @Nullable
                               java.lang.String message)
Отправляет сообщение об ошибке с собственным идентификатором. По нему группируются ошибки в отчетах. Используйте этот метод, если хотите изменить группировку ошибок. Иначе используйте reportError(String, Throwable)
Parameters:
identifier - Идентификатор ошибки. По нему группируются ошибки в отчетах. Ошибки с одинаковыми идентификаторами будут отнесены к одной группе. Не используйте переменные значения в качестве идентификатора для группировки. Иначе количество групп будет увеличиваться и их будет сложно анализировать. Не должно быть пустым.
message - Описание ошибки. может быть пустым.
Throws:
java.lang.IllegalArgumentException - Если identifier null.

reportError

public static void reportError(@NonNull
                               java.lang.String identifier,
                               @Nullable
                               java.lang.String message,
                               @Nullable
                               java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором. По нему группируются ошибки в отчетах. Используйте этот метод, если хотите изменить группировку ошибок. Иначе используйте reportError(String, Throwable) Стектрейс error не будет использован для группировки, кроме identifier.
Parameters:
identifier - Идентификатор ошибки. По нему группируются ошибки в отчетах. Не должно быть пустым. Ошибки с одинаковыми идентификаторами будут отнесены к одной группе. Не используйте переменные значения в качестве идентификатора для группировки. Иначе количество групп будет увеличиваться и их будет сложно анализировать.
message - Описание ошибки. Может быть пустым.
error - Класс ошибки Throwable. Может быть пустым. Стектрейс не будет использован при группировке ошибок.
Throws:
java.lang.IllegalArgumentException - Если identifier null.

reportUnhandledException

public static void reportUnhandledException(@NonNull
                                            java.lang.Throwable exception)
Отправляет сообщение об аварийной остановке приложения в объекте Throwable.
Parameters:
exception - Объект класса Throwable.
Throws:
java.lang.IllegalArgumentException - Если exception null.
See Also:
YandexMetricaConfig.Builder.withCrashReporting(boolean), reportError(String, Throwable)

reportNativeCrash

@Deprecated
public static void reportNativeCrash(@NonNull
                                                 java.lang.String nativeCrash)
Deprecated. 
Отправляет сообщение о нативных аварийных остановках приложения в объекте String.
Parameters:
nativeCrash - Объект String. Сообщение о нативной аварийной остановке.
Throws:
java.lang.IllegalArgumentException - Если nativeCrash null.
See Also:
YandexMetricaConfig.Builder.withNativeCrashReporting(boolean), reportUnhandledException(Throwable), reportError(String, Throwable)

reportEvent

public static void reportEvent(@NonNull
                               java.lang.String eventName,
                               @Nullable
                               java.lang.String jsonValue)
Отправляет сообщение о событии в формате JSON в виде строки.
Parameters:
eventName - Короткое название или описание события. Не должно быть пустым.
jsonValue - Валидная JSON-строка с произвольным содержимым. В параметре eventValue, передайте JSONObject в виде объекта String или передайте объект String в формате Java JSON. Максимальный уровень вложенности (для JSON-объекта) - 5.

ПРИМЕР:

                  
                   {
                       "firstName": "John",
                       "lastName": "Smith",
                       "age": 25,
                       "nickname": "JS"
                       "address": {
                           "streetAddress": "21 2nd Street",
                           "city": "New York",
                           "state": "NY",
                       },
                       "phoneNumbers": [
                           {
                               "type": "HOME",
                               "number": "212 555-1234"
                           },
                           {
                               "type": "FAX",
                               "number": "646 555-4567"
                           }
                       ]
                    }
                  
                  
Throws:
java.lang.IllegalArgumentException - Если eventName или jsonValue null.
See Also:
reportEvent(String, java.util.Map), reportEvent(String), JSONObject.toString()

reportEvent

public static void reportEvent(@NonNull
                               java.lang.String eventName,
                               @Nullable
                               java.util.Map<java.lang.String,java.lang.Object> attributes)
Отправляет сообщение о событии в виде набора атрибутов (Map).
Parameters:
eventName - Короткое название или описание события. Не должно быть пустым.
attributes - Набор атрибутов (Map). В параметре attributes передайте Map с ключами типа String и значениями поддерживаемых типов: Boolean, String и числовыми типами Double, Integer, ...
Throws:
java.lang.IllegalArgumentException - Если eventName null.
See Also:
reportEvent(String, String), reportEvent(String)

reportAppOpen

public static void reportAppOpen(@NonNull
                                 android.app.Activity activity)
Отправляет сообщение об открытии приложения с помощью deeplink.
Parameters:
activity - - Объект класса Activity.

reportAppOpen

public static void reportAppOpen(@NonNull
                                 java.lang.String deeplink)
Отправляет сообщение об открытии приложения с помощью deeplink в виде строки. Нулевые и пустые значения будут игнорироваться.
Parameters:
deeplink - Deeplink в виде строки.

reportAppOpen

public static void reportAppOpen(@NonNull
                                 android.content.Intent intent)
Отправляет сообщение об открытии приложения с помощью deeplink.
Parameters:
intent - - Объект класса Intent.

reportReferralUrl

public static void reportReferralUrl(@NonNull
                                     java.lang.String referralUrl)
Deprecated. 
Задает referral URL установки приложения. Метод может быть использован для отслеживания некоторых источников трафика.
Parameters:
referralUrl - Referral URL установки приложения.

setLocation

public static void setLocation(@Nullable
                               android.location.Location location)

Устанавливает собственную информацию о местоположении устройства.

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

ПРИМЕЧАНИЕ: Разрешения: Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION помогают улучшить качество определения местоположения.

Parameters:
location - Информация о местоположении устройства.
See Also:
setLocationTracking(boolean), setLocationTracking(Context, boolean)

setLocationTracking

public static void setLocationTracking(boolean enabled)
Включает/отключает отправку информации о местоположении устройства.

ПРИМЕЧАНИЕ: Значение по умолчанию - false

Parameters:
enabled - Признак отправки информации о местоположении устройства. Возможные значения: true — отправка информации о местоположении устройства включена. false — отправка информации о местоположении устройства выключена.
See Also:
setLocation(android.location.Location)

setLocationTracking

public static void setLocationTracking(@NonNull
                                       android.content.Context context,
                                       boolean enabled)
Определяет, будет ли включены данные о местоположении в отчеты AppMetrica.

ПРИМЕЧАНИЕ: Значение по умолчанию false

Parameters:
context - Объект Context.
enabled - Признак отправки информации о местоположении устройства. Возможные значения: true — отправка информации о местоположении устройства включена. false — отправка информации о местоположении устройства выключена.
See Also:
setLocation(android.location.Location)

setStatisticsSending

public static void setStatisticsSending(@NonNull
                                        android.content.Context context,
                                        boolean enabled)
Включает/отключает отправку статистики на сервер AppMetrica. По умолчанию отправка включена.

ПРИМЕЧАНИЕ: Отключение отправки для главного API key также отключает отправку данных со всех репортеров, которые были инициализированы с другим API key.

Parameters:
context - Объект класса Context.
enabled - Признак включения отправки статистики. Значение по умолчанию — true. Возможные значения: true — отправка статистики включена. false — отправка статистики выключена.

activateReporter

public static void activateReporter(@NonNull
                                    android.content.Context context,
                                    @NonNull
                                    ReporterConfig config)
Активирует репортер с расширенной конфигурацией. Репортер должен быть активирован с конфигурацией, которая содержит API key, отличный от API key приложения.

ПРИМЕЧАНИЕ: Примечание. Активация репортера должна происходить до вызова метода getReporter.

Parameters:
context - Объект класса Context.
config - Объект класса ReporterConfig, который содержит расширенную конфигурацию репортера.

getReporter

@NonNull
public static IReporter getReporter(@NonNull
                                             android.content.Context context,
                                             @NonNull
                                             java.lang.String apiKey)

Возвращает объект, который реализует интерфейс IReporter для заданного API key.

Будет создан только один объект IReporter для каждого API key.
Parameters:
context - Объект класса Context.
apiKey - API key, отличный от API key приложения.
Returns:
Объект IReporter.

getLibraryVersion

@NonNull
public static java.lang.String getLibraryVersion()

Возвращает текущую версию библиотеки AppMetrica.

Returns:
Версию библиотеки.
See Also:
getLibraryApiLevel()

getLibraryApiLevel

public static int getLibraryApiLevel()

Возвращает уровень API библиотеки.

Returns:
Уровень API библиотеки.
See Also:
getLibraryVersion()

requestDeferredDeeplinkParameters

public static void requestDeferredDeeplinkParameters(@NonNull
                                                     DeferredDeeplinkParametersListener listener)
Запрашивает параметры отложенного deeplink. Параметры будут доступны после получения. Google Play Install Referrer. Параметры отложенного deeplink доступны в интерфейсе DeferredDeeplinkParametersListener.onParametersLoaded(Map), если не возникает ошибок при получении Google Play Install Referrer. Если возникает ошибка, то значение ошибки хранится в интерфейсе DeferredDeeplinkParametersListener.onError(DeferredDeeplinkParametersListener.Error, String)
Parameters:
listener - Интерфейс для оповещения о получении параметров отложенного deeplink.

requestDeferredDeeplink

public static void requestDeferredDeeplink(@NonNull
                                           DeferredDeeplinkListener listener)
Запрашивает отложенный deeplink. Он будет доступен после получения Google Play Install Referrer. Отложенный deeplink доступен в интерфейсе DeferredDeeplinkListener.onDeeplinkLoaded(String), если не возникает ошибок при получении Google Play Install Referrer. Если возникает ошибка, то значение ошибки хранится в интерфейсе DeferredDeeplinkListener.onError(DeferredDeeplinkListener.Error, String)
Parameters:
listener - Интерфейс для оповещения о получении отложенного deeplink.

requestAppMetricaDeviceID

public static void requestAppMetricaDeviceID(@NonNull
                                             AppMetricaDeviceIDListener listener)
Запрашивает уникальный идентификатор AppMetrica (deviceID).

ПРИМЕЧАНИЕ: В Logs API и Post API deviceID обозначается как 'appmetrica_device_id'.

Уникальный идентификатор deviceID доступен в интерфейсе AppMetricaDeviceIDListener.onLoaded(String deviceID), если не возникает ошибок при получении. Если ошибка возникает, то значение ошибки хранится в интерфейсе AppMetricaDeviceIDListener.onError(Reason reason).
Parameters:
listener - Интерфейс для оповещения о получении уникального идентификатора.

setUserProfileID

public static void setUserProfileID(@Nullable
                                    java.lang.String userProfileID)
Задает ID пользовательского профиля. Если отправка ProfileId не настроена, предопределенные атрибуты не отображаются в веб-интерфейсе. Начиная с версии SDK 3.20.1, можно задавать ProfileId до инициализации библиотеки. ПРИМЕЧАНИЕ: Может содержать до 200 символов.
Parameters:
userProfileID - Произвольный ID профиля.

reportUserProfile

public static void reportUserProfile(@NonNull
                                     UserProfile profile)
Отправляет информацию об обновлении пользовательского профиля.
Parameters:
profile - Объект UserProfile, который содержит информацию о пользовательском профиле.

reportRevenue

public static void reportRevenue(@NonNull
                                 Revenue revenue)
Отправляет информацию о покупке на сервер AppMetrica.
Parameters:
revenue - Объект класса Revenue, который содержит информацию о покупке.

reportECommerce

public static void reportECommerce(@NonNull
                                   ECommerceEvent event)
Отправляет сообщение о ECommerce-событии.
Parameters:
event - Объект класса ECommerceEvent.
See Also:
ECommerceEvent

putErrorEnvironmentValue

public static void putErrorEnvironmentValue(@NonNull
                                            java.lang.String key,
                                            @Nullable
                                            java.lang.String value)
Добавляет/удаляет пару ключ-значение в окружение ошибок приложения. Окружение отображается в отчете о крэшах и ошибках. Чтобы удалить пару с ключом "key", вызовите: YandexMetrica.putErrorEnvironmentValue("key", null); ПРИМЕЧАНИЕ: Error Environment отправляется с крэшами и ошибками, которые отправляются с помощью метода reportError(String message, Throwable error). Он не применяется к нативным крэшам.

На окружение ошибок есть следующие ограничения:
Максимальная длина ключа — 50 символов. Если длина превышена, ключ обрезается до 50 символов.
Максимальная длина значения — 4000 символов. Если длина превышена, значение обрезается до 4000 символов.
Максимум допустимо 30 пар окружения вида {key, value}. Если попытаться добавить 31-ю пару, она проигнорируется.
Общий размер (sum {len(key) + len(value)} for (key, value) in error_environment) — 4500 символов.
Если новая пара превышает общий размер, она будет проигнорирована.

Parameters:
key - Ключ. Максимальная длина ключа — 50 символов. Если длина превышена, ключ обрезается до 50 символов.
value - Значение. Максимальная длина значения — 4000 символов. Если длина превышена, значение обрезается до 4000 символов. Чтобы удалить пару, передайте нулевое значение.

initWebViewReporting

@MainThread
public static void initWebViewReporting(@NonNull
                                                    android.webkit.WebView webView)
Добавляет для указанной вебвью JavaScript-интерфейс с названием AppMetrica в window. Это позволяет отправлять клиентские события из JavaScript-кода.

Замечания:
Метод должен вызываться из главного потока.
На момент вызова у WebView должен быть включен JavaScript.
Работает на Android API level 17 и выше.

Parameters:
webView - Объект класса WebView.
See Also:
AppMetricaJsInterface

getPluginExtension

@NonNull
public static YandexMetricaPlugins getPluginExtension()

Создает экземпляр YandexMetricaPlugins который может отправлять события основному API key.

Только один экземпляр YandexMetricaPlugins создается для каждого процесса.
Примечание: Чтобы использовать это расширение, установите AppMetrica с помощью activate(android.content.Context, YandexMetricaConfig).
Returns:
экземпляр расширения плагина

reportAdRevenue

public static void reportAdRevenue(@NonNull
                                   AdRevenue adRevenue)
Отправляет информацию о рекламной выручке (Ad Revenue) на сервер AppMetrica.
Parameters:
adRevenue - Объект класса AdRevenue.