Настройка отправки атрибутов профилей

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

Внимание

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

Ниже описаны этапы настройки отправки атрибутов:

Шаг 1. Добавьте атрибут в настройках приложения

  1. В интерфейсе AppMetrica перейдите в настройки приложения из меню слева.
  2. Откройте вкладку Атрибуты профилей.
  3. В разделе Собственные атрибуты введите название нового атрибута в соответствующее поле.
  4. Выберите тип переменной из выпадающего списка и нажмите Добавить.

В настройках Атрибуты профилей отображается список всех атрибутов и их статус. Чтобы прекратить сбор атрибута и убрать его из отчетов, нажмите кнопку .

Шаг 2. Настройте отправку значений атрибутов в AppMetrica SDK

Внимание

Если отправка ProfileId не настроена, предопределенные атрибуты не отображаются в веб-интерфейсе.

Ниже представлены примеры отправки атрибутов профиля.

Чтобы отправить атрибуты профиля, передайте в объект UserProfile необходимые атрибуты и отправьте этот объект с помощью метода AppMetrica.reportUserProfile(UserProfile profile). Атрибуты профиля создаются с помощью методов класса Attribute.

// Creating the UserProfile instance.
UserProfile userProfile = UserProfile.newBuilder()
        // Updating predefined attributes.
        .apply(Attribute.name().withValue("John"))
        .apply(Attribute.gender().withValue(GenderAttribute.Gender.MALE))
        .apply(Attribute.birthDate().withAge(24))
        .apply(Attribute.notificationsEnabled().withValue(false))
        // Updating custom attributes.
        .apply(Attribute.customString("string_attribute").withValue("string"))
        .apply(Attribute.customNumber("number_attribute").withValue(55))
        .apply(Attribute.customCounter("counter_attribute").withDelta(1))
        .build();
// Setting the ProfileID using the method of the AppMetrica class.
AppMetrica.setUserProfileID("id");

// Sending the UserProfile instance.
AppMetrica.reportUserProfile(userProfile);

Чтобы отправить атрибуты профиля, передайте в метод +reportUserProfile:onFailure: класса AMAAppMetrica следующие параметры:

  • userProfile — объект UserProfile, который содержит массив обновлений атрибутов. Атрибуты профиля создаются с помощью методов класса AMAProfileAttribute.
  • onFailure — блок, в который передается ошибка. Если вы не хотите отслеживать ошибку, то передайте в качестве блока значение nil.
AMAMutableUserProfile *profile = [[AMAMutableUserProfile alloc] init];
// Updating a single user profile attribute.
id<AMACustomCounterAttribute> timeLeftAttribute = [AMAProfileAttribute customCounter:@"time_left"];
[profile apply:[timeLeftAttribute withDelta:-4.42]];
// Updating multiple attributes.
[profile applyFromArray:@[
    // Updating predefined attributes.
    [[AMAProfileAttribute name] withValue:@"John"],
    [[AMAProfileAttribute gender] withValue:AMAGenderTypeMale],
    [[AMAProfileAttribute birthDate] withAge:24],
    [[AMAProfileAttribute notificationsEnabled] withValue:NO],
    // Updating custom attributes.
    [[AMAProfileAttribute customString:@"born_in"] withValueIfUndefined:@"Moscow"],
    [[AMAProfileAttribute customString:@"address"] withValueReset],
    [[AMAProfileAttribute customNumber:@"age"] withValue:24],
    [[AMAProfileAttribute customCounter:@"logins_count"] withDelta:1],
    [[AMAProfileAttribute customBool:@"has_premium"] withValue:YES]
]];
// ProfieID is set using the method of the AMAAppMetrica class.
[AMAAppMetrica >userProfileID:@"id"];

// Sending profile attributes.
[AMAAppMetrica reportUserProfile:[profile copy] onFailure:^(NSError *error) {
    NSLog(@"Error: %@", error);
}];

Чтобы отправить атрибуты профиля, передайте в метод reportUserProfile(_:onFailure:) класса AppMetrica следующие параметры:

  • userProfile — объект UserProfile, который содержит массив обновлений атрибутов. Атрибуты профиля создаются с помощью методов класса ProfileAttribute.
  • onFailure — блок, в который передается ошибка. Если вы не хотите отслеживать ошибку, то передайте в качестве блока значение nil.
let profile = MutableUserProfile()
// Updating a single user profile attribute.
let timeLeftAttribute: CustomCounterAttribute = ProfileAttribute.customCounter("time_left")
profile.apply(timeLeftAttribute.withDelta(-4.42))
// Updating multiple attributes.
profile.apply(from: [
    // Updating predefined attributes.
    ProfileAttribute.name().withValue("John"),
    ProfileAttribute.gender().withValue(GenderType.male),
    ProfileAttribute.birthDate().withAge(24),
    ProfileAttribute.notificationsEnabled().withValue(false),
    // Updating custom attributes.
    ProfileAttribute.customString("born_in").withValueIfUndefined("Moscow"),
    ProfileAttribute.customString("address").withValueReset(),
    ProfileAttribute.customNumber("age").withValue(24),
    ProfileAttribute.customCounter("logins_count").withDelta(1),
    ProfileAttribute.customBool("has_premium").withValue(true)
])
// ProfieID is set using the method of the AppMetrica class.
AppMetrica.userProfileID("id")

// Sending profile attributes.
AppMetrica.report(profile, onFailure: { (error) in
    print("REPORT ERROR: %@", error.localizedDescription)
})

Чтобы отправить атрибуты профиля, передайте в метод AppMetrica.reportUserProfile(UserProfile); объект класса UserProfile.

// Creating the UserProfile instance.
UserProfile userProfile = UserProfile([
// Updating predefined attributes.
NameAttribute.withValue("John"),
GenderAttribute.withValue(Gender.MALE),
BirthDateAttribute.withAge(24),
NotificationEnabledAttribute.withValue(false),
// Updating custom attributes.
StringAttribute.withValue("string_attribute", "string"),
NumberAttribute.withValue("number_attribute", 55),
CounterAttribute.withDelta("counter_attribute", 1)
]);

// Setting the ProfileID using the method of the YandexMetrica class.
AppMetrica.setUserProfileID("id");

// Sending the UserProfile instance.
AppMetrica.reportUserProfile(userProfile);

См. также

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

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