Skip to content

FAQ

Что делать, если не пишется статистика?
  1. Проверить, что у вас установлена самая новая версия SDK
  2. Проверить все шаги настройки интеграции SDK в вашем приложении: Установка
  3. Проверить настройки в личном кабинете сервиса
  4. Если выше указанные шаги не помогли, обратиться в поддержку с подробным описанием и частотой повторения проблемы
Почему могут не приходить пуши?

Неверные ключи

Были взяты ключи из webApi, а не из раздела Разработчикам.

Решение: вернитесь в раздел 2. Ключи для SDK и проверьте, всё ли вы сделали правильно

Клик на push-уведомление был, но нужный раздел приложения не открылся

Проверьте настройку ссылок в push-уведомлениях: Использование ссылок в пушах

Что делать, если системного свойства не оказалось в SDK, но в WEB версии он есть?

Его можно передать с помощью обычного UserProperty. Но нужно быть аккуратным, бэк просто не запишет несуществующее системное свойство.

swift
let prop = UserProperty(key: "$name", value: "userName")
Carrot.shared.setUserProperty([prop])
objective-c
UserProperty *prop = [[UserProperty alloc] initWithKey:@"$name" value:@"userName"];
[[Carrot shared] setUserProperty:@[prop]];
Как передать другие типы свойств, такие же как на WEB версии?

Просто передав свойства в виде строки.

swift
let propInt = UserProperty(key: "propInt", value: "145") // Число
let propStr = UserProperty(key: "propStr", value: "Hello, world!") // Строка
let propBool = UserProperty(key: "propBool", value: "true") // Логический
let propDate = UserProperty(key: "propDate", value: "2015-09-13T13:25:05") // Дата или время
let propList = UserProperty(key: "propList", value: #"["element1", "element2", "element3"]"#) // Список

Carrot.shared.setUserProperty([
		propInt,
		propStr,
		propBool,
		propDate,
		propList
])
objective-c
UserProperty *propInt = [[UserProperty alloc] initWithKey:@"propInt" value:@"145"];
UserProperty *propStr = [[UserProperty alloc] initWithKey:@"propStr" value:@"Hello, world!"];
UserProperty *propBool = [[UserProperty alloc] initWithKey:@"propBool" value:@"true"];
UserProperty *propDate = [[UserProperty alloc] initWithKey:@"propDate" value:@"2015-09-13T13:25:05"];
UserProperty *propList = [[UserProperty alloc] initWithKey:@"propList" value:@"[\"element1\", \"element2\", \"element3\"]"];

[[Carrot shared] setUserProperty:@[
    propInt,
    propStr,
    propBool,
    propDate,
    propList
]];

Дружеское напоминание: можно использовать встроенные в язык конвертеры. Например:

swift
let number: Int = 64
let propInt = UserProperty(key: "propInt", value: String(number))
Carrot.shared.setUserProperty([propInt])
objective-c
NSInteger number = 64;
UserProperty *propInt = [[UserProperty alloc] initWithKey:@"propInt"
                                                    value:[NSString stringWithFormat:@"%ld", (long)number]];
[[Carrot shared] setUserProperty:@[propInt]];