دادههای سفارشی کاربر
ویرایش
در این صفحه میتوانید برای کاربرانتان اطلاعات (attributes) و تگ اضافه کنید. ثبت اطلاعات هر کاربر به تعامل شما با او کمک میکند طوری که میتوانید پیامهای شخصیسازی شده برایشان ارسال کنید.
مدیریت اطلاعات کاربر (User Attributes)
شما میتوانید اطلاعات و دادههایی که از کاربرانتان دارید را در پروفایل او مدیریت کنید و در تعامل با او از آنها استفاده کنید.
ثبت اطلاعات کاربر
با فراخوانی متد زیر میتوانید اطلاعات و سوابق کاربر را جمعآوری و ذخیره کنید:
HashMap<String, Object> userAttribute = new HashMap<>();
userAttribute.put("firstName", "محمدرضا");
userAttribute.put("lastName", "اخوان");
userAttribute.put("age", 35);
userAttribute.put("gender", "مرد");
AdpPushClient.get().setUserAttributes(userAttribute);
پس از فراخوانی این متد و ثبت اطلاعات میتوانید آن را در پنل > جزئیات دستگاه > کارت اطلاعات کاربر مانند زیر مشاهده کنید:
نکته
: در صورتی که از شماره تلفن (پارامتر phone) در اطلاعات کاربران (Attribute) استفاده کنید، میتوانید با smart API چابک اقدام به ارسال پیامک کنید. فقط دقت داشته باشید که شماره همراه کاربر با کد کشور او شروع شود؛ به عنوان مثال ۹۸۹۱۲۰۴۹۸.
نکته
: در صورتی که از آدرس ایمیل (پارامتر email) در اطلاعات کاربران (Attribute) استفاده میکنید، میتوانید با smart API چابک به کاربران ایمیل بزنید.
نکته:
در صورتی که از نسخه ۲.۱۶.۰ یا پایینتر کتابخانه چابک استفاده میکنید، باید متد زیر را به کار ببرید.
HashMap<String, Object> userAttribute = new HashMap<>();
userAttribute.put("firstName", "محمدرضا");
userAttribute.put("lastName", "اخوان");
userAttribute.put("age", 35);
userAttribute.put("married", true);
userAttribute.put("gender", "مرد");
AdpPushClient.get().setUserAttribute(userAttribute);
نکته
: دقت داشته باشید type مقداری که بهvalue
در متدsetUserAttributes
دادهاید، را نمیتوانید تغییر دهید . به این معنی که اگرboolean
ذخیره کردهاید، دیگر نمیتوانید عدد یاstring
دهید یا برعکس. به مثال زیر توجه کنید.
به عنوان مثال اگر مقدار age
را مانند زیر string
قرار داده باشید:
HashMap<String, Object> userAttribute = new HashMap<>();
userAttribute.put("age", "نوزده");
AdpPushClient.get().setUserAttributes(userAttribute);
دیگر عدد قرار دادن آن مانند زیر کار نخواهد کرد:
HashMap<String, Object> userAttribute = new HashMap<>();
userAttribute.put("age", 19);
AdpPushClient.get().setUserAttributes(userAttribute);
ارسال دادههای سفارشی کاربران
در صورتی که از نسخه ۳.۱.۰ یا بالاتر کتابخانه چابک استفاده میکنید، باید برای ارسال اطلاعات کاربران متد زیر را فراخوانی کنید.
Bundle userAttribute = new Bundle();
userAttribute.putString("firstName", "حمیدرضا");
userAttribute.putString("lastName", "اخوان");
userAttribute.putInt("age", 35);
userAttribute.putBoolean("married", true);
userAttribute.putParcelable("birthday", new Datetime());
userAttribute.putStringArray("children", new String[]{"مینا", "سارا"});
userAttribute.putStringArray("favorite_movies", new String[]{"movies_01", "movies_02", "movies_03", "movies_04"});
AdpPushClient.get().setuserAttribute(userAttribute);
نکته:
در صورتی که از نسخه ۳.۱.۰ یا بالاتر کتابخانه چابک استفاده میکنید، باید متد زیر را به کار ببرید.
HashMap<String, Object> userAttribute = new HashMap<>();
userAttribute.put("firstName", "حمیدرضا");
userAttribute.put("lastName", "اخوان");
userAttribute.put("age", 35);
userAttribute.put("married", true);
AdpPushClient.get().setuserAttribute(userAttribute);
ارسال مقادیر آرایهای و تاریخ در دادههای سفارشی کاربر
در صورت استفاده از نسخه ۳.۱.۰ یا بالاتر کتابخانه چابک، باید متد زیر را فراخوانی کنید.
Bundle userAttribute = new Bundle();
userAttribute.putBoolean("married", true);
userAttribute.putInt("age", 35);
userAttribute.putParcelable("birthday", new Datetime());
userAttribute.putStringArray("favorite_movies", new String[]{"movies_01", "movies_02", "movies_03", "movies_04"});
AdpPushClient.get().setUserAttribute(userAttribute);
نکته:
از کلاسDatetime
وputStringArray
تنها در نسخه ۳.۱.۰ یا بالاتر کتابخانه چابک استفاده میشود.
افزودن به مقادیر آرایهای در دادههای سفارشی کاربر
برای اضافه کردن اطلاعات آرایهای در دادههای سفارشی کاربران کافیست متد زیر را فراخوانی نمایید:
AdpPushClient.get().addToUserAttributeArray("favorite_movies", "movies_05");
کاربران وقتی به محصولی علاقه نشان میدهند، آن را به لیست علاقهمندی خود اضافه میکنند که برای افزودن محصول، باید شبه کد زیر را به متد اصلی اضافه کنید.
AdpPushClient.get().addToUserAttributeArray("action_movie", "movies_02");
حذف از مقادیر آرایهای در دادههای سفارشی کاربر
متد زیر آرایهای از اطلاعات کاربران (attribute) را حذف میکند.
AdpPushClient.get().removeFromUserAttributeArray("favorite_movies", "movies_02");
طبق مثال بالا برای حذف کردن محصول از لیست علاقهمندی کاربران باید از قطعه کد بالا استفاده نمایید.
حذف دادههای سفارشی کاربران
برای حذف اطلاعات کاربران (attribute)، متد زیر را فراخوانی کنید.
AdpPushClient.get().unsetUserAttribute("firstName");
AdpPushClient.get().unsetUserAttribute("age");
دریافت اطلاعات کاربر
برای دریافت اطلاعات کاربر باید متد زیر را فراخوانی کنید:
HashMap<String, Object> attributes = AdpPushClient.get().getUserAttributes();
Boolean married = (Boolean) attributes.get("married");
String gender = (String) attributes.get("gender");
String lastName = (String) attributes.get("lastName");
ArrayList<String> children = (ArrayList<String>) attributes.get("favorite_movies");
افزایش دادههای کمیتی کاربر
شما میتوانید دادههای کمیتی کاربر را مانند بازدید از محصول یا صفحهای، خرید آیتم خاصی و .. را به تعداد دلخواهتان افزایش دهید. برای این کار متد زیر را فراخوانی کنید:
AdpPushClient.get().incrementUserAttribute("visit_comedy_shows");
AdpPushClient.get().incrementUserAttribute("visit_comedy_shows", 5);
همچنین این متد از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. به نمونه زیر دقت کنید:
ArrayList<String> userAttribute = new ArrayList<>();
userAttribute.add("comedy_movie");
userAttribute.add("action_movie");
userAttribute.add("view_movie_detail");
AdpPushClient.get().incrementUserAttribute(userAttribute);
کد بالا به هر کدام از attributeها یک عدد اضافه میکند.
برای اضافه کردن تعداد دلخواه میتوانید از کد زیر استفاده کنید:
HashMap<String, Double> userAttribute = new HashMap<>();
userAttribute.put("comedy_movie", 5d);
userAttribute.put("action_movie", 2d);
userAttribute.put("view_movie_detail", 1d);
AdpPushClient.get().incrementUserAttribute(userAttribute);
کاهش دادههای کمیتی کاربر
شما همچنین میتوانید دادههای کمیتی کاربر را کاهش دهید. برای این کار متد زیر را فراخوانی کنید:
AdpPushClient.get().decrementUserAttribute("visit_comedy_shows");
AdpPushClient.get().decrementUserAttribute("visit_comedy_shows", 5);
همچنین این متد از آرایهای از اطلاعات کاربر (attribute) هم پشتیبانی میکند. به نمونه زیر دقت کنید:
ArrayList<String> userAttribute = new ArrayList<>();
userAttribute.add("comedy_movie");
userAttribute.add("action_movie");
userAttribute.add("view_movie_detail");
AdpPushClient.get().decrementUserAttribute(userAttribute);
کد بالا به هر کدام از attributeها یک عدد کم میکند.
برای کم کردن به تعداد دلخواه میتوانید از کد زیر استفاده کنید:
HashMap<String, Double> userAttribute = new HashMap<>();
userAttribute.put("comedy_movie", 5d);
userAttribute.put("action_movie", 2d);
userAttribute.put("view_movie_detail", 1d);
AdpPushClient.get().decrementUserAttribute(userAttribute);
مدیریت تگها
یکی از قوانین سگمنت، تگ یا همان برچسبگذاری کاربران میباشد. به عنوان مثال میتوانید کاربران خود را بر اساس جنسیت برچسبگذاری کرده و به آنها پیام خاصی را ارسال کنید و یا به کاربرانی که از پرداخت درون برنامهای شما استفاده میکنند یک Tag
با عنوان Premium_User
اختصاص دهید.
افزودن تگ
با استفاده از متد addTag
، شما میتوانید به کاربر یک یا مجموعهای از Tag
ها اختصاص دهید:
//Add a tag to current user.
AdpPushClient.get().addTag("TAG_NAME", new Callback() {...});
//Add array of tags to current user.
AdpPushClient.get().addTag(new String[]{"TAG_NAME_1", "TAG_NAME_2"}, new Callback() {...});
در مثال زیر به کاربر جاری تگ Premium_User
اختصاص داده شده است:
AdpPushClient.get().addTag("Premium_User", new Callback() {
@Override
public void onSuccess(Object value) {
Log.d(TAG, "Successfully added tag to current user devices");
}
@Override
public void onFailure(Throwable value) {
Log.d(TAG, "Couldn't add tag to current user devices");
}
});
اگر عملیات افزودن تگ با موفقیت انجام شود، میتوانید از طریق پنل چابک، تگ اضافه شده به کاربر را در بخش مشترکین همانند تصویر زیر مشاهده کنید:
همچنین با توجه به پشتیبانی این متد از آرایهای از تگها میتوانید مانند زیر چند تگ را یکجا به کاربر اضافه کنید:
String[] tagsName = new String[]{"GUEST","MALE"};
AdpPushClient.get().addTag(tagsName, new Callback() {
@Override
public void onSuccess(Object value) {
Log.d(TAG, "Successfully added tags to current user devices");
}
@Override
public void onFailure(Throwable value) {
Log.d(TAG, "Couldn't add tags to current user devices");
}
});
نکته
: شما میتوانید کاربران مهمان اپلیکیشنتان را با گذاشتن تگ GUEST گروهبندی کنید.
حذف تگ
با استفاده از متد removeTag
، میتوانید یک Tag
خاص از کاربر جاری را حذف کنید:
AdpPushClient.get().removeTag("TAG_NAME", new Callback() {...});
برای نمونه کد زیر تگ Premium_User
را از کاربر جاری حذف میکند.
AdpPushClient.get().removeTag("Premium_User", new Callback() {
@Override
public void onSuccess(Object value) {
Log.d(TAG, "Successfully removed tag to current user devices");
}
@Override
public void onFailure(Throwable value) {
Log.d(TAG, "Couldn't remove tag to current user devices");
}
});
همچنین با توجه به پشتیبانی این متد از آرایهای از تگها میتوانید مانند زیر چند تگ را یکجا از کاربر حذف کنید:
String[] tagsName = new String[]{"GUEST", "MALE"};
AdpPushClient.get().removeTag(tagsName, new Callback() {
@Override
public void onSuccess(Object value) {
Log.d(TAG, "Remove array of tags onSuccess: called");
}
@Override
public void onFailure(Throwable t) {
Log.d(TAG, "Remove array of tags onError: called, message: " + t.getMessage());
}
});
نکته:
برای حذف همه تگهای یک کاربر میتوانید در متد بالا، جای نام تگها را خالی بگذارید.