Class YandexMetrica
- Method Summary
- Methods inherited from class java.lang.Object
- Method Detail
- activate
- sendEventsBuffer
- resumeSession
- pauseSession
- enableActivityAutoTracking
- reportEvent
- reportError
- reportError
- reportError
- reportUnhandledException
- reportNativeCrash
- reportEvent
- reportEvent
- reportAppOpen
- reportAppOpen
- reportAppOpen
- reportReferralUrl
- setLocation
- setLocationTracking
- setLocationTracking
- setStatisticsSending
- activateReporter
- getReporter
- getLibraryVersion
- getLibraryApiLevel
- requestDeferredDeeplinkParameters
- requestDeferredDeeplink
- requestAppMetricaDeviceID
- setUserProfileID
- reportUserProfile
- reportRevenue
- reportECommerce
- putErrorEnvironmentValue
- initWebViewReporting
- getPluginExtension
- reportAdRevenue
public final class YandexMetrica
extends java.lang.Object
Method Summary
Modifier and Type | Method and Description |
---|---|
static void | activate(android.content.Context context, YandexMetricaConfig config)
Инициализирует библиотеку
YandexMetrica с расширенной стартовой конфигурацией Context и YandexMetricaConfig . |
static void | activateReporter(android.content.Context context, ReporterConfig config)
Активирует репортер с расширенной конфигурацией.
|
static void | enableActivityAutoTracking(android.app.Application application)
Сеансы должны отслеживаться автоматически без вызова этого метода.
|
static int | getLibraryApiLevel()
Возвращает уровень API библиотеки.
|
static java.lang.String | getLibraryVersion()
Возвращает текущую версию библиотеки AppMetrica.
|
static YandexMetricaPlugins | getPluginExtension()
Создает экземпляр
YandexMetricaPlugins который может отправлять события основному API key. |
static IReporter | getReporter(android.content.Context context, java.lang.String apiKey)
Возвращает объект, который реализует интерфейс
IReporter для заданного API key. |
static void | initWebViewReporting(android.webkit.WebView webView)
Добавляет для указанной вебвью JavaScript-интерфейс с названием AppMetrica в window.
|
static void | pauseSession(android.app.Activity activity)
Приостанавливает сессию.
|
static void | putErrorEnvironmentValue(java.lang.String key, java.lang.String value)
Добавляет/удаляет пару ключ-значение в окружение ошибок приложения.
|
static void | reportAdRevenue(AdRevenue adRevenue)
Отправляет информацию о рекламной выручке (Ad Revenue) на сервер AppMetrica.
|
static void | reportAppOpen(android.app.Activity activity)
Отправляет сообщение об открытии приложения с помощью deeplink.
|
static void | reportAppOpen(android.content.Intent intent)
Отправляет сообщение об открытии приложения с помощью deeplink.
|
static void | reportAppOpen(java.lang.String deeplink)
Отправляет сообщение об открытии приложения с помощью deeplink в виде строки.
|
static void | reportECommerce(ECommerceEvent event)
Отправляет сообщение о ECommerce-событии.
|
static void | reportError(java.lang.String identifier, java.lang.String message)
Отправляет сообщение об ошибке с собственным идентификатором.
|
static void | reportError(java.lang.String identifier, java.lang.String message, java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором.
|
static void | reportError(java.lang.String message, java.lang.Throwable error)
Отправляет сообщение об ошибке с собственным идентификатором.
|
static void | reportEvent(java.lang.String eventName)
Отправляет сообщение о событии.
|
static void | reportEvent(java.lang.String eventName, java.util.Map<java.lang.String,java.lang.Object> attributes)
Отправляет сообщение о событии в виде набора атрибутов (Map).
|
static void | reportEvent(java.lang.String eventName, java.lang.String jsonValue)
Отправляет сообщение о событии в формате JSON в виде строки.
|
static void | reportNativeCrash(java.lang.String nativeCrash)
Deprecated.
|
static void | reportReferralUrl(java.lang.String referralUrl)
Deprecated.
|
static void | reportRevenue(Revenue revenue)
Отправляет информацию о покупке на сервер AppMetrica.
|
static void | reportUnhandledException(java.lang.Throwable exception)
Отправляет сообщение об аварийной остановке приложения в объекте
Throwable . |
static void | reportUserProfile(UserProfile profile)
Отправляет информацию об обновлении пользовательского профиля.
|
static void | requestAppMetricaDeviceID(AppMetricaDeviceIDListener listener)
Запрашивает уникальный идентификатор AppMetrica (deviceID).
|
static void | requestDeferredDeeplink(DeferredDeeplinkListener listener)
Запрашивает отложенный deeplink.
|
static void | requestDeferredDeeplinkParameters(DeferredDeeplinkParametersListener listener)
Запрашивает параметры отложенного deeplink.
|
static void | resumeSession(android.app.Activity activity)
Возобновляет сессию или создает новую, если тайм-аут сессии истек.
|
static void | sendEventsBuffer()
Отправляет сохраненные события из буфера.
|
static void | setLocation(android.location.Location location)
Устанавливает собственную информацию о местоположении устройства.
|
static void | setLocationTracking(boolean enabled)
Включает/отключает отправку информации о местоположении устройства.
|
static void | setLocationTracking(android.content.Context context, boolean enabled)
Определяет, будет ли включены данные о местоположении в отчеты AppMetrica.
|
static void | setStatisticsSending(android.content.Context context, boolean enabled)
Включает/отключает отправку статистики на сервер AppMetrica.
|
static void | setUserProfileID(java.lang.String userProfileID)
Задает ID пользовательского профиля.
|
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)
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)
- 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)
- 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)
- Parameters:
activity
- - Объект класса Activity.
reportAppOpen
public static void reportAppOpen(@NonNull java.lang.String deeplink)
- Parameters:
deeplink
- Deeplink в виде строки.
reportAppOpen
public static void reportAppOpen(@NonNull android.content.Intent intent)
- Parameters:
intent
- - Объект класса Intent.
reportReferralUrl
public static void reportReferralUrl(@NonNull java.lang.String referralUrl)
- 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)
ПРИМЕЧАНИЕ: Значение по умолчанию 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)
ПРИМЕЧАНИЕ: Отключение отправки для главного API key также отключает отправку данных со всех репортеров, которые были инициализированы с другим API key.
- Parameters:
context
- Объект класса Context.enabled
- Признак включения отправки статистики. Значение по умолчанию —true
. Возможные значения:true
— отправка статистики включена.false
— отправка статистики выключена.
activateReporter
public static void activateReporter(@NonNull android.content.Context context, @NonNull ReporterConfig config)
ПРИМЕЧАНИЕ: Примечание. Активация репортера должна происходить до вызова метода 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)
DeferredDeeplinkParametersListener.onParametersLoaded(Map)
, если не возникает ошибок при получении Google Play Install Referrer. Если возникает ошибка, то значение ошибки хранится в интерфейсе DeferredDeeplinkParametersListener.onError(DeferredDeeplinkParametersListener.Error, String)
- Parameters:
listener
- Интерфейс для оповещения о получении параметров отложенного deeplink.
requestDeferredDeeplink
public static void requestDeferredDeeplink(@NonNull DeferredDeeplinkListener listener)
DeferredDeeplinkListener.onDeeplinkLoaded(String)
, если не возникает ошибок при получении Google Play Install Referrer. Если возникает ошибка, то значение ошибки хранится в интерфейсе DeferredDeeplinkListener.onError(DeferredDeeplinkListener.Error, String)
- Parameters:
listener
- Интерфейс для оповещения о получении отложенного deeplink.
requestAppMetricaDeviceID
public static void requestAppMetricaDeviceID(@NonNull AppMetricaDeviceIDListener listener)
ПРИМЕЧАНИЕ: В 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)
- Parameters:
userProfileID
- Произвольный ID профиля.
reportUserProfile
public static void reportUserProfile(@NonNull UserProfile profile)
- Parameters:
profile
- ОбъектUserProfile
, который содержит информацию о пользовательском профиле.
reportECommerce
public static void reportECommerce(@NonNull ECommerceEvent event)
- Parameters:
event
- Объект классаECommerceEvent
.- See Also:
ECommerceEvent
putErrorEnvironmentValue
public static void putErrorEnvironmentValue(@NonNull java.lang.String key, @Nullable java.lang.String value)
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)
Замечания:
Метод должен вызываться из главного потока.
На момент вызова у 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:
- экземпляр расширения плагина