ویرایش
در این صفحه میتوانید برای کاربرانتان اطلاعات (attributes) و تگ اضافه کنید. ثبت اطلاعات هر کاربر به تعامل شما با او کمک میکند طوری که میتوانید پیامهای شخصیسازی شده برایشان ارسال کنید.
مدیریت اطلاعات کاربر (User Attributes)
شما میتوانید اطلاعات و دادههایی که از کاربرانتان دارید را در پروفایل او مدیریت کنید و در تعامل با او از آنها استفاده کنید.
ثبت اطلاعات کاربر
شما میتوانید اطلاعاتی که از کاربر دارید (مانند نام، نام خانوادگی، جنسیت، سن و …) را به طور دلخواه با استفاده از property زیر، در پروفایل او ثبت کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager.userAttributes = @{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().userAttributes = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
{% endtab %} {% endtabs %}
پس از فراخوانی این متد و ثبت اطلاعات میتوانید آن را در پنل > جزئیات دستگاه > کارت اطلاعات کاربر مانند زیر مشاهده کنید:

نکته: در صورتی که از شماره تلفن (پارامتر phone) در اطلاعات کاربران (Attribute) استفاده کنید، میتوانید با smart API چابک اقدام به ارسال پیامک کنید. فقط دقت داشته باشید که شماره همراه کاربر با کد کشور او شروع شود؛ به عنوان مثال ۹۸۹۱۲۰۴۹۸.
نکته: در صورتی که از آدرس ایمیل (پارامتر email) در اطلاعات کاربران (Attribute) استفاده میکنید، میتوانید با smart API چابک به کاربران ایمیل بزنید.
دقت داشته باشید برای نسخههای ۱.۱۹.۰۰ یا پایینتر از پراپرتی زیر استفاده کنید.
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager.userInfo = @{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().userInfo = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
{% endtab %} {% endtabs %}
نکته: لطفا property زیر را بعد از register شدن کاربر فراخوانی کنید به عنوان مثال، به قطعه کد زیر توجه کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager registerUser:@"USER_ID" registrationHandler:^(BOOL isRegistered, NSString *userId, NSError *error) {
if (isRegistered) {
[PushClientManager.defaultManager setUserInfo:@{
@"firstName": @"نسیم",
@"lastName" : @"پرتوی",
@"age" : @(36),
@"gender" : @"زن"
}];
}
}];
{% endtab %} {% tab SWIFT %}
PushClientManager.default()?.registerUser("USER_ID", registrationHandler: { (register, userId, error) in
if register {
PushClientManager.default()?.userInfo = [
"firstName": "نسیم",
"lastName": "پرتوی",
"age": 36,
"gender": "زن"]
}
})
{% endtab %} {% endtabs %}
نکته: دقت داشته باشید type مقداری که بهvalueدر متدuserAttributesدادهاید، را نمیتوانید تغییر دهید . به این معنی که اگرbooleanذخیره کردهاید، دیگر نمیتوانید عدد یاstringدهید یا برعکس. به مثال زیر توجه کنید.
به عنوان مثال اگر مقدار age را مانند زیر string قرار داده باشید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager.userAttributes = @{
@"age": @"نوزده"
}];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().userAttributes = [
"age": "نوزده"]
{% endtab %} {% endtabs %}
دیگر عدد قرار دادن آن مانند زیر کار نخواهد کرد:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager.userAttributes = @{
@"age": @19
}];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().userAttributes = [
"age": 19]
{% endtab %} {% endtabs %}
افزایش دادههای کمیتی کاربر
شما میتوانید دادههای کمیتی کاربر را مانند بازدید از محصول یا صفحهای، خرید آیتم خاصی و … افزایش دهید. برای این کار متد زیر را فراخوانی کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager incrementUserAttribute:@"visit_comedy_shows"];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().incrementUserAttribute("visit_comedy_shows")
{% endtab %} {% endtabs %}
افزودن به چند attribute
همچنین متد بالا از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. برای همین میتوانید به بیش از یک attribute اضافه کنید. به نمونه زیر دقت کنید:
{% tabs %} {% tab OBJECTIVE-C %}
NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];
[PushClientManager.defaultManager incrementUserAttributes:attributes];
{% endtab %} {% tab SWIFT %}
let attributes = ["comedy_move", "shoes_size"]
PushClientManager.default().incrementUserAttributes(attributes)
{% endtab %} {% endtabs %}
افزودن مقدار دلخواه به یک attribute
با متد زیر میتوانید به یک attribute مقدار دلخواهتان را اضافه کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager incrementUserAttributeValue:@"player_level" value:2];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().incrementUserAttributeValue("player_level", value: 2)
{% endtab %} {% endtabs %}
افزودن مقدار دلخواه به چند attribute
متد زیر از dictionary از attributeها پشتیبانی میکند، بنابراین میتوانید به چند attribute مقدار دلخواهتان را اضافه کنید:
{% tabs %} {% tab OBJECTIVE-C %}
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]];
{% endtab %} {% tab SWIFT %}
let attributesDic = ["visit":NSNumber(5),
"workout":NSNumber(100)]
PushClientManager.default().incrementUserAttributeValues(attributesDic)
{% endtab %} {% endtabs %}
کاهش دادههای کمیتی کاربر
شما همچنین میتوانید دادههای کمیتی کاربر را کاهش دهید. برای این کار متد زیر را فراخوانی کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager decrementUserAttribute:@"visit_comedy_shows"];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().decrementUserAttribute("visit_comedy_shows")
{% endtab %} {% endtabs %}
کم کردن از چند attribute
همچنین متد بالا از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. برای همین میتوانید از بیش از یک attribute کم کنید. به نمونه زیر دقت کنید:
{% tabs %} {% tab OBJECTIVE-C %}
NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];
[PushClientManager.defaultManager decrementUserAttributes:attributes];
{% endtab %} {% tab SWIFT %}
let attributes = ["comedy_move", "shoes_size"]
PushClientManager.default().decrementUserAttributes(attributes)
{% endtab %} {% endtabs %}
کاهش مقدار دلخواه از یک attribute
با متد زیر میتوانید از یک attribute مقدار دلخواهتان را کم کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[PushClientManager.defaultManager decrementUserAttributeValue:@"player_level" value:2];
{% endtab %} {% tab SWIFT %}
PushClientManager.default().decrementUserAttributeValue("player_level", value: 2)
{% endtab %} {% endtabs %}
کاهش مقدار دلخواه از چند attribute
متد زیر از dictionary از attributeها پشتیبانی میکند، بنابراین میتوانید از چند attribute مقدار دلخواهتان را کم کنید:
{% tabs %} {% tab OBJECTIVE-C %}
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]];
{% endtab %} {% tab SWIFT %}
let attributesDic = ["visit":NSNumber(5),
"workout":NSNumber(100)]
PushClientManager.default().decrementUserAttributeValues(attributesDic)
{% endtab %} {% endtabs %}
مدیریت تگها
یکی از قوانین سگمنت، تگ یا همان برچسبگذاری کاربران میباشد. به عنوان مثال میتوانید کاربران خود را بر اساس جنسیت برچسبگذاری کرده و به آنها پیام خاصی را ارسال کنید و یا به کاربرانی که از پرداخت درون برنامهای شما استفاده میکنند یک Tag با عنوان Premium_User اختصاص دهید.
افزودن تگ
با استفاده از متد addTag، شما میتوانید به کاربر یک یا مجموعهای از Tagها اختصاص دهید:
{% tabs %} {% tab OBJECTIVE-C %}
[self.manager addTag:@"Premium_User"];
{% endtab %} {% tab SWIFT %}
self.manager?.addTag("Premium_User")
{% endtab %} {% endtabs %}
برای اختصاص چند تگ به طور یکجا به کاربر از متد زیر استفاده کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[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);
}];
{% endtab %} {% tab SWIFT %}
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)")
}
})
{% endtab %} {% endtabs %}
همچنین میتوانید با استفاده از overload دیگر این متد، از افزودن و یا خطا در عملیات با خبر شوید:
{% tabs %} {% tab OBJECTIVE-C %}
[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 ...");
}];
{% endtab %} {% tab SWIFT %}
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 ...")
})
{% endtab %} {% endtabs %} اگر عملیات افزودن تگ با موفقیت انجام شود، میتوانید از طریق پنل چابک، تگ اضافه شده به کاربر را در بخش مشترکین همانند تصویر زیر مشاهده کنید :

نکته: شما میتوانید کاربران مهمان اپلیکیشنتان را با گذاشتن تگ GUEST گروهبندی کنید.
حذف تگ
با استفاده از متد removeTag، میتوانید یک Tag خاص از کاربر جاری را حذف کنید. برای نمونه کد زیر تگ Premium_User را از کاربر جاری حذف میکند:
{% tabs %} {% tab OBJECTIVE-C %}
[self.manager removeTag:@"Premium_User"];
{% endtab %} {% tab SWIFT %}
self.manager?.removeTag("Premium_User")
{% endtab %} {% endtabs %} همچنین با توجه به پشتیبانی این متد از آرایهای از تگها میتوانید مانند زیر چند تگ را یکجا از کاربر حذف کنید:
{% tabs %} {% tab OBJECTIVE-C %}
[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);
}];
{% endtab %} {% tab SWIFT %}
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)")
}
})
{% endtab %} {% endtabs %}
نکته:برای حذف همه تگهای یک کاربر میتوانید در متد بالا، جای نام تگها را خالی بگذارید.