Справочник методов

Types

// Содержит расширенную конфигурацию запуска библиотеки.
export type AppMetricaConfig = {
  apiKey: string,
  appVersion?: string,
  crashReporting?: boolean,
  firstActivationAsUpdate?: boolean,
  location: Location,
  locationTracking?: boolean,
  logs?: boolean,
  sessionTimeout?: number,
  statisticsSending?: boolean,
  preloadInfo?: PreloadInfo,
  appOpenTrackingEnabled?: boolean,
  maxReportsInDatabaseCount?: number,
  nativeCrashReporting?: boolean, // Android only.
  activationAsSessionStart?: boolean, // iOS only.
  sessionsAutoTracking?: boolean,
  userProfileID?: string,
  errorEnvironment?: Record<string, string | undefined>,
  appEnvironment?: Record<string, string | undefined>,
  maxReportsCount?: number,
  dispatchPeriodSeconds?: number,
}

// Тип содержит информацию для трекинга предустановленных приложений.
export type PreloadInfo = {
  trackingId: string,
  additionalInfo?: Record<string, string>,
}

// Тип содержит информацию о местоположении устройства.
export type Location = {
  latitude: number,
  longitude: number,
  altitude?: number,
  accuracy?: number,
  course?: number,
  speed?: number,
  timestamp?: number,
}

// Содержит возможные ошибки метода requestStartupParams().
export type StartupParamsReason = 'UNKNOWN' | 'NETWORK' | 'INVALID_RESPONSE';

// Содержит идентификаторы, получаемые методом requestStartupParams().
export type StartupParams = {
  deviceIdHash?: string,
  deviceId?: string,
  uuid?: string,
}

// Callback, который передается в метод requestStartupParams().
type StartupParamsCallback = (
  params?: StartupParams,
  reason?: StartupParamsReason
) => void

// Тип содержит информацию об экране, на котором происходит ecommerce событие.
export type ECommerceScreen = {
  name: string,
  searchQuery?: string,
  payload?: Map<string, string>,
  categoriesPath?: Array<string>,
}

// Содержит информацию о валюте и стоимости.
export type ECommerceAmount = {
  amount: number | string,
  unit: string,
}

// Содержит информацию о цене.
export type ECommercePrice = {
  amount: ECommerceAmount,
  internalComponents?: Array<ECommerceAmount>,
}

// Содержит информацию об отдельном товаре.
export type ECommerceProduct = {
  sku: string,
  name?: string,
  actualPrice?: ECommercePrice,
  originalPrice?: ECommercePrice,
  promocodes?: Array<string>,
  categoriesPath?: Array<string>,
  payload?: Map<string, string>,
}

// Содержит информацию об источнике, который привел к товару.
export type ECommerceReferrer = {
  type?: string,
  identifier?: string,
  screen?: ECommerceScreen,
}

// Содержит информацию о позиции в корзине, о количестве товара и его стоимости.
export type ECommerceCartItem = {
  product: ECommerceProduct,
  price: ECommercePrice,
  quantity: number | string,
  referrer?: ECommerceReferrer,
}

// Содержит информацию о заказе.
export type ECommerceOrder = {
  orderId: string,
  products: Array<ECommerceCartItem>,
  payload?: Map<string, string>,
}

// Тип для отправки in-app покупок из приложения. Содержит информацию о доходе.
export type Revenue = {
  price: number,
  currency: string,
  productID?: string,
  quantity?: number,
  payload?: string,
  receipt?: Receipt,
}

// Используется для валидации in-app покупок.
export type Receipt = {
  transactionID?: string,
  receiptData?: string,
  signature?: string,
}

// Содержит информацию о доходе с рекламы.
export type AdRevenue = {
  price: number | string,
  currency: string,
  payload?: Map<string, string>,
  adNetwork?: string,
  adPlacementID?: string,
  adPlacementName?: string,
  adType?: AdType,
  adUnitID?: string,
  adUnitName?: string,
  precision?: string,
}

// Содержит возможные значения для GenderAttribute
export type UserProfileGender = 'male' | 'female' | 'other';

// Содержит расширенную конфигурацию репортера.
export type ReporterConfig = {
  apiKey: string,
  logs?: boolean,
  maxReportsInDatabaseCount?: number,
  sessionTimeout?: number,
  dataSendingEnabled?: boolean,
  appEnvironment?: Record<string, string | undefined>,
  dispatchPeriodSeconds?: number,
  userProfileID?: string,
  maxReportsCount?: number,
}

// Содержит возможные ошибки методов requestDeferredDeeplink() и requestDeferredDeeplinkParameters().
export type DeferredDeeplinkError = 'NO_REFERRER' | 'NOT_A_FIRST_LAUNCH' | 'PARSE_ERROR' | 'UNKNOWN';

Enums

// Содержит возможные типы рекламы для отправки AdRevenue.
export enum AdType {
  NATIVE,
  BANNER,
  MREC,
  INTERSTITIAL,
  REWARDED,
  OTHER,
}

Classes

AppMetrica

Основной класс для использования библиотеки.

// Инициализирует библиотеку с расширенной конфигурацией.
activate(config: AppMetricaConfig)

// Возвращает текущую версию библиотеки.
async getLibraryVersion(): string

// Сообщает о паузе текущей сессии.
pauseSession()

// Отправляет информацию о том, что приложение открыто диплинком.
reportAppOpen(deeplink?: string = null)

// Отправляет кастомное событие.
reportEvent(eventName: string, attributes?: Record<string, any>)

// Метод для передачи ошибок.
reportError(identifier: string, message: string)

// Метод для передачи ошибок без идентификатора.
reportErrorWithoutIdentifier(message: string | undefined, error: Error)

// Метод для передачи крэшей.
reportUnhandledException(error: Error)

// Запрашивает различные идентификаторы AppMetrica SDK.
requestStartupParams(listener: StartupParamsCallback, identifiers: Array<string>)

// Сообщает о продолжении сессии или о старте новой, если таймаут сессии прошел.
resumeSession()

// Отправляет события, накопленные в буфере.
sendEventsBuffer()

// Передает местоположение устройства.
setLocation(location?: Location)

// Включает/выключает сбор данных о местоположении устройств.
setLocationTracking(enabled: boolean)

// Включает/выключает отправку данных в AppMetrica.
setDataSendingEnabled(enabled: boolean)

// Присваивает идентификатор профиля.
setUserProfileID(userProfileID?: string)

// Метод только для Android. Возвращает уровень API библиотеки.
async getLibraryApiLevel(): number

// Отправляет Ecommerce событие.
reportECommerce(event: ECommerceEvent)

// Отправляет In-App покупки.
reportRevenue(revenue: Revenue)

// Отправляет AdRevenue.
reportAdRevenue(adRevenue: AdRevenue)

// Отправляет профиль пользователя.
reportUserProfile(userProfile: UserProfile)

// Удаляет все данные ключ-значение, связанные со всеми будущими событиями.
clearAppEnvironment()

// Устанавливает пару ключ-значение, которая ассоциирована со всеми будущими событиями.
putAppEnvironmentValue(key: string, value?: string)

// Возвращает объект, реализующий IReporter для заданного API key приложения.
getReporter(apiKey: string)

// Активирует репортер с расширенной конфигурацией.
activateReporter(config: ReporterConfig)

// Возвращает идентификатора устройства или null.
async getDeviceId()

// Возвращает идентификатор установки или null.
async getUuid()

// Запрашивает отложенный deeplink. Отложенный deeplink доступен после получения Google Play installation referrer.
// Реферер обычно доступен вскоре после первого запуска приложения.
// После получения реферера отложенный deeplink передается в DeferredDeeplinkListener.onSuccess(deeplink: string).
// Если произойдет ошибка, она будет передана в DeferredDeeplinkListener.onFailure(error: DeferredDeeplinkError, referrer?: string).
requestDeferredDeeplink(listener: DeferredDeeplinkListener)

// Запрашивает параметры отложенного deeplink. Параметры доступны после получения Google Play installation referrer.
// Реферер обычно доступен вскоре после первого запуска приложения.
// После получения реферера параметры отложенного deeplink передаются в DeferredDeeplinkParametersListener.onSuccess(parameters: Record<string, string>).
// Если произойдет ошибка, она будет передана в DeferredDeeplinkParametersListener.onFailure: (error: DeferredDeeplinkError, referrer?: string).
requestDeferredDeeplinkParameters(listener: DeferredDeeplinkParametersListener)

E-commerce

Для различных действий пользователя есть соответствующие типы ecommerce-событий. Чтобы создать конкретный тип события, используйте нужный метод класса.

Подробнее про отправку E-commerce-событий в разделе E-commerce.

// Возвращает ECommerceEvent для отправки события "просмотр карточки товара".
showProductCardEvent(product: ECommerceProduct, screen: ECommerceScreen): ECommerceEvent

// Возвращает ECommerceEvent для отправки события "просмотр страницы товара".
showProductDetailsEvent(product: ECommerceProduct, referrer?: ECommerceReferrer): ECommerceEvent

// Возвращает ECommerceEvent для отправки события "добавление товара в корзину".
addCartItemEvent(item: ECommerceCartItem): ECommerceEvent

// Возвращает ECommerceEvent для отправки события "удаление товара из корзины".
removeCartItemEvent(item: ECommerceCartItem): ECommerceEvent

// Возвращает ECommerceEvent для отправки события "начало оформления покупки".
beginCheckoutEvent(order: ECommerceOrder): ECommerceEvent

// Возвращает ECommerceEvent для отправки события "завершение покупки".
purchaseEvent(order: ECommerceOrder): ECommerceEvent

Подробнее о методах и интеграции AppMetrica в приложение смотрите в разделах документации для Android и iOS.

UserProfile

Класс для хранения профиля пользователя. Подробнее.

// Применяет к UserProfile атрибут пользователя
apply(attribute: UserProfileUpdate): UserProfile

Attributes

Класс для созданиz атрибутов профиля. Подробнее.

// Создает предопределенный атрибут для даты рождения/возраста.
birthDate(): BirthDateAttribute

// Создает предопределенный атрибут для пола.
gender(): GenderAttribute

// Создает предопределенный атрибут для имени.
userName(): NameAttribute

// Создает предопределенный атрибут для статуса уведомлений.
notificationsEnabled(): NotificationsEnabledAttribute

// Создает собственный атрибут типа bool.
customBoolean(key: string): BooleanAttribute

// Создает собственный атрибут типа счетчик.
customCounter(key: string): CounterAttribute

// Создает собственный атрибут типа number.
customNumber(key: string): NumberAttribute

// Создает собственный атрибут типа string.
customString(key: string): StringAttribute

BirthDateAttribute

Класс для обновления возраста или даты рождения пользовательского профиля.

// Обновляет значение атрибута.
withAge(age: number): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withAgeIfUndefined(age: number): UserProfileUpdate

// Обновляет значение атрибута.
withYear(year: number): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withYearIfUndefined(year: number): UserProfileUpdate

// Обновляет значение атрибута.
withMonth(year: number, month: number): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withMonthIfUndefined(year: number, month: number): UserProfileUpdate

// Обновляет значение атрибута.
withDay(year: number, month: number, day: number): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withDayIfUndefined(year: number, month: number, day: number): UserProfileUpdate

// Обновляет значение атрибута.
withDate(date: Date): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withDateIfUndefined(date: Date): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

BooleanAttribute

Класс для обновления значения логического атрибута.

// Обновляет значение атрибута.
withValue(value: boolean): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(value: boolean): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

CounterAttribute

Класс для обновления значения атрибута типа счетчик.

// Обновляет значение атрибута.
withDelta(delta: number): UserProfileUpdate

GenderAttribute

Класс для обновления пола пользовательского профиля.

// Обновляет значение атрибута.
withValue(gender: UserProfileGender): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(gender: UserProfileGender): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

NameAttribute

Класс для обновления имени пользовательского профиля.

// Обновляет значение атрибута.
withValue(value: string): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(value: string): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

NotificationsEnabledAttribute

Класс для обновления статуса уведомлений пользовательского профиля.

// Обновляет значение атрибута.
withValue(value: boolean): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(value: boolean): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

NumberAttribute

Класс для обновления значения числового атрибута.

// Обновляет значение атрибута.
withValue(value: number): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(value: number): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

StringAttribute

Класс для обновления значения строкового атрибута.

// Обновляет значение атрибута.
withValue(value: string): UserProfileUpdate

// Обновляет значение атрибута, если оно не было установлено ранее.
withValueIfUndefined(value: string): UserProfileUpdate

// Сбрасывает значение атрибута.
withValueReset(): UserProfileUpdate

Interfaces

UserProfileUpdate

Содержит информацию об изменении атрибута пользователя.

Создаётся с помощью методов класса Attributes и передаётся в UserProfile.apply метод.

IReporter

Реализация этого интерфейса используется для отправки данных на дополнительные APIKey.
Получить реализацию можно методом AppMetrica.getReporter(apiKey: string). Для активации репортера с расширенной конфигурацией нужно вызвать метод AppMetrica.activateReporter(config: ReporterConfig) до первого вызова AppMetrica.getReporter(apiKey: string) с тем же APIKey.

  // Передает ошибки через репортер.
  reportError(identifier: string, message?: string, _reason?: Error | Object)

  // Передает ошибки без идентификатора.
  reportErrorWithoutIdentifier(message: string | undefined, error: Error)

  // Отправляет крэши.
  reportUnhandledException(error: Error)

  // Отправляет кастомное событие.
  reportEvent(eventName: string, attributes?: Record<string, any>)

  // Сообщает о паузе текущей сессии.
  pauseSession()

  // Сообщает о продолжении сессии или о старте новой, если таймаут сессии прошел.
  resumeSession()

  // Отправляет события, накопленные в буфере.
  sendEventsBuffer()

  // Удаляет все данные ключ-значение, связанные со всеми будущими событиями.
  clearAppEnvironment()

  // Устанавливает пару ключ-значение, которая ассоциирована со всеми будущими событиями.
  putAppEnvironmentValue(key: string, value?: string)

  // Присваивает идентификатор профиля.
  setUserProfileID(userProfileID?: string)

  // Включает/выключает отправку данных в AppMetrica.
  setDataSendingEnabled(enabled: boolean)

  // Отправляет профиль пользователя.
  reportUserProfile(userProfile: UserProfile)

  // Отправляет AdRevenue.
  reportAdRevenue(adRevenue: AdRevenue)

  // Отправляет Ecommerce события.
  reportECommerce(event: ECommerceEvent)

  // Отправляет In-App покупки.
  reportRevenue(revenue: Revenue)

DeferredDeeplinkListener

Слушатель для получения отложенного диплинка. Его реализация передается в метод requestDeferredDeeplink(listener: DeferredDeeplinkListener)

// Получает отложенный deeplink
onSuccess(deeplink: string)

// Обрабатывает ошибки при получении отложенного диплинка
onFailure(error: DeferredDeeplinkError, referrer?: string)

DeferredDeeplinkParametersListener

Слушатель для получения параметров отложенного диплинка. Его реализация передается в метод requestDeferredDeeplinkParameters(listener: DeferredDeeplinkParametersListener)

// Получает параметры отложенного дипплинка
onSuccess(parameters: Record<string, string>)

// Обрабатывает ошибки при получении параметров отложенного диплинка
onFailure(error: DeferredDeeplinkError, referrer?: string)

См. также

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

Написать в службу поддержки