در این صفحه می‌توانید برای کاربرانتان اطلاعات (attributes) و تگ اضافه کنید. ثبت اطلاعات هر کاربر به تعامل شما با او کمک می‌کند طوری که می‌توانید پیام‌های شخصی‌سازی شده برایشان ارسال کنید.



مدیریت اطلاعات کاربر (User Attributes)


شما می‌توانید اطلاعات و داده‌هایی که از کاربرانتان دارید را در پروفایل او مدیریت کنید و در تعامل با او از آن‌ها استفاده کنید.


ثبت اطلاعات کاربر

شما می‌توانید اطلاعاتی که از کاربر دارید (مانند نام، نام خانوادگی، جنسیت، سن و …) را به طور دلخواه با استفاده از property زیر، در پروفایل او ثبت کنید:

[PushClientManager.defaultManager.userAttributes = @{
		@"firstName": @"نسیم",
		@"lastName" : @"پرتوی",
		@"age"  : @(36),
		@"gender" : @"زن"
}];

پس از فراخوانی این متد و ثبت اطلاعات می‌توانید آن را در پنل > جزئیات دستگاه > کارت اطلاعات کاربر مانند زیر مشاهده کنید:

عکس مربوطه


در صورتی که از شماره تلفن (پارامتر phone) در اطلاعات کاربران (Attribute) استفاده کنید، می‌توانید با smart API چابک اقدام به ارسال پیامک کنید. فقط دقت داشته باشید که شماره همراه کاربر با کد کشور او شروع شود؛ به عنوان مثال ۹۸۹۱۲۰۴۹۸.

در صورتی که از آدرس ایمیل (پارامتر email) در اطلاعات کاربران (Attribute) استفاده می‌کنید، می‌توانید با smart API چابک به کاربران ایمیل بزنید.

دقت داشته باشید برای نسخه‌های ۱.۱۹.۰۰ یا پایین‌تر از پراپرتی زیر استفاده کنید.

[PushClientManager.defaultManager.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" : @"زن"
		}];
	}
}];

دقت داشته باشید type مقداری که به value در متد userAttributes داده‌اید، را نمی‌توانید تغییر دهید . به این معنی که اگر boolean ذخیره کرده‌اید، دیگر نمی‌توانید عدد یا string دهید یا برعکس. به مثال زیر توجه کنید.

به عنوان مثال اگر مقدار age را مانند زیر string قرار داده باشید:

[PushClientManager.defaultManager.userAttributes = @{
		@"age": @"نوزده"
}];

دیگر عدد قرار دادن آن مانند زیر کار نخواهد کرد:

[PushClientManager.defaultManager.userAttributes = @{
		@"age": @19
}];

افزایش داده‌های کمیتی کاربر

شما می‌توانید داده‌های کمیتی کاربر را مانند بازدید از محصول یا صفحه‌ای، خرید آیتم خاصی و … افزایش دهید. برای این کار متد زیر را فراخوانی کنید:

[PushClientManager.defaultManager incrementUserAttribute:@"visit_comedy_shows"];

افزودن به چند attribute

همچنین متد بالا از آرایه‌ای از اطلاعات کاربر (attribute) هم پشتیبانی می‌کند. برای همین می‌توانید به بیش از یک attribute اضافه کنید. به نمونه زیر دقت کنید:

NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];

[PushClientManager.defaultManager incrementUserAttributes:attributes];

افزودن مقدار دلخواه به یک attribute

با متد زیر می‌توانید به یک attribute مقدار دلخواهتان را اضافه کنید:

[PushClientManager.defaultManager 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]];

کاهش داده‌های کمیتی کاربر

شما همچنین می‌توانید داده‌های کمیتی کاربر را کاهش دهید. برای این کار متد زیر را فراخوانی کنید:

[PushClientManager.defaultManager decrementUserAttribute:@"visit_comedy_shows"];

کم کردن از چند attribute

همچنین متد بالا از آرایه‌ای از اطلاعات کاربر (attribute) هم پشتیبانی می‌کند. برای همین می‌توانید از بیش از یک attribute کم کنید. به نمونه زیر دقت کنید:

NSArray<NSString *> *attributes = @[@"comedy_move", @"shoes_size"];

[PushClientManager.defaultManager decrementUserAttributes:attributes];

کاهش مقدار دلخواه از یک attribute

با متد زیر می‌توانید از یک attribute مقدار دلخواهتان را کم کنید:

[PushClientManager.defaultManager 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]];

مدیریت تگ‌ها


یکی از قوانین سگمنت، تگ یا همان برچسب‌گذاری کاربران می‌باشد. به عنوان مثال می‌توانید کاربران خود را بر اساس جنسیت برچسب‌گذاری کرده و به آن‌ها پیام خاصی را ارسال کنید و یا به کاربرانی که از پرداخت درون برنامه‌ای شما استفاده می‌کنند یک Tag با عنوان Premium_User اختصاص دهید.

افزودن تگ

با استفاده از متد addTag، شما می‌توانید به کاربر یک یا مجموعه‌ای از Tagها اختصاص دهید:

[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);
        }];

همچنین می‌توانید با استفاده از 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 ...");
    }];

اگر عملیات افزودن تگ با موفقیت انجام شود، می‌توانید از طریق پنل چابک، تگ اضافه شده به کاربر را در بخش مشترکین همانند تصویر زیر مشاهده کنید :

مشترک چابک

شما می‌توانید کاربران مهمان اپلیکیشنتان را با گذاشتن تگ GUEST گروه‌بندی کنید.

حذف تگ

با استفاده از متد removeTag، می‌توانید یک Tag خاص از کاربر جاری را حذف کنید. برای نمونه کد زیر تگ 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);
        }];

برای حذف همه تگ‌های یک کاربر می‌توانید در متد بالا، جای نام تگ‌ها را خالی بگذارید.