دادههای سفارشی کاربر
ویرایش
در این صفحه میتوانید برای کاربرانتان اطلاعات (attributes) و تگ اضافه کنید. ثبت اطلاعات هر کاربر به تعامل شما با او کمک میکند طوری که میتوانید پیامهای شخصیسازی شده برایشان ارسال کنید.
مدیریت اطلاعات کاربر (User Attributes)
شما میتوانید اطلاعات و دادههایی که از کاربرانتان دارید را در پروفایل او مدیریت کنید و در تعامل با او از آنها استفاده کنید.
ثبت اطلاعات کاربر
شما میتوانید اطلاعاتی که از کاربر دارید (مانند نام، نام خانوادگی، جنسیت، سن و …) را به طور دلخواه با استفاده از property زیر، در پروفایل او ثبت کنید:
[PushClientManager.defaultManager.userAttributes = @{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
PushClientManager.default().userAttributes = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
پس از فراخوانی این متد و ثبت اطلاعات میتوانید آن را در پنل > جزئیات دستگاه > کارت اطلاعات کاربر مانند زیر مشاهده کنید:
نکته
: در صورتی که از شماره تلفن (پارامتر phone) در اطلاعات کاربران (Attribute) استفاده کنید، میتوانید با smart API چابک اقدام به ارسال پیامک کنید. فقط دقت داشته باشید که شماره همراه کاربر با کد کشور او شروع شود؛ به عنوان مثال ۹۸۹۱۲۰۴۹۸.
نکته
: در صورتی که از آدرس ایمیل (پارامتر email) در اطلاعات کاربران (Attribute) استفاده میکنید، میتوانید با smart API چابک به کاربران ایمیل بزنید.
دقت داشته باشید برای نسخههای ۱.۱۹.۰۰ یا پایینتر از پراپرتی زیر استفاده کنید.
[PushClientManager.defaultManager.userInfo = @{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
PushClientManager.default().userInfo = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
نکته: لطفا property زیر را بعد از register شدن کاربر فراخوانی کنید به عنوان مثال، به قطعه کد زیر توجه کنید:
[PushClientManager.defaultManager registerUser:@"USER_ID" registrationHandler:^(BOOL isRegistered, NSString *userId, NSError *error) {
if (isRegistered) {
[PushClientManager.defaultManager setUserInfo:@{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
}
}];
PushClientManager.default()?.registerUser("USER_ID", registrationHandler: { (register, userId, error) in
if register {
PushClientManager.default()?.userInfo = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
}
})
نکته
: دقت داشته باشید type مقداری که بهvalue
در متدuserAttributes
دادهاید، را نمیتوانید تغییر دهید . به این معنی که اگرboolean
ذخیره کردهاید، دیگر نمیتوانید عدد یاstring
دهید یا برعکس. به مثال زیر توجه کنید.
به عنوان مثال اگر مقدار age
را مانند زیر string
قرار داده باشید:
[PushClientManager.defaultManager.userAttributes = @{
@"age": @"نوزده"
}];
PushClientManager.default().userAttributes = [
"age": "نوزده"]
دیگر عدد قرار دادن آن مانند زیر کار نخواهد کرد:
[PushClientManager.defaultManager.userAttributes = @{
@"age": @19
}];
PushClientManager.default().userAttributes = [
"age": 19]
افزایش دادههای کمیتی کاربر
شما میتوانید دادههای کمیتی کاربر را مانند بازدید از محصول یا صفحهای، خرید آیتم خاصی و .. افزایش دهید. برای این کار متد زیر را فراخوانی کنید:
[PushClientManager.defaultManager incrementUserAttribute:@"visit_comedy_shows"];
PushClientManager.default().incrementUserAttribute("visit_comedy_shows")
افزودن به چند attribute
همچنین متد بالا از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. برای همین میتوانید به بیش از یک attribute اضافه کنید. به نمونه زیر دقت کنید:
NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];
[PushClientManager.defaultManager incrementUserAttributes:attributes];
let attributes = ["comedy_move", "shoes_size"]
PushClientManager.default().incrementUserAttributes(attributes)
افزودن مقدار دلخواه به یک attribute
با متد زیر میتوانید به یک attribute مقدار دلخواهتان را اضافه کنید:
[PushClientManager.defaultManager incrementUserAttributeValue:@"player_level" value:2];
PushClientManager.default().incrementUserAttributeValue("player_level", value: 2)
افزودن مقدار دلخواه به چند attribute
متد زیر از dictionary از attributeها پشتیبانی میکند، بنابراین میتوانید به چند attribute مقدار دلخواهتان را اضافه کنید:
NSMutableDictionary<NSString *, NSNumber *> *attributesDic = [NSMutableDictionary new];
[attributesDic setObject:[NSNumber numberWithDouble:5] forKey:@"visit"];
[attributesDic setObject:[NSNumber numberWithDouble:100] forKey:@"workout"];
[PushClientManager.defaultManager incrementUserAttributeValues:[attributesDic copy]];
let attributesDic = ["visit":NSNumber(5),
"workout":NSNumber(100)]
PushClientManager.default().incrementUserAttributeValues(attributesDic)
کاهش دادههای کمیتی کاربر
شما همچنین میتوانید دادههای کمیتی کاربر را کاهش دهید. برای این کار متد زیر را فراخوانی کنید:
[PushClientManager.defaultManager decrementUserAttribute:@"visit_comedy_shows"];
PushClientManager.default().decrementUserAttribute("visit_comedy_shows")
کم کردن از چند attribute
همچنین متد بالا از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. برای همین میتوانید از بیش از یک attribute کم کنید. به نمونه زیر دقت کنید:
NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];
[PushClientManager.defaultManager decrementUserAttributes:attributes];
let attributes = ["comedy_move", "shoes_size"]
PushClientManager.default().decrementUserAttributes(attributes)
کاهش مقدار دلخواه از یک attribute
با متد زیر میتوانید از یک attribute مقدار دلخواهتان را کم کنید:
[PushClientManager.defaultManager decrementUserAttributeValue:@"player_level" value:2];
PushClientManager.default().decrementUserAttributeValue("player_level", value: 2)
کاهش مقدار دلخواه از چند attribute
متد زیر از dictionary از attributeها پشتیبانی میکند، بنابراین میتوانید از چند attribute مقدار دلخواهتان را کم کنید:
NSMutableDictionary<NSString *, NSNumber *> *attributesDic = [NSMutableDictionary new];
[attributesDic setObject:[NSNumber numberWithDouble:5] forKey:@"visit"];
[attributesDic setObject:[NSNumber numberWithDouble:100] forKey:@"workout"];
[PushClientManager.defaultManager decrementUserAttributeValues:[attributesDic copy]];
let attributesDic = ["visit":NSNumber(5),
"workout":NSNumber(100)]
PushClientManager.default().decrementUserAttributeValues(attributesDic)
مدیریت تگها
یکی از قوانین سگمنت، تگ یا همان برچسبگذاری کاربران میباشد. به عنوان مثال میتوانید کاربران خود را بر اساس جنسیت برچسبگذاری کرده و به آنها پیام خاصی را ارسال کنید و یا به کاربرانی که از پرداخت درون برنامهای شما استفاده میکنند یک Tag
با عنوان Premium_User
اختصاص دهید.
افزودن تگ
با استفاده از متد addTag
، شما میتوانید به کاربر یک یا مجموعهای از Tag
ها اختصاص دهید:
[self.manager addTag:@"Premium_User"];
self.manager?.addTag("Premium_User")
برای اختصاص چند تگ به طور یکجا به کاربر از متد زیر استفاده کنید:
[self.manager addTags:@[@"Premium_User",@"MALE",@"Teenage"] success:^(NSInteger count) {
NSLog(@"Add tags to %zd devices", count);
} failure:^(NSError *error) {
NSLog(@"Error to adding tags %@",error);
}];
manager.addTags(["Premium_User", "MALE", "Teenage"], success: { count in
print("Add tags to \(count) devices")
}, failure: { error in
if let anError = error {
print("Error to adding tags \(anError)")
}
})
همچنین میتوانید با استفاده از overload
دیگر این متد، از افزودن و یا خطا در عملیات با خبر شوید:
[self.manager addTag:@"Premium_User" success:^(NSInteger count) {
NSLog(@"%@ tag was assign to '%@' user with [%zd] devices",@"Premium_User",self.manager.userId,count);
} failure:^(NSError *error) {
NSLog(@"An error happend adding tag ...");
}];
self.manager?.addTag("Premium_User",
success: {(_ count: Int) -> Void in
print("\("Premium_User") tag was assign to '\(self.manager?.userId)' user with [\(count)] devices")
},
failure: {(_ error: Error?) -> Void in
print("An error happend adding tag ...")
})
اگر عملیات افزودن تگ با موفقیت انجام شود، میتوانید از طریق پنل چابک، تگ اضافه شده به کاربر را در بخش مشترکین همانند تصویر زیر مشاهده کنید :
نکته
: شما میتوانید کاربران مهمان اپلیکیشنتان را با گذاشتن تگ GUEST گروهبندی کنید.
حذف تگ
با استفاده از متد removeTag
، میتوانید یک Tag
خاص از کاربر جاری را حذف کنید. برای نمونه کد زیر تگ Premium_User
را از کاربر جاری حذف میکند:
[self.manager removeTag:@"Premium_User"];
self.manager?.removeTag("Premium_User")
همچنین با توجه به پشتیبانی این متد از آرایهای از تگها میتوانید مانند زیر چند تگ را یکجا از کاربر حذف کنید:
[self.manager removeTags:@[@"Premium_User",@"MALE",@"Teenage"] success:^(NSInteger count) {
NSLog(@"Remove tags to %zd devices", count);
} failure:^(NSError *error) {
NSLog(@"Error to removing tags %@",error);
}];
manager.removeTags("Premium_User", "MALE", "Teenage"], success: { count in
print("Remove tags to \(count) devices")
}, failure: { error in
if let anError = error {
print("Error to removing tags \(anError)")
}
})
نکته:
برای حذف همه تگهای یک کاربر میتوانید در متد بالا، جای نام تگها را خالی بگذارید.