...
Info |
---|
Eğer RMC panelde oluşturduğunuz forma bir kural tanımladıysanız bu kuralın da customEvent metodu içerisindeki properties parametresi aracılığıyla girilmesi gerekmektedir. Örnek:
|
Tıklanmanın Yakalanması
Kullanıcınıza gösterilen uygulama-içi mesaj ekranında kullanıcı, yönlendirmenin olduğu öğeye tıkladığında, alınacak aksiyonu kendiniz yönetmek isterseniz aşağıdaki gibi bir callback tanımlaması yapmanız ve bu callback i setInAppButtonInterface metoduna iletmeniz gerekmektedir.
...
Info |
---|
Her tıklama sonrası, SDK girilen callback i çağırır ve tanımlanan callback i kaldırır. Bu yüzden callback kullanmak isteğiniz her aksiyondan önce yeni bir callback tanımlaması yapıp |
Özel Font Kullanımı
Uygulama-içi mesajlarda özel font kullanımı için ilk olarak projenizin res klasörü altında font dosyası oluşturunuz(yoksa).
Oluşturduğunuz klasörün içerisine istediğiniz fontları ekleyebilirsiniz.
Son olarak arayüzden uzantısız bir şekilde kullanmak istediğiniz fontun adını giriniz.
Uygulama-İçi Mesaj Tasarımları
Pop-up - Görsel, Başlık, Yazı & Buton | Mini - İkon & Yazı | Tam Ekran Görsel |
---|---|---|
|
| |
Tam Ekran Görsel ve Buton | Pop-up - Görsel, Başlık, Yazı ve Buton | Pop-up Anket |
|
|
|
Pop-up - Yazı ve Butonlu NPS | Native Alert & Action Sheet | 1-10 Puanlama NPS |
|
| |
Yıldızlı anket & ikinci pop-up | Yarım Ekran Görsel | Carousel |
|
|
|
Favori Özellik Aksiyonu
RMC panel üzerindeki target aksiyonlarından tanımladığınız favori değişkenlerinizi aşağıdaki gibi mobil uygulama üzerinden alıp kullanabilirsiniz.
...
Code Block | ||
---|---|---|
| ||
StoryItemClickListener storyItemClickListener = new StoryItemClickListener() { @Override public void storyItemClicked(String storyLink) { //Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz } }; binding.storyRecyclerView.setStoryAction( context, storyItemClickListener); |
veyaID ile
Kotlin
Code Block | ||
---|---|---|
| ||
val storyItemClickListener = object : StoryItemClickListener { override fun storyItemClicked(storyLink: String?) { //Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz } } binding.storyRecyclerView.setStoryActionId( context = context, storyId = storyId, storyItemClickListener = storyItemClickListener) |
...
Code Block | ||
---|---|---|
| ||
val storyItemClickListener = object : StoryItemClickListener {
override fun storyItemClicked(storyLink: String?) {
//Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz
}
}
val storyRequestListener = object : StoryRequestListener {
override fun onRequestResult(isAvailable: Boolean) {
if (!isAvailable) {
//Burada StoryRecyclerView ı kaldırmalısınız
binding.storyRecyclerView.visibility = View.GONE
}
}
}
binding.storyRecyclerView.setStoryActionWithRequestCallback(
context = context,
storyItemClickListener = storyItemClickListener,
storyRequestListener = storyRequestListener) |
...
Code Block | ||
---|---|---|
| ||
StoryItemClickListener storyItemClickListener = new StoryItemClickListener() {
@Override
public void storyItemClicked(String storyLink) {
//Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz
}
};
StoryRequestListener storyRequestListener = new StoryRequestListener() {
@Override
public void onRequestResult(boolean isAvailable) {
if (!isAvailable) {
//Burada StoryRecyclerView ı kaldırmalısınız
binding.storyRecyclerView.visibility = View.GONE
}
}
};
binding.storyRecyclerView.setStoryActionWithRequestCallback(
context,
storyItemClickListener,
storyRequestListener); |
setStoryActionIdWithRequestCallbackID ile
Kotlin
Code Block | ||
---|---|---|
| ||
val storyItemClickListener = object : StoryItemClickListener {
override fun storyItemClicked(storyLink: String?) {
//Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz
}
}
val storyRequestListener = object : StoryRequestListener {
override fun onRequestResult(isAvailable: Boolean) {
if (!isAvailable) {
//Burada StoryRecyclerView ı kaldırmalısınız
binding.storyRecyclerView.visibility = View.GONE
}
}
}
binding.storyRecyclerView.setStoryActionIdWithRequestCallback(
context = context,
storyId = storyId,
storyItemClickListener = storyItemClickListener,
storyRequestListener = storyRequestListener) |
...
Code Block | ||
---|---|---|
| ||
StoryItemClickListener storyItemClickListener = new StoryItemClickListener() {
@Override
public void storyItemClicked(String storyLink) {
//Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz
}
};
StoryRequestListener storyRequestListener = new StoryRequestListener() {
@Override
public void onRequestResult(boolean isAvailable) {
if (!isAvailable) {
//Burada StoryRecyclerView ı kaldırmalısınız
binding.storyRecyclerView.visibility = View.GONE
}
}
};
binding.storyRecyclerView.setStoryActionIdWithRequestCallback(
context,
storyId,
storyItemClickListener,
storyRequestListener); |
Öneriler Aksiyonu
Öneriler aksiyonunu uygulamanızda aşağıdaki gibi tetikleyebilirsiniz.
...
App Banner
Uygulamanızın istediğiniz bir layout dosyasında istediğiniz bir yere BannerRecyclerView
ı yerleştiriniz. Örnek xml :
Code Block | ||
---|---|---|
| ||
val callback: VisilabsCallback = object : VisilabsCallback { override fun success(response: VisilabsResponse?) { try { // Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.relateddigital.relateddigital_android.inapp.bannercarousel.BannerRecyclerView val jsonObject android:id= response!!.json"@+id/bannerListView" val groupTitle = jsonObject!!.getString("title") android:layout_width="match_parent" val jsonArray = jsonObject.getJSONArray("recommendations") android:layout_height="150dp"/> <Button for (i in 0 until jsonArray.length()) { android:id="@+id/btn_show_banner" val currentProductObject android:layout_gravity= jsonArray.getJSONObject(i)"center" val currentProductTitle = currentProductObject.getString("title")android:layout_width="150dp" val currentProductPrice = currentProductObject.getDouble("price")android:layout_height="50dp" val currentProductFreeShipping = currentProductObject.getBoolean("freeshipping")android:layout_marginTop="20dp" val qs = currentProductObject.getString("qs")android:background="@drawable/rounded_corners_background" android:text="@string/show_banner" /Continues like this... > </LinearLayout> |
Daha sonra ilgili program dosyasında (Java veya Kotlin) BannerRecyclerView
objesine erişip requestBannerCarouselAction
() methodunun çağırılması gereklidir. Bu method bir zorunlu (context: Context
), 3 opsiyonel parametre(properties: HashMap<String, String>?, bannerRequestListener: BannerRequestListener?, bannerItemClickListener: BannerItemClickListener?
) almaktadır.
properties
parametresi sorguya eklemek istediğiniz ekstra query parametreleri içindir.
bannerRequestListener
parametresi eğer sorgu sonucunda bir şeyler ters gider ve sunuculardan bilgi alınamazsa bunun size bildirimlesi içindir. Böylece layoutunuza eklediğiniz BannerRecyclerView
in visibility sini View.GONE veya View.INVISIBLE yaparak ilgili alanın boş görünmesini engelleyebilirsiniz.
bannerItemClickListener
parametresi kullanıcının herhangi bir banner a tıklaması sonucu SDK’nın otomatik yönlendirmesi yerine kendiniz yönlendirme yapmak istiyorsanız kullanabileceğiniz bir parametredir.
Tüm parametreleri içeren örnek bir kullanım aşağıdaki gibidir.
Kotlin
Code Block | ||
---|---|---|
| ||
val bannerItemClickListener = object : BannerItemClickListener {
override fun bannerItemClicked(bannerLink: String?) {
if(bannerLink.isNullOrEmpty()) {
return
}
Toast.makeText(applicationContext, bannerLink, Toast.LENGTH_SHORT).show()
Log.i("link banner", bannerLink)
try {
val viewIntent = Intent(Intent.ACTION_VIEW, Uri.parse(bannerLink))
startActivity(viewIntent)
} catch (e: Exception) {
Log.e(LOG_TAG, "The link is not formatted properly!")
}
}
}
val bannerRequestListener = object : BannerRequestListener {
override fun onRequestResult(isAvailable: Boolean) {
if (!isAvailable) {
binding?.bannerListView.visibility = View.GONE
}
}
}
val properties = HashMap<String, String>()
properties["OM.inapptype"] = "banner_carousel"
binding?.bannerListView.requestBannerCarouselAction(
context = applicationContext,
properties = properties,
bannerRequestListener = bannerRequestListener,
bannerItemClickListener = bannerItemClickListener
) |
Java
Code Block | ||
---|---|---|
| ||
BannerItemClickListener bannerItemClickListener = new BannerItemClickListener() {
@Override
public void bannerItemClicked(String bannerLink) {
if(bannerLink == null || bannerLink.isEmpty()) {
return;
}
Toast.makeText(getApplicationContext(), bannerLink, Toast.LENGTH_SHORT).show();
Log.i("link banner", bannerLink);
try {
Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(bannerLink));
startActivity(viewIntent);
} catch (Exception e) {
Log.e(LOG_TAG, "The link is not formatted properly!");
}
}
};
BannerRequestListener bannerRequestListener = new BannerRequestListener() {
@Override
public void onRequestResult(boolean isAvailable) {
if (!isAvailable) {
binding.bannerListView.visibility = View.GONE;
}
}
};
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("OM.inapptype", "banner_carousel");
binding.bannerListView.requestBannerCarouselAction(
applicationContext,
properties,
bannerRequestListener,
bannerItemClickListener
); |
Öneriler Aksiyonu
Öneriler aksiyonunu uygulamanızda aşağıdaki gibi tetikleyebilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
val callback: VisilabsCallback = object : VisilabsCallback {
override fun success(response: VisilabsResponse?) {
try {
// Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek:
val jsonObject = response!!.json
val groupTitle = jsonObject!!.getString("title")
val jsonArray = jsonObject.getJSONArray("recommendations")
for (i in 0 until jsonArray.length()) {
val currentProductObject = jsonArray.getJSONObject(i)
val currentProductTitle = currentProductObject.getString("title")
val currentProductPrice = currentProductObject.getDouble("price")
val currentProductFreeShipping = currentProductObject.getBoolean("freeshipping")
val qs = currentProductObject.getString("qs")
//Bu şekilde devam eder...
}
} catch (e: Exception) {
Log.e("Öneriler", e.message)
}
}
override fun fail(response: VisilabsResponse?) {
Log.e("Öneriler", response!!.error!!.message)
}
}
RelatedDigital.getRecommendations(
context = context,
zoneId = "zoneIdDeğeri",
productCode = "ÜrünKoduDeğeri",
visilabsCallback = callback) |
Java
Code Block | ||
---|---|---|
| ||
VisilabsCallback callback = new VisilabsCallback() { @Override public void success(VisilabsResponse response) { try { // Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek: JSONObject jsonObject = response.getJson(); String groupTitle = jsonObject.getString("title"); JSONArray jsonArray = jsonObject.getJSONArray("recommendations"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject currentProductObject = jsonArray.getJSONObject(i); String currentProductTitle = currentProductObject.getString("title"); Double currentProductPrice = currentProductObject.getDouble("price"); Boolean currentProductFreeShipping = currentProductObject.getBoolean("freeshipping"); String qs = currentProductObject.getString("qs"); //Bu şekilde devam eder... } } catch(Exception (e: Exception) { Log.e("Öneriler", e.messagegetMessage()); } } @Override overridepublic funvoid fail(VisilabsResponse response: VisilabsResponse?) { Log.e("Öneriler", response!!.error!!.message).getError().getMessage()); } }; RelatedDigital.getRecommendations( context = context, zoneId = "zoneIdDeğeri", productCode = "ÜrünKoduDeğeri", visilabsCallback = callback) |
...
; |
Ayrıca, filtreleri ve ek parametreleri de getRecommendations
metodu aracılığıyla kullanabilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
VisilabsCallbackval callback: VisilabsCallback = newobject : VisilabsCallback() { @Overrideoverride fun public void success(response: VisilabsResponse response?) { try { // Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek: JSONObjectval jsonObject = response.getJson();!!.json Stringval groupTitle = jsonObject!!.getString("title"); JSONArrayval jsonArray = jsonObject.getJSONArray("recommendations"); for (int i =in 0; iuntil < jsonArray.length(); i++) { val JSONObject currentProductObject = jsonArray.getJSONObject(i); val String currentProductTitle = currentProductObject.getString("title"); val Double currentProductPrice = currentProductObject.getDouble("price"); Booleanval currentProductFreeShipping = currentProductObject.getBoolean("freeshipping"); Stringval qs = currentProductObject.getString("qs"); //Bu şekilde devam eder... } } catch (e: Exception) { Log.e("Öneriler", e.message) } } override }fun catchfail(Exceptionresponse: eVisilabsResponse?) { Log.e("Öneriler", e.getMessage()); } } @Override public void fail(VisilabsResponse response) { Log.e("Öneriler", response.getError().getMessage()); } }; response!!.error!!.message) } } val filters = ArrayList<VisilabsTargetFilter>() val parameters = HashMap<String, String>() parameters["OM.extra"] = "Extra Value" val f1 = VisilabsTargetFilter("attr1", "0", "value1") filters.add(f1) val f2 = VisilabsTargetFilter("attr2", "1", "value2") filters.add(f2) RelatedDigital.getRecommendations( context = context, zoneId = "zoneIdDeğeri", productCode = "ÜrünKoduDeğeri", callback); |
...
Kotlin
,
visilabsCallback = callback,
properties = parameters,
filters = filters) |
Java
Code Block | ||
---|---|---|
| ||
valVisilabsCallback callback: VisilabsCallback = object :new VisilabsCallback() { @Override overridepublic funvoid success(VisilabsResponse response: VisilabsResponse?) { try { // Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek: valJSONObject jsonObject = response!!.json.getJson(); valString groupTitle = jsonObject!!.getString("title"); valJSONArray jsonArray = jsonObject.getJSONArray("recommendations"); for (int i in= 0; i until< jsonArray.length(); i++) { val JSONObject currentProductObject = jsonArray.getJSONObject(i); val String currentProductTitle = currentProductObject.getString("title"); val Double currentProductPrice = currentProductObject.getDouble("price"); val Boolean currentProductFreeShipping = currentProductObject.getBoolean("freeshipping"); val String qs = currentProductObject.getString("qs"); //ContinuesBu şekilde likedevam this...eder... } } catch(Exception e) { Log.e("Öneriler", e.getMessage()); } } @Override } public catchvoid fail(e:VisilabsResponse Exceptionresponse) { Log.e("Öneriler", e.message)response.getError().getMessage()); } }; ArrayList<VisilabsTargetFilter> filters override= funnew fail(response: VisilabsResponse?) { Log.e("Öneriler", response!!.error!!.message) } } val filters = ArrayList<VisilabsTargetFilter>() val parameters = HashMap<String, String>() parameters["OM.extra"] = "Extra Value" val f1 = VisilabsTargetFilter("attr1", "0", "value1") filters.add(f1) val f2 = VisilabsTargetFilter("attr2", "1", "value2") filters.add(f2) RelatedDigital.getRecommendationsArrayList<VisilabsTargetFilter>(); HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("OM.extra", "Extra Value"); VisilabsTargetFilter f1 = new VisilabsTargetFilter("attr1", "0", "value1"); filters.add(f1); VisilabsTargetFilter f2 = new VisilabsTargetFilter("attr2", "1", "value2"); filters.add(f2); RelatedDigital.getRecommendations( context, "zoneIdDeğeri", "ÜrünKoduDeğeri", callback, parameters, filters = filters); |
Öneriler özelliğinin tıklamalarının panele yansıması için, aşağıdaki metot, tıklanan ürünün "qs" değeri ile çağırılmalıdır.
Info |
---|
örnek callback metodunda herbir ürün için "qs" parametresinin nasıl elde edilebileceğini görebilirsiniz. |
Kotlin
Code Block | ||
---|---|---|
| ||
RelatedDigital.trackRecommendationClick( context = context, zoneIdqs = "zoneIdDeğeri",qs) |
Java
Code Block | ||
---|---|---|
| ||
RelatedDigital.trackRecommendationClick( productCode = "ÜrünKoduDeğeri"context, visilabsCallback = callback, properties = parameters, filters = filters) |
...
qs); |
Mail Üyelik Formu
RMC panel üzerinden oluşturduğunuz mail üyelik formu aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
VisilabsCallbackval callbackparameters = newHashMap<String, VisilabsCallbackString>() { @Override public void success(VisilabsResponse response) { try { // Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek: JSONObject jsonObject = response.getJson(); String groupTitle = jsonObject.getString("title"); JSONArray jsonArray = jsonObject.getJSONArray("recommendations"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject currentProductObject = jsonArray.getJSONObject(i); String currentProductTitle = currentProductObject.getString("title"); Double currentProductPrice = currentProductObject.getDouble("price"); Boolean currentProductFreeShipping = currentProductObject.getBoolean("freeshipping"); String qs = currentProductObject.getString("qs"); //Bu şekilde devam eder... } } catch(Exception e) { Log.e("Öneriler", e.getMessage()); } } @Override public void fail(VisilabsResponse response) { Log.e("Öneriler", response.getError().getMessage()); } }; ArrayList<VisilabsTargetFilter> filters = new ArrayList<VisilabsTargetFilter>(); HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("OM.extra", "Extra Value"); VisilabsTargetFilter f1 = new VisilabsTargetFilter("attr1", "0", "value1"); filters.add(f1); VisilabsTargetFilter f2 = new VisilabsTargetFilter("attr2", "1", "value2"); filters.add(f2); RelatedDigital.getRecommendations( context, "zoneIdDeğeri", "ÜrünKoduDeğeri", callback, parameters, filters = filters); |
...
Info |
---|
örnek callback metodunda herbir ürün için "qs" parametresinin nasıl elde edilebileceğini görebilirsiniz. |
Kotlin
Code Block | ||
---|---|---|
| ||
RelatedDigital.trackRecommendationClick(
context = context,
qs = qs) |
Java
Code Block | ||
---|---|---|
| ||
RelatedDigital.trackRecommendationClick(
context,
qs); |
Mail Üyelik Formu
...
RelatedDigital.customEvent(
context = context,
pageName = "Mail Üyelik",
properties = parameters,
parent = activity
) |
Java
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
context,
"Mail Üyelik",
parameters,
activity
); |
...
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek:
|
Çarkıfelek (Spin To Win)
RMC panel üzerinden oluşturduğunuz çarkıfelek aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
context = context,
pageName = "Çarkıfelek",
properties = parameters,
parent = activity
) |
Java
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
context,
"Çarkıfelek",
parameters,
activity
); |
Çarkıfelek Yarım Görünüm | Çarkıfelek Tam Görünüm |
---|---|
|
|
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek:
|
Aşağıdaki kodu kullanarak kazanılan çarkıfelek dilimindeki linki yakalayabilir ve kullanıcıyı istediğiniz sayfaya yönlendirebilirsiniz. Kodu istediğiniz bir activity içerisine eklemeniz yeterlidir.
NOT: Bu receiver sdkmızın ekli olduğu tüm uygulamalarda Çarkıfelek aksiyonunu dinler. Sorun yaşamamak adına lütfen gelen linkte önce kendi urlinizi doğrulayıp yönlendirme yapınç
Code Block |
---|
private val broad = object: BroadcastReceiver() {
override fun onReceive(context: Context ? , intent : Intent ? ) {
when(intent?.action) {
"InAppLink" -> {
val string = intent.getStringExtra("link")
Log.i("Deeplink", "Received deeplink: $string")
}
}
}
}
//OnCreate() fonskiyonu içinde
val intentFilter = IntentFilter("InAppLink")
registerReceiver(broad, intentFilter)
// onDestroy() fonksiyonu içinde
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(broad)
} |
Kazı Kazan (Scratch To Win)
RMC panel üzerinden oluşturduğunuz kazı-kazan aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
...
Code Block | ||
---|---|---|
| ||
val parameters = HashMap<String, String>() RelatedDigital.customEvent( context = context, pageName = "MailKazı ÜyelikKazan", properties = parameters, parent = activity ) |
...
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>(); RelatedDigital.customEvent( context, "MailKazı ÜyelikKazan", parameters, activity ); |
...
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek: parameters[“type”] = “mail_subs_form” |
...
Örnek:
|
Hediye Yağmuru (Gift Rain)
RMC panel üzerinden oluşturduğunuz çarkıfelek kazı-kazan aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
...
Code Block | ||
---|---|---|
| ||
val parameters = HashMap<String, String>() RelatedDigital.customEvent( context = context, pageName = "ÇarkıfelekHediye Yağmuru", properties = parameters, parent = activity ) |
...
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
context,
"Çarkıfelek",
parameters,
activity
); |
...
Çarkıfelek Yarım Görünüm
...
Çarkıfelek Tam Görünüm
...
...
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek: parameters[“type”] = “spin_to_win” |
Kazı Kazan
...
"Hediye Yağmuru",
parameters,
activity
); |
Ürün Durum Bilgisi
RMC panel üzerinden oluşturduğunuz ürüm durum bilgisi aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
val parameters = HashMap<String, String>() RelatedDigital.customEvent( context = context, pageName = "KazıÜrün Durum KazanBilgisi", properties = parameters, parent = activity ) |
Java
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>(); RelatedDigital.customEvent( context, "KazıÜrün Durum KazanBilgisi", parameters, activity ); |
...
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek:
|
...
|
Kulakçık
RMC panel üzerinden oluşturduğunuz ürüm durum bilgisi kulakçık aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.
Kotlin
Code Block | ||
---|---|---|
| ||
val parameters = HashMap<String, String>() RelatedDigital.customEvent( context = context, pageName = "Ürün Durum BilgisiKulakçık", properties = parameters, parent = activity ) |
Java
Code Block | ||
---|---|---|
| ||
HashMap<String, String> parameters = new HashMap<String, String>(); RelatedDigital.customEvent( context, "Ürün Durum BilgisiKulakçık", parameters, activity ); |
...
...
Info |
---|
parent parametresi ile ilgili Activity değerini geçtiğinizden emin olunuz. RMC panelden oluşturduğunuz aksiyonda bir kural tanımladıysanız bu kuralı da parameters ile geçmeniz gerekmektedir. Örnek:
|
...
|