Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Current »

Modülün Etkinleştirilmesi

Burada açıklandığı gibi etkinleştirilmelidir.

Uygulama-İçi Mesajlar

Kullanıcınıza uygulama-içi bir mesaj göstermek için öncelikle RMC panelinden bir target aksiyon tanımlamanız ve gerekli alanları doldurmanız gerekmektedir. Ardından aşağıdaki gibi bu target aksiyonu tetikleyebilir ve kullanıcınıza oluşturduğunuz formu uygulamanız aracılığıyla gösterebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Uygulama-İçi Mesaj",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Uygulama-İçi Mesaj",
  parameters,
  activity
);

Uygulama-içi mesaj göstermek için yukarıdaki gibi customEvent metodunu çağırırken parent parametresi null olmamalıdır. parent parametresine bir Activity değeri verilmezse mesaj görünmeyecektir.

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:

parameters["OM.inapptype"] = "full_screen_image"

parameters.put("OM.inapptype", "full_screen_image");

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.

Kotlin

val buttonCallback: InAppButtonInterface = object : InAppButtonInterface {
  override fun onPress(link: String?) {
    //Tıklama sonrası çalıştırılacak kodu buraya yazınız.
  }
}
RelatedDigital.setInAppButtonInterface(buttonCallback)

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Uygulama-İçi Mesaj",
  properties = parameters,
  parent = activity
)

Java

InAppButtonInterface buttonCallback = new InAppButtonInterface() {
  @Override
  public void onPress(String link) {
    //Tıklama sonrası çalıştırılacak kodu buraya yazınız.    
  }
};

RelatedDigital.setInAppButtonInterface(buttonCallback);

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Uygulama-İçi Mesaj",
  parameters,
  activity
);

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 setInAppButtonInterface metodu aracılığıyla SDK ya iletmeniz gerekmektedir. Daha sonra customEvent metoduyla ilgili aksiyonu tetikleyebilirsiniz.

Özel Font Kullanımı

  1. Uygulama-içi mesajlarda özel font kullanımı için ilk olarak projenizin res klasörü altında font dosyası oluşturunuz(yoksa).

     

  2. Oluşturduğunuz klasörün içerisine istediğiniz fontları ekleyebilirsiniz.

     

  3. 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.

Kotlin

val callback: VisilabsCallback = object : VisilabsCallback {
  override fun success(response: VisilabsResponse?) {
    try {
      val favsResponse: FavsResponse = Gson().fromJson(response!!.rawResponse, FavsResponse::class.java)
      val favBrands: String = favsResponse.favoriteAttributeAction!![0].actiondata!!.favorites!!.brand!![0]!!
      Log.i("Favs 1.Brand", favBrands)
    } catch (e: Exception) {
      Log.e("Favori Özellik", e.message)
    }
  }

  override fun fail(response: VisilabsResponse?) {
    Log.e("Favori Özellik", response!!.error!!.message)
  }
}

RelatedDigital.getFavorites(
  context = context,
  actionId = null,
  actionType = Constants.FavoriteAttributeAction,
  visilabsCallback = callback)

Java

VisilabsCallback callback = new VisilabsCallback() {
  @Override
  public void success(VisilabsResponse response) {
    try {
      FavsResponse favsResponse = new Gson().fromJson(response.getRawResponse(), FavsResponse.class);
      String favBrands = favsResponse.getFavoriteAttributeAction().get(0).getActiondata().getFavorites().getBrand()[0];
      Log.i("Favs 1.Brand", favBrands); 
    } catch(Exception e) {
      Log.e("Favori Özellik", e.getMessage());
    }     
  }

  @Override
  public void fail(VisilabsResponse response) {
    Log.e("Favori Özellik", response.getError().getMessage);
  }
};

RelatedDigital.getFavorites(
  context,
  null,
  Constants.FavoriteAttributeAction,
  callback);

Story Manager

Uygulamanızın layout unda dilediğiniz bir alana StoryRecyclerView ı yerleştiriniz.

<com.relateddigital.relateddigital_android.inapp.story.StoryRecyclerView
  android:id="@+id/story_recycler_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" />

StoryItemClickListener tanımlayarak her bir story’e tıklandığında yapmak istediğiniz yönlendirme veya alınacak aksiyonu tanımlayınız.

Ardından StoryRecyclerView ın setStoryAction veya setStoryActionId methodunu çağırarak storyItemClickListenerobjesini methoda ekleyiniz.

Kotlin

val storyItemClickListener = object : StoryItemClickListener {
  override fun storyItemClicked(storyLink: String?) {
    //Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz
  }
}     
binding.storyRecyclerView.setStoryAction(
  context = context,
  storyItemClickListener = storyItemClickListener)

Java

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);

ID ile

Kotlin

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)

Java

StoryItemClickListener storyItemClickListener = new StoryItemClickListener() {
  @Override
  public void storyItemClicked(String storyLink) {
    //Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz         
  }
};     
binding.storyRecyclerView.setStoryActionId(
  context,
  storyId,
  storyItemClickListener);

Eğer bir şeylerin ters gitmesi ve story aksiyonun gösterilememesi durumunda layout dosyanıza eklediğiniz StoryRecyclerView dan dolayı ekranda ilgili alanın boş kalmasına karşı önlem almak isterseniz story aksiyonunu aşağıdaki gibi setStoryActionWithRequestCallback veya setStoryActionIdWithRequestCallback metotlarını kullanarak tetikleyebilirsiniz.

Kotlin

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)

Java

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);

ID ile

Kotlin

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)

Java

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);

App Banner

Uygulamanızın istediğiniz bir layout dosyasında istediğiniz bir yere BannerRecyclerView ı yerleştiriniz. Örnek xml :

<?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
        android:id="@+id/bannerListView"
        android:layout_width="match_parent"
        android:layout_height="150dp"/>

    <Button
        android:id="@+id/btn_show_banner"
        android:layout_gravity="center"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_marginTop="20dp"
        android:background="@drawable/rounded_corners_background"
        android:text="@string/show_banner" />
</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

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

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

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

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) {
      Log.e("Öneriler", e.getMessage());
    }    
  }

  @Override
  public void fail(VisilabsResponse response) {
    Log.e("Öneriler", response.getError().getMessage());
  }
};

RelatedDigital.getRecommendations(
  context,
  "zoneIdDeğeri",
  "ÜrünKoduDeğeri",
  callback);


Ayrıca, filtreleri ve ek parametreleri de getRecommendations metodu aracılığıyla kullanabilirsiniz.

Kotlin

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)
  }
}

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",
  visilabsCallback = callback,
  properties = parameters,
  filters = filters)

Java

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) {
      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);


Ö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.

örnek callback metodunda herbir ürün için "qs" parametresinin nasıl elde edilebileceğini görebilirsiniz.

Kotlin

RelatedDigital.trackRecommendationClick(
  context = context,
  qs = qs)

Java

RelatedDigital.trackRecommendationClick(
  context,
  qs);

Mail Üyelik Formu

RMC panel üzerinden oluşturduğunuz mail üyelik formu aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Mail Üyelik",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Mail Üyelik",
  parameters,
  activity
);

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"

parameters.put("type", "mail_subs_form");

Çarkıfelek (Spin To Win)

RMC panel üzerinden oluşturduğunuz çarkıfelek aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Çarkıfelek",
  properties = parameters,
  parent = activity
)

Java

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

 

 

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"

parameters.put("type", "spin_to_win");

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.

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.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Kazı Kazan",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Kazı Kazan",
  parameters,
  activity
);

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"] = "scratch_to_win"

parameters.put("type", "scratch_to_win");

Hediye Yağmuru (Gift Rain)

RMC panel üzerinden oluşturduğunuz kazı-kazan aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Hediye Yağmuru",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Hediye Yağmuru",
  parameters,
  activity
);

Image from iOS (12) (1).mov

Ürün Durum Bilgisi

RMC panel üzerinden oluşturduğunuz ürüm durum bilgisi aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Ürün Durum Bilgisi",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Ürün Durum Bilgisi",
  parameters,
  activity
);

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"] = "product_stat_notifier"

parameters.put("type", "product_stat_notifier");

Kulakçık

RMC panel üzerinden oluşturduğunuz kulakçık aksiyonunu aşağıdaki gibi tetikleyebilirsiniz.

Kotlin

val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Kulakçık",
  properties = parameters,
  parent = activity
)

Java

HashMap<String, String> parameters = new HashMap<String, String>();
RelatedDigital.customEvent(
  context,
  "Kulakçık",
  parameters,
  activity
);

 

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"] = "kulakçık"

parameters.put("type", "kulakçık"); 

Örnek Uygulama

RelatedDigital Demo Uygulaması

  • No labels