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

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

Внимание. Не передавайте личную или конфиденциальную информацию о пользователях в пользовательском событии.
Методы класса YMMYandexMetrica

Методы позволяют настроить работу библиотеки.

Метод Описание
+(void)activateWithConfiguration:(YMMYandexMetricaConfiguration *)configuration; Позволяет инициализировать библиотеку в приложении с расширенной стартовой конфигурацией
+(void)setLocationTracking:(BOOL)enabled;
Позволяет разрешить или запретить библиотеке отправлять данные о местоположении устройства в отчетах.
Примечание. Отправка данных о местоположении включена по умолчанию.
+(void)setLocation:(CLLocation *)location;

Устанавливает собственные данные о местоположении устройства

+(void)reportEvent:(NSString *)message onFailure:(void (^)(NSError *error))onFailure;

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

+(void)reportEvent:(NSString *)message parameters:(NSDictionary *)params onFailure:(void (^)(NSError *error))onFailure;

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

+(void)reportError:(NSString *)message exception:(NSException *)exception onFailure:(void (^)(NSError *error))onFailure;

Отправляет произвольное сообщение об ошибке
+(BOOL)handleOpenURL:(NSURL *)url; Позволяет зарегистрировать открытие приложения с помощью deeplink
-(nullable id<YMMYandexMetricaReporting>)reporterForApiKey:(NSString *)apiKey Создает репортер для отправки событий на дополнительный API key
+(void)reportReferralUrl:(NSURL *)url Задает referral URL установки приложения. Метод может быть использован для отслеживания некоторых источников трафика.
+(void)reportUserProfile:(YMMUserProfile *)userProfile onFailure:(nullable void (^)(NSError *error))onFailure; Передает информацию об обновлении пользовательского профиля на сервер AppMetrica.
+(void)setUserProfileID:(nullable NSString *)userProfileID; Устанавливает ID для пользовательского профиля.
+(void)reportRevenue:(YMMRevenueInfo *)revenueInfo onFailure:(nullable void (^)(NSError *error))onFailure; Передает информацию о покупке на сервер AppMetrica.
+(void)sendEventsBuffer; Отправляет сохраненные события из буфера.

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

Внимание. Частое использование этого метода может привести к повышению энергопотребления и расходу исходящего интернет трафика.
+(void)requestAppMetricaDeviceIDWithCompletionQueue:(nullable dispatch_queue_t)queue completionBlock:(YMMAppMetricaDeviceIDRetrievingBlock)block; Возвращает уникальный идентификатор AppMetrica (appmetrica_device_id). Используется в Logs API и Post API.
+(void)setStatisticsSending:(BOOL)enabled; Включает/отключает отправку статистики на сервер AppMetrica. По умолчанию отправка включена.

При отключения отправки, библиотека отправляет диагоностические события.

Примечание. Отключение отправки также отключит отправку данных со всех репортеров, которые были инициализированы с другим apiKey.

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

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

+(NSString *)libraryVersion;

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

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

Метод Описание
-(instancetype)initWithApiKey:(NSString *)apiKey; Создает объект класса YMMYandexMetricaConfiguration — конструктор расширенной конфигурации библиотеки AppMetrica
Свойства класса YMMYandexMetricaConfiguration
Свойство Описание
(nonatomic, copy, readonly) NSString *apiKey; Позволяет получить API key из расширенной конфигурации библиотеки
(nonatomic, copy) NSString *appVersion; Позволяет указать версию приложения
(nonatomic, assign) NSUInteger sessionTimeout; Позволяет задать тайм-аут сессии в секундах
(nonatomic, assign) BOOL crashReporting; Позволяет отслеживать аварийные остановки приложения
(nonatomic, assign) BOOL locationTracking; Позволяет разрешить/запретить библиотеке отправлять данные о местоположении устройства в отчетах
(nonatomic, strong, nullable) CLLocation *location; Позволяет передать собственные данные о местоположении устройства
(nonatomic, assign) BOOL logs; Позволяет включить/отключить логирование
(nonatomic, copy) YMMYandexMetricaPreloadInfo *preloadInfo; Позволяет передать данные для отслеживания предустановленных приложений
(nonatomic, assign) BOOL handleFirstActivationAsUpdate; Позволяет сообщить о том, что первый запуск приложения с AppMetrica SDK следует трактовать как первый запуск обновленной версии приложения, а не как самый первый запуск приложения в его истории
Внимание. После активации параметра все последующие установки приложения будут определены AppMetrica как обновления приложения. Данные установки не будут отображены в отчетах как установки а также не будут атрибутированы партнерам.
(nonatomic, assign) BOOL statisticsSending; Признак, указывающий, включена ли отправка данных на сервер AppMetrica.
Примечание. Отключение отправки также отключит отправку данных со всех репортеров, которые были инициализированы с другим apiKey.
Методы класса YMMYandexMetricaPreloadInfo

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

Метод Описание
-(instancetype)initWithTrackingIdentifier:(NSString *)trackingID; Создает объект класса YMMYandexMetricaPreloadInfo
-(void)setAdditionalInfo:(NSString *)info forKey:(NSString *)key; Позволяет задать дополнительные значения в виде пар «ключ-значения» для отслеживания предустановленных приложений. Метод может быть вызван многократно для задания нескольких пар дополнительных сведений
Методы протокола YMMYandexMetricaReporting
Метод Описание
-(void)reportEvent:(NSString *)name onFailure:(nullable void (^)(NSError *error))onFailure; Отправляет произвольное сообщение о событии
-(void)reportEvent:(NSString *)name parameters:(nullable NSDictionary *)params onFailure:(nullable void (^)(NSError *error))onFailure; Отправляет произвольное сообщение о событии и дополнительные параметры
-(void)reportError:(NSString *)name exception:(nullable NSException *)exception onFailure:(nullable void (^)(NSError *error))onFailure; Отправляет произвольное сообщение об ошибке
-(void)resumeSession; Сообщает о начале сессиии вашего приложения или библиотеки
-(void)pauseSession; Сообщает о возможном завершении сессии вашего приложения или библиотеки
-(void)reportUserProfile:(YMMUserProfile *)userProfile onFailure:(nullable void (^)(NSError *error))onFailure; Передает информацию на сервер AppMetrica об обновлении пользовательского профиля.
-(void)setUserProfileID:(nullable NSString *)userProfileID; Устанавливает ID для пользовательского профиля.
-(void)reportRevenue:(YMMRevenueInfo *)revenueInfo onFailure:(nullable void (^)(NSError *error))onFailure; Передает информацию о покупке на сервер AppMetrica.

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

Методы класса YMMUserProfile
Класс для хранения профиля пользователя. Профиль пользователя — это набор пользовательских атрибутов. Сведения о профиле пользователя отображаются в отчете о профилях пользователей AppMetrica. Объект UserProfile должен быть передан на сервер AppMetrica с помощью метода reportUserProfile класса YMMYandexMetrica. Используйте методы класса YMMProfileAttribute для создания атрибутов. Профили пользователей хранятся на сервере AppMetrica.
Метод Описание
-(void)apply:(YMMUserProfileUpdate *)update; Применяет обновление пользовательского профиля.
-(void)applyFromArray:(NSArray<YMMUserProfileUpdate *>*)updatesArray; Применяет несколько обновлений пользовательского профиля.
Свойства класса YMMUserProfile
Свойство Описание
(nonatomic, copy, readonly) NSArray<YMMUserProfileUpdate *> *updates; Массив, содержащий обновления атрибутов.
Методы класса YMMProfileAttribute

Атрибут — это свойство пользовательского профиля. Вы можете использовать предопределенные (имя, пол, и т. д.) или создать свои пользовательские атрибуты. AppMetrica позволяет создать до 100 пользовательских атрибутов.

Метод Описание
+(id<YMMNameAttribute>)name; Создает предопределенный атрибут для имени.
+(id<YMMGenderAttribute>)gender; Создает предопределенный атрибут для пола.
+(id<YMMBirthDateAttribute>)birthDate; Создает предопределенный атрибут для даты рождения/возраста.
+(id<YMMNotificationsEnabledAttribute>)notificationsEnabled; Создает предопределенный атрибут для статуса уведомлений.
+(id<YMMCustomStringAttribute>)customString:(NSString *)name; Создает пользовательский атрибут с типом string. Имя атрибута может содержать до 200 символов.
+(id<YMMCustomNumberAttribute>)customNumber:(NSString *)name; Создает пользовательский атрибут с типом double. Имя атрибута может содержать до 200 символов.
+(id>YMMCustomCounterAttribute>)customCounter:(NSString *)name; Создает пользовательский атрибут для создания счетчика. Имя атрибута может содержать до 200 символов.
+(id<YMMCustomBoolAttribute>)customBool:(NSString *)name; Создает пользовательский атрибут с типом bool. Имя атрибута может содержать до 200 символов.

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

Методы протокола YMMNameAttribute

Методы позволяют задать имя для пользовательского профиля. Максимальная длина имени — 100 символов.

Метод Описание
-(YMMUserProfileUpdate *)withValue:(nullable NSString *)value; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.
Методы протокола YMMGenderAttribute

Методы позволяют задать пол для пользовательского профиля.

Метод Описание
-(YMMUserProfileUpdate *)withValue:(YMMGenderType)value; Обновляет значение атрибута, используя указанное значение из перечисления YMMGenderType.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.

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

  • YMMGenderTypeMale — мужской пол.
  • YMMGenderTypeFemale — женский пол.
  • YMMGenderTypeOther — другое (например, недостаточно информации для определении пола).
    Примечание. Вы можете установить YMMGenderTypeOther в качестве значения атрибута и передать дополнительную информацию с помощью пользовательских атрибутов.
Методы протокола YMMBirthDateAttribute

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

Метод Описание
-(YMMUserProfileUpdate *)withAge:(NSUInteger)value; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withYear:(NSUInteger)year; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withYear:(NSUInteger)year month:(NSUInteger)month; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withYear:(NSUInteger)year month:(NSUInteger)month day:(NSUInteger)day; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withDateComponents:(NSDateComponents *)dateComponents; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.
Методы протокола YMMNotificationsEnabledAttribute

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

Метод Описание
-(YMMUserProfileUpdate *)withValue:(BOOL)value; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.

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

Методы протокола YMMCustomStringAttribute

Методы позволяют задать пользовательские атрибуты с типом string для пользовательского профиля. Максимальная длина значения — 200 символов.

Метод Описание
-(YMMUserProfileUpdate *)withValue:(nullable NSString *)value; Обновляет значение атрибута
-(YMMUserProfileUpdate *)withValueIfUndefined:(nullable NSString *)value; Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.
Методы протокола YMMCustomNumberAttribute

Методы позволяют задать пользовательские атрибуты с типом double для пользовательского профиля.

Метод Описание
-(YMMUserProfileUpdate *)withValue:(double)value; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withValueIfUndefined:(double)value; Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.
Методы протокола YMMCustomCounterAttribute

Методы позволяют задать пользовательские атрибуты для создания счетчика.

Метод Описание
-(YMMUserProfileUpdate *)withDelta:(double)value; Обновляет значение атрибута, изменяя его на указанную дельту.
Методы протокола YMMCustomBoolAttribute

Методы позволяют задать пользовательские атрибуты с типом bool для пользовательского профиля.

Метод Описание
-(YMMUserProfileUpdate *)withValue:(BOOL)value; Обновляет значение атрибута.
-(YMMUserProfileUpdate *)withValueIfUndefined:(BOOL)value; Обновляет значение атрибута если оно не было установлено ранее.
Примечание. Метод не влияет на значение, если оно было установлено ранее.
-(YMMUserProfileUpdate *)withValueReset; Сбрасывает значение атрибута.

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

Методы класса YMMRevenueInfo
Метод Описание
-(instancetype)initWithPrice:(double)price currency:(NSString *)currency; Создает объект класса YMMRevenueInfo для передачи информации о покупках.
Свойства класса YMMRevenueInfo
Свойство Описание
(nonatomic, assign, readonly) double price; Стоимость. Может быть отрицательной (например, для возврата).

Пример: 0.99

(nonatomic, assign, readonly) NSUInteger quantity; Количество покупок (купленных товаров).

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

Выручка = количество * стоимость
Примечание. Значение должно быть больше 0. Если значение меньше 0 — покупка игнорируется.
(nonatomic, copy, readonly) NSString *currency; Код валюты покупки в формате ISO 4217. Значение должно содержать 3 латинских буквы в верхнем регистре.
Пример: RUB.
Примечание. Если значение не задано в формате ISO 4217 — покупка игнорируется.
(nonatomic, copy, readonly) NSString *productID; Идентификатор покупки. Может содержать до 200 символов
(nonatomic, copy, readonly) NSString *transactionID; Информация из App Store о покупке внутри приложения.

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

Значение должно быть передано вместе с receiptData для проверки транзакции.
(nonatomic, copy, readonly) NSData *receiptData; Подробная информация о заказе на покупку приложений в App Store. Значение должно быть передано вместе с transactionID для проверки транзакции. Пример получения:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
revenueInfo.receiptData = [NSData dataWithContentsOfURL:receiptURL];

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

Примечание. Получить информацию о покупке необходимо до вызова [[SKPaymentQueue defaultQueue] finishTransaction:transaction].
(nonatomic, copy, readonly) NSDictionary *payload; Дополнительная информация о покупке. Например, можно использовать для категоризации ваших продуктов.

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