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

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

Внимание. Не передавайте личную или конфиденциальную информацию о пользователях в пользовательском событии.
Методы класса YMMYandexMetricaМетоды позволяют настроить работу библиотеки.
Метод Описание
class func activate(with configuration: YMMYandexMetricaConfiguration) Позволяет запустить процесс сбора статистики с расширенной конфигурацией
class func setLocationTracking(_ enabled: Bool)

Позволяет разрешить или запретить библиотеке отправлять данные о местоположении устройства в отчетах

class func setLocation(_ location: CLLocation?)
Позволяет передавать собственные данные о местоположении устройства
Примечание. Для использования метода импортируйте класс CoreLocation.

class func reportEvent(_ message: String, onFailure: ((Error) -> Void)? = nil)

Позволяет отправлять произвольное сообщение о событии.

class func reportEvent(_ message: String, parameters params: [AnyHashable : Any]?, onFailure: ((Error) -> Void)? = nil)

Позволяет отправлять произвольное сообщение о событии и дополнительные параметры

class func reportError(_ message: String, exception: NSException?, onFailure: ((Error) -> Void)? = nil)

Позволяет отправлять произвольное сообщение об ошибке
class func handleOpen(_ url: URL) -> Bool Позволяет зарегистрировать открытие приложения с помощью deeplink
class func activateReporter(with configuration: YMMReporterConfiguration) Активирует репортер с заданной конфигурацией
class func reporter(forApiKey apiKey: String) -> YMMYandexMetricaReporting? Создает репортер для отправки событий на дополнительный API key
class func reportReferralUrl(_ url: URL) Задает referral URL установки приложения. Метод может быть использован для отслеживания некоторых источников трафика.
class func reportRevenue(_ revenueInfo: YMMRevenueInfo, onFailure: ((Error) -> Void)? = nil) Передает информацию о покупке на сервер AppMetrica.
class func setUserProfileID(_ userProfileID: String?) Устанавливает ID для пользовательского профиля.
class func report(_ userProfile: YMMUserProfile, onFailure: ((Error) -> Void)? = nil) Передает информацию об обновлении пользовательского профиля на сервер AppMetrica

Методы-геттеры:

Метод Описание

open class func libraryVersion() -> String

Определяет текущую версию библиотеки AppMetrica
Методы класса YMMYandexMetricaConfiguration

Класс содержит расширенную стартовую конфигурацию библиотеки. Расширенная конфигурация необходима, если вы хотите отслеживать предустановленные приложения.

Метод Описание
public init?(apiKey: String) Создает объект класса YMMYandexMetricaConfiguration — конструктор расширенной конфигурации библиотеки AppMetrica
Свойства класса YMMYandexMetricaConfiguration
Свойство Описание
var apiKey: String { get } Позволяет получить API key из расширенной конфигурации библиотеки
var appVersion: String? { get set } Позволяет указать версию приложения
var sessionTimeout: UInt { get set } Позволяет задать тайм-аут сессии в секундах
var crashReporting: Bool { get set } Позволяет отслеживать аварийные остановки приложения
var locationTracking: Bool { get set } Позволяет разрешить/запретить библиотеке отправлять данные о местоположении устройства в отчетах
var location: CLLocation? { get set } Позволяет передать собственные данные о местоположении устройства.
Примечание. Для использования свойства импортируйте класс CoreLocation.
var logs: Bool { get set } Позволяет включить/отключить логирование
var preloadInfo: YMMYandexMetricaPreloadInfo? { get set } Позволяет передать данные для отслеживания предустановленных приложений
var handleFirstActivationAsUpdate: Bool { get set } Позволяет сообщить о том, что первый запуск приложения с AppMetrica SDK следует трактовать как первый запуск обновленной версии приложения, а не как самый первый запуск приложения в его истории
Внимание. После активации параметра все последующие установки приложения будут определены AppMetrica как обновления приложения. Данные установки не будут отображены в отчетах как установки а также не будут атрибутированы партнерам.
Методы класса YMMYandexMetricaPreloadInfo

Класс содержит информацию для отслеживания предустановленных приложений.

Метод Описание
init?(trackingIdentifier trackingID: String) Создает объект класса YMMYandexMetricaPreloadInfo
func setAdditional(_ info: String, forKey key: String) Позволяет задать дополнительные значения в виде пар «ключ-значения» для отслеживания предустановленных приложений. Метод может быть вызван многократно для задания нескольких пар дополнительных сведений
Методы протокола YMMYandexMetricaReporting
Метод Описание
func reportEvent(_ name: String, onFailure: ((Error) ->Void)? = nil) Отправляет произвольное сообщение о событии
func reportEvent(_ name: String, parameters params: [AnyHashable : Any]?, onFailure: ((Error) -> Void)? = nil) Отправляет произвольное сообщение о событии и дополнительные параметры
func reportError(_ name: String, exception: NSException?, onFailure: ((Error) -> Void)? = nil) Отправляет произвольное сообщение об ошибке
func resumeSession() Сообщает о начале сессиии вашего приложения или библиотеки
func pauseSession() Сообщает о возможном завершении сессии вашего приложения или библиотеки
func report(_ userProfile: YMMUserProfile, onFailure: ((Error) -> Void)? = nil) Передает информацию на сервер AppMetrica об обновлении пользовательского профиля.
func setUserProfileID(_ userProfileID: String?) Устанавливает ID для пользовательского профиля.
func reportRevenue(_ revenueInfo: YMMRevenueInfo, onFailure: ((Error) -> Void)? = nil) Передает информацию о покупке на сервер AppMetrica.

Пользовательские профили

Методы класса YMMUserProfileКласс для хранения профиля пользователя. Профиль пользователя — это набор пользовательских атрибутов. Сведения о профиле пользователя отображаются в отчете о профилях пользователей AppMetrica. Объект UserProfile должен быть передан на сервер AppMetrica с помощью метода report() класса YMMYandexMetrica. Используйте методы класса YMMProfileAttribute для создания атрибутов. Профили пользователей хранятся на сервере AppMetrica.
Метод Описание
func apply(_ update: YMMUserProfileUpdate) Применяет обновление пользовательского профиля.
func apply(from updatesArray: [YMMUserProfileUpdate]) Применяет несколько обновлений пользовательского профиля.
Свойства класса YMMUserProfile
Свойство Описание
var updates: [YMMUserProfileUpdate] { get } Массив, содержащий обновления атрибутов.
Методы класса YMMProfileAttributeАтрибут — это свойство пользовательского профиля. Вы можете использовать предопределенные (имя, пол, и т. д.) или создать свои пользовательские атрибуты. AppMetrica позволяет создать до 100 пользовательских атрибутов.
Метод Описание
class func name() -> YMMNameAttribute Создает предопределенный атрибут для имени.
class func gender() -> YMMGenderAttribute Создает предопределенный атрибут для пола.
class func birthDate() -> YMMBirthDateAttribute Создает предопределенный атрибут для даты рождения/возраста.
class func notificationsEnabled() -> YMMNotificationsEnabledAttribute Создает предопределенный атрибут для статуса уведомлений.
class func customString(_ name: String) -> YMMCustomStringAttribute Создает пользовательский атрибут с типом string. Имя атрибута может содержать до 200 символов.
class func customNumber(_ name: String) -> YMMCustomNumberAttribute Создает пользовательский атрибут с типом double. Имя атрибута может содержать до 200 символов.
+class func customCounter(_ name: String) -> YMMCustomCounterAttribute Создает пользовательский атрибут для создания счетчика. Имя атрибута может содержать до 200 символов.
class func customBool(_ name: String) -> YMMCustomBoolAttribute Создает пользовательский атрибут с типом bool. Имя атрибута может содержать до 200 символов.

Предопределенные атрибуты

Методы протокола YMMNameAttributeМетоды позволяют задать имя для пользовательского профиля. Максимальная длина имени — 100 символов.
Метод Описание
func withValue(_ value: String?) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.
Методы протокола YMMGenderAttributeМетоды позволяют задать пол для пользовательского профиля.
Метод Описание
func withValue(_ value: YMMGenderType) -> YMMUserProfileUpdate Обновляет значение атрибута, используя указанное значение из перечисления YMMGenderType.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.

YMMGenderType содержит три элемента:

  • YMMGenderType.male — мужской пол.
  • YMMGenderType.female — женский пол.
  • YMMGenderType.other — другое (например, недостаточно информации для определении пола).
    Примечание. Вы можете установить YMMGenderTypeOther в качестве значения атрибута и передать дополнительную информацию с помощью пользовательских атрибутов.
Методы протокола YMMBirthDateAttributeМетоды позволяют задать дату рождения или возраст для пользовательского профиля.
Метод Описание
func withAge(_ value: UInt) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withDate(year: UInt) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withDate(year: UInt, month: UInt) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withDate(year: UInt, month: UInt, day: UInt) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withDate(dateComponents: DateComponents) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.
Методы протокола YMMNotificationsEnabledAttributeМетоды позволяют задать статус уведомлений для пользовательского профиля. Статус указывает, разрешил ли пользователь приложению получать уведомления.
Метод Описание
func withValue(_ value: Bool) -> YMMUserProfileUpdate Обновляет значение атрибута.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.

Пользовательские атрибуты

Методы протокола YMMCustomStringAttributeМетоды позволяют задать пользовательские атрибуты с типом string для пользовательского профиля. Максимальная длина значения — 200 символов.
Метод Описание
func withValue(_ value: String?) -> YMMUserProfileUpdate Обновляет значение атрибута
func withValueIfUndefined(_ value: String?) -> YMMUserProfileUpdate Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.
Методы протокола YMMCustomNumberAttributeМетоды позволяют задать пользовательские атрибуты с типом double для пользовательского профиля.
Метод Описание
func withValue(_ value: Double) -> YMMUserProfileUpdate Обновляет значение атрибута
func withValueIfUndefined(_ value: Double) -> YMMUserProfileUpdate Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.
Методы протокола YMMCustomCounterAttributeМетоды позволяют задать пользовательские атрибуты для создания счетчика.
Метод Описание
func withDelta(_ value: Double) -> YMMUserProfileUpdate Обновляет значение атрибута, изменяя его на указанную дельту.
Методы протокола YMMCustomBoolAttributeМетоды позволяют задать пользовательские атрибуты с типом bool для пользовательского профиля.
Метод Описание
func withValue(_ value: Bool) -> YMMUserProfileUpdate Обновляет значение атрибута
func withValueIfUndefined(_ value: Bool) -> YMMUserProfileUpdate Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
func withValueReset() -> YMMUserProfileUpdate Сбрасывает значение атрибута.

Информация о покупках

Методы класса YMMRevenueInfo
Метод Описание
init!(price: Double, currency: String!) Создает объект класса YMMRevenueInfo для передачи информации о покупках.
Свойства класса YMMRevenueInfo
Свойство Описание
var price: Double { get } Стоимость. Может быть отрицательной (например, для возврата).

Пример: 0.99

var quantity: UInt { get set } Количество покупок (купленных товаров).

Используется в формуле расчета выручки:

Выручка = количество * стоимость
Примечание. Значение должно быть больше 0. Если значение меньше 0 — покупка игнорируется.
var currency: String! { get } Код валюты покупки в формате ISO 4217. Значение должно содержать 3 латинских буквы в верхнем регистре.
Пример: RUB.
Примечание. Если значение не задано в формате ISO 4217 — покупка игнорируется.
var productID: String! { get set } Идентификатор покупки. Может содержать до 200 символов
var transactionID: String! { get set } Информация из App Store о покупке внутри приложения.

Он должен содержать значение transactionIdentifier из класса SKPaymentTransaction. Подробнее в документации Apple.

Значение должно быть передано вместе с receiptData для проверки транзакции.
var receiptData: Data! { get set } Подробная информация о заказе на покупку приложений в App Store. Значение должно быть передано вместе с transactionID для проверки транзакции. Пример получения:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
revenueInfo.receiptData = [NSData dataWithContentsOfURL:receiptURL];

Подробнее в документации Apple.

Примечание. Получить информацию о покупке необходимо до вызова [[SKPaymentQueue defaultQueue] finishTransaction:transaction].
var payload: [AnyHashable : Any]! { get set } Дополнительная информация о покупке. Например, можно использовать для категоризации ваших продуктов.

Необходимо передать объект NSDictionary, который может быть преобразован в валидный JSON. Максимальный размер значения — 30 КБ.