Customization of the Notification Area
RelatedDigital.setIsPushNotificationsEnabled()
has 5 mandatory and 8 optional parameters.
Mandatory parameters:
context: Context
isPushNotificationEnabled: Boolean
googleAppAlias: String
huaweiAppAlias: String
token: String
Optional Parameters:
notificationSmallIcon: Int
notificationSmallIconDarkMode: Int
isNotificationLargeIcon: Boolean
notificationLargeIcon: Int
notificationLargeIconDarkMode
notificationPushIntent: String
notificationChannelName: String
notificationColor: String
Optional Parameters | Description |
---|---|
| For entering the icon that is going to be shown in the status bar and the left top corner of the notification area. You should enter the ID of a resource in your project. Default Value : Application icon |
| For entering the Default Value : Application icon |
| For determining if there is going to be a large icon in the right of the notification area. Default Value : false (no large icon) |
| For entering the large icon that is going to be shown in the right of the notification area. You should enter the ID of a resource in your project. Default Value : Application icon (if |
| For entering the Default Value : Application icon (if |
| For entering the activity that is going to be triggered when the notification is clicked. You should enter the full path of the activity. Default Value : launcher activity |
| For entering the name of the notification channel. Default Value : Application name |
| For entering the accent color value that is going to be used in the notification area. |
An example use that includes all parameters is below:
Kotlin
RelatedDigital.setIsPushNotificationEnabled( context = context, isPushNotificationEnabled = true, googleAppAlias = "googleAppAliasValue", huaweiAppAlias = "huaweiAppAliasValue", token = token, notificationSmallIcon = R.drawable.text_icon, notificationSmallIconDarkMode = R.drawable.text_icon_dark_mode, isNotificationLargeIcon = true, notificationLargeIcon = R.mipmap.ic_launcher, notificationLargeIconDarkMode = R.mipmap.ic_launcher, notificationPushIntent = "com.relateddigital.androidexampleapp.PushNotificationActivity", notificationChannelName = "relateddigital-android-test", notificationColor = "#d1dbbd" )
Java
RelatedDigital.setIsPushNotificationEnabled( context, true, "googleAppAliasValue", "huaweiAppAliasValue", token, R.drawable.text_icon, R.drawable.text_icon_dark_mode, true, R.mipmap.ic_launcher, R.mipmap.ic_launcher, "com.relateddigital.androidexampleapp.PushNotificationActivity", "relateddigital-android-test", "#d1dbbd" );
Token-User Match
The information about the user can be sent in signUp/Login stage or after to our servers. If there is a user in the server whose information is the same, the related token will be matched to this user.
After sending the mandatory and optional parameters, you should call sync() method.
Kotlin
--Mandatory parameters-- RelatedDigital.setEmail(context, "test@euromsg.com") RelatedDigital.setRelatedDigitalUserId(context, "testRelatedDigitalUserId") --Optional parameters-- RelatedDigital.setEmailPermit(context, EmailPermit.ACTIVE) RelatedDigital.setGsmPermit(context, GsmPermit.ACTIVE) RelatedDigital.setTwitterId(context, "testTwitterId") RelatedDigital.setFacebookId(context, "testFacebookId") RelatedDigital.setPhoneNumber(context, "testPhoneNumber") RelatedDigital.setUserProperty(context, "instagram", "testInstagramId") RelatedDigital.sync(context) |
Java
--Mandatory parameters-- RelatedDigital.setEmail(context, "test@euromsg.com"); RelatedDigital.setRelatedDigitalUserId(context, "testRelatedDigitalUserId"); --Optional parameters-- RelatedDigital.setEmailPermit(context, EmailPermit.ACTIVE); RelatedDigital.setGsmPermit(context, GsmPermit.ACTIVE); RelatedDigital.setTwitterId(context, "testTwitterId"); RelatedDigital.setFacebookId(context, "testFacebookId"); RelatedDigital.setPhoneNumber(context, "testPhoneNumber"); RelatedDigital.setUserProperty(context, "instagram", "testInstagramId"); RelatedDigital.sync(context);
When Push Notification Module is enabled via RelatedDigital.setIsPushNotification(), the token information is written to RMC servers. This token is saved as “anonymous”. In order to match this token with a user, an identifier information for the user (KEY_ID or EMAIL) should be sent to RMC.
RelatedDigital.setIsPushNotification() metodu aracılığıyla Push Notification Modülü etkinleştirildiğinde, cihaza ait token bilgisi RMC veri tabanına yazılır. Bir token; kullanıcı uygulamada oturum açana kadar “anonim” yani hiç bir kullanıcı ile eşleştirilmeden kaydedilir. Bu token ın bir kullanıcıyla eşleştirilebilmesi için uygulamada oturum açılmış olması ve SDK tarafından bu token ın sahibini tanımlayıcı bir bilginin (KEY_ID yada EMAIL) RMC'ye gönderilmesi gerekir. Bu bilgiler push mesajı payload unda "extra" : {} bloğunda yer alır.
In order the data that you sent to be loaded to RMC panel correctly, you should use the same reference value (KEY_ID* veya E-Mail) that you use in your RMC account when sending data via mobile channel.
*KEY_ID: It is the ID that you use to make a user unique in your system like CRM id, userId, customerId, accountId.
"extra" : { "email" : "test@euromsg.com", "keyID" : "testRelatedDigitalUserId" } |
IYS E-Mail Registration (For Turkey)
Kotlin
val callback: EuromessageCallback = object : EuromessageCallback { override fun success() { Log.i("IYS Kaydı", "Successful") } override fun fail(errorMessage: String?) { Log.e("IYS Kaydı", "Fail : $errorMessage") } } RelatedDigital.registerEmail( context = context, email = "test@euromsg.com", emailPermit = EmailPermit.ACTIVE, isCommercial = false, callback = callback )
Java
EuromessageCallback callback = new EuromessageCallback() { @Override public void success() { Log.i("IYS Kaydı", "Successful"); } @Override public void fail(String errorMessage) { Log.e("IYS Kaydı", "Fail : " + errorMessage); } }; RelatedDigital.registerEmail( context, "test@euromsg.com", EmailPermit.ACTIVE, false, callback );
If your customer is a corporate, you should send isCommercial parameter as true.
If you do not see a user match in RMC, please get in contact with RMC support team and ask to activate the FLAG of the related appKey.
Push Notification Click Report and Directing
When the user clicks on the notification the activity that you entered via RelatedDigital.setPushIntent() is going to be launched. You should send the click report and direct the user to the related page here in onNewIntent().
Kotlin
override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) if (intent != null) { val bundle = intent.extras if (bundle != null) { val message = intent.extras!!.getSerializable("message") as Message? if (message != null) { //Send the click report RelatedDigital.sendPushNotificationOpenReport(this, message) //Direct the user to the related page - message.url .. } else { // It shows that a carousel notification is came and the user clicked on an item val itemClickedUrl = bundle.getString("CarouselItemClickedUrl") if (itemClickedUrl != null && itemClickedUrl != "") { //Direct the user to the related page - itemClickedUrl .. } } } } }
Java
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); if(intent != null) { Bundle bundle = intent.getExtras(); if (bundle != null) { Message message = (Message) intent.getExtras().getSerializable("message"); if(message != null) { //Send the click report RelatedDigital.sendPushNotificationOpenReport(this, message); //Direct the user to the related page - message.url .. } else { // It shows that a carousel notification is came and the user clicked on an item String itemClickedUrl = bundle.getString("CarouselItemClickedUrl"); if(itemClickedUrl != null && !itemClickedUrl.equals("")) { //Direct the user to the related page - itemClickedUrl .. } } } } }
You should check the pro-guard issues in your project if you get notification in debug mode but not in release mode.
proguard-rules.pro 'ya aşağıdaki kodları ekleyebilirsiniz;
-keep class com.relateddigital.**{*;}
Bildirim Sesi Ayarlama
Bildirim kampanyalarında kullanılacak sesi belirlemek/değiştirmek için öncelikle kullanılacak ses dosyalarının projenize eklenmesi gerekmektedir.
res/raw/my_custom_sound.mp3
Bu adımdan sonra ses dosyasının ismini uzantısız olarak RMC panelinde Ayarlar / Kampanya Ayarları / Push Uygulamaları / Android Uygulamanız / Özel Ses Dosyası kısmına eklemeniz gerekmektedir.
Ciroların Panele Yansıması
Gelen bildirimlere tıklandıktan sonra yapılan satın alımların RMC panelinde Ciro alanına yansıması için:
Mobil bildirim kampanyası ekranında bulunan Özel Parametreler alanına utm parametrelerini girmelisiniz.
Örn: utm_medium=apppush;utm_source=related;utm_campaign=campaign_name
utm_campaign her seferinde farklı olması gerektiği için oluşturduğunuz push kampanyasının ID’sini değişken olarak kullanabilirsiniz. Bunun için <##CAMP_ID##> değişkenini isteğe bağlı bir şekilde kullanabilirsiniz.
Geçmiş Bildirim Mesajları
Son 30 gün içerisinde gönderilmiş bildirim mesajlarına aşağıdaki gibi erişebilirsiniz.
Mesajlar tarihe göre sıralanmıştır. Son gelen mesaj listenin ilk başında gösterilir.
Kotlin
val pushMessageInterface: PushMessageInterface = object : PushMessageInterface { override fun success(pushMessages: List<Message>) { // pushMessages değişkenini kullanarak geliştirmenizi yapabilirsiniz } override fun fail(errorMessage: String) { Log.e("Geçmiş Bildirimler", errorMessage) } } RelatedDigital.getPushMessages(activity, pushMessageInterface)
Java
PushMessageInterface pushMessageInterface = new PushMessageInterface() { @Override public void success(List<Message> pushMessages) { // pushMessages değişkenini kullanarak geliştirmenizi yapabilirsiniz } @Override public void fail(String errorMessage) { Log.e("Geçmiş Bildirimler", errorMessage) } }; RelatedDigital.getPushMessages(activity, pushMessageInterface);
Bildirim Mesajı İçeriği
Veri Tipi | Değişken | Açıklama |
---|---|---|
String | mediaUrl | Foto, video url |
String | altUrl | Alternate URL |
String | campaignId | Kampanya ID si |
String | pushId | Bildirim ID si |
String | url | Kampanya URL si |
String | message | Bildirim Mesajı |
String | title | Bildirim Başlığı |
String | sound | Bildirim Sesi |
PushType | pushType | Bildirim Tipi |
Map<String, String> | params | Özel Parametreler |
Ekstra Notlar
EXTERNAL_STORAGE İzinleri
Eğer uygulamanızda WRITE_EXTERNAL_STORAGE ve READ_EXTERNAL_STORAGE izinlerini kullanıyorsanız aşağıdaki satırı AndroidManifest.xml dosyanıza <application tag ı içerisine eklemeniz gerekmektedir.
android:requestLegacyExternalStorage="true"
PUSH_SUBSCRIPTION_PERMISSION_ENABLED
Push uygulamasında login olan üyelerin direkt olarak Euromessage üye paneline aktarılması isteniyorsa; RMC Support ekibinden PUSH_SUBSCRIPTION_PERMISSION_ENABLED flag inin açılması talep edilmelidir.