FAQ
Что делать, если не пишется статистика?
- Проверить, что у вас установлена самая новая версия SDK
- Проверить все шаги настройки интеграции SDK в вашем приложении: Установка
- Проверить настройки в личном кабинете сервиса
- Если выше указанные шаги не помогли, обратиться в поддержку с подробным описанием и частотой повторения проблемы
Почему могут не приходить пуши?
Неверные ключи
Были взяты ключи из 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]];