Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagekotlin
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)

Recommendation

Recommendation Widget'larının Mobil Uygulamaya Yerleştirilmesi

Android mobil uygulamanızda, kişiye özel ürün önerileri göstermeniz için gerekli dokümanları bu bölümde bulabilirsiniz.  

Bir VisilabsTargetRequest nesnesi oluşturun ve VisilabsTargetRequest nesnesinin executeAsync yöntemini çağırın.

ZoneID her uygulama için farklıdır, bu nedenle destek için RMC ekibi ile iletişime geçiniz. "Alternatif Ürünler" gibi öneri widgetları, ürün kodunun bir parametre olarak görülmesini gerektirir.

Talep tamamlandıktan sonra, talebin başarı ya da başarısızlık durumuna bağlı olarak callback fonksiyonu çağrılır, bu nedenle ihtiyaçlarınıza göre callback fonksiyonlarını aşağıda gösterildiği gibi kodlamanız gerekir:

...

Öneriler Aksiyonu

Öneriler aksiyonunu uygulamanızda aşağıdaki gibi tetikleyebilirsiniz. 

Code Block
languagekotlin
val callback: VisilabsCallback = object : VisilabsCallback {
  override fun @Override
  success(response: VisilabsResponse?) {
 public void success(VisilabsResponse response)try {
      // Burada try{gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek:
       JSONObjectval jsonObject = response.getJson();!!.json
            Stringval groupTitle = jsonObject!!.getString("title");
            JSONArrayval jsonArray = jsonObject.getJSONArray("recommendations");
      for (i in 0 until jsonArray.length())  for(int i = 0 ; i <{
        val currentProductObject = jsonArray.lengthgetJSONObject(i)
 ; i++) {     val currentProductTitle = currentProductObject.getString("title")
        JSONObjectval currentProductObjectcurrentProductPrice = jsonArraycurrentProductObject.getJSONObjectgetDouble(i);"price")
        val currentProductFreeShipping = currentProductObject.getBoolean("freeshipping")
        Stringval currentProductTitleqs = currentProductObject.getString("title");qs")
        //Continues like this...
      }
    } catch (e: Exception) {
   Double currentProductPrice = currentProductObjectLog.getDoublee("priceÖneriler", e.message);
    }
  }

  override fun fail(response: VisilabsResponse?) {
 boolean currentProductFreeShipping = currentProductObjectLog.getBooleane("freeshipping");Öneriler", response!!.error!!.message)
  }
}

RelatedDigital.getRecommendations(
  context = context,
  zoneId = "zoneIdDeğeri",
 String qsproductCode = currentProductObject.getString("qs");
   ÜrünKoduDeğeri",
  visilabsCallback = callback)


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

Code Block
languagekotlin
val callback: VisilabsCallback = object : VisilabsCallback {
  override fun success(response: VisilabsResponse?) {
    try {
      //Continues like this... Burada gelen öneriler listesiyle ilgili aksiyonu alabilirsiniz.Örnek:
      val jsonObject = response!!.json
      val groupTitle = jsonObject!!.getString("title")
      }val jsonArray = jsonObject.getJSONArray("recommendations")
     } catchfor (Exception e){
  i in 0 until jsonArray.length()) {
        val currentProductObject = jsonArray.getJSONObject(i)
        val Log.e(LOG_TAG, e.getMessage(), e);
currentProductTitle = currentProductObject.getString("title")
        val currentProductPrice = currentProductObject.getDouble("price")
        val currentProductFreeShipping = currentProductObject.getBoolean("freeshipping")
        val qs = currentProductObject.getString("qs")
       } //Continues like this...
 }     @Override}
    public} voidcatch fail(VisilabsResponsee: responseException) {
 
      Log.e(LOG_TAG"Öneriler", responsee.getErrorMessage()message);
    }
};

 

Yukarıdaki gibi callback fonksiyonunu oluşturulduktan sonra istek aşağıdaki şekilde gibi atılır:

Code Block
VisilabsTargetRequest targetRequest = Visilabs.CallAPI().buildTargetRequest(zoneID, "productCode");
targetRequest.executeAsync(callback);

...

Code Block
List<VisilabsTargetFilter> filters = new ArrayList<VisilabsTargetFilter>();
HashMap<String,String> properties = new
  }

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

val filters = ArrayList<VisilabsTargetFilter>()
val parameters = HashMap<String, String>();
properties.put(
parameters["OM.extra",] = "Extra Value");
VisilabsTargetFilterval ff1 = new VisilabsTargetFilter("attr1", "0", "valuevalue1");
filters.add(ff1);
f.setAttribute("attr2");
f.setFilterType("1"); // There are 2 filter types: Include and Exclude. For Include pass "0", for Exclude pass "1".
f.setValue("value");
val f2 = VisilabsTargetFilter("attr2", "1", "value2")
filters.add(ff2);

RelatedDigital.getRecommendations(
try { context = context,
 VisilabsTargetRequest targetRequestzoneId = Visilabs.CallAPI().buildTargetRequest(zoneID, "productCode", properties, filters);"zoneIdDeğeri",
  productCode = "ÜrünKoduDeğeri",
  visilabsCallback = targetRequest.executeAsync(callback);,
} catch (Exceptionproperties e)= {parameters,
  filters = e.printStackTrace();

...

filters)


Öneriler özelliğinin tıklamalarının panele yansıması için, aşağıdaki methodmetot, tıklanan ürünün "qs" parametresiyle değeri ile çağırılmalıdır.

Code Blockinfo
//

örnek

callback fonsiyonunda her bir ürün için

callback metodunda herbir ürün için "qs"

parametresinin

nasıl

elde

edilebileceğini

görebilirsiniz.

Visilabs.CallAPI()

Code Block
languagekotlin
RelatedDigital.trackRecommendationClick(qs);

 

...


  context = context,
  qs = qs)

Mail Üyelik Formu

RMC panelden in-app message’da olduğu gibi mail üyelik formunu oluşturduktan sonra her customEvent çağırdığınız zaman mail üyelik formu olup olmadığı kontrol edilir ardından mail üyelik formu gösterilir. customEvent parametresinde Activity’i alan overloadı çağırmanız gerekmektedir. Örnek kod ve görsel;

Code Block
customEvent(String pageName, HashMap<String, String> properties, Activity parent)

...

Çarkıfelek

RMC panelden in-app message’da olduğu gibi çarkıfelek oluşturduktan sonra her customEvent çağırdığınız zaman çarkıfelek olup olmadığı kontrol edilir ardından çarkıfelek gösterilir. customEvent parametresinde Activity’i alan overloadı çağırmanız gerekmektedir. Örnek kod ve görsel;

...

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

Code Block
languagekotlin
val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Mail Üyelik",
  properties = parameters,
  parent = 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”

Çarkıfelek

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

Code Block
languagekotlin
val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Çarkıfelek",
  properties = parameters,
  parent = 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

RMC panelden in-app message’da olduğu gibi Kazı Kazan oluşturduktan sonra her customEvent çağırdığınız zaman Kazı Kazan olup olmadığı kontrol edilir ardından Kazı Kazan gösterilir. customEvent parametresinde Activity’i alan overloadı çağırmanız gerekmektedir. Örnek kod ve görsel;

Code Block
customEvent(String pageName, HashMap<String, String> properties, Activity parent)

...

Ürün Durum Bilgisi

RMC Panelde tanımladığınız Ürün Durum Bilgisi aksiyonu Ürün Görüntüleme, Sepete Ekleme ve Favoriye Ekleme/Çıkarma eventlerinde çalışmaktadır. Bu eventlerde ürün idnin gönderildiğinden emin olmalısınız. Bu eventlerde çağırdığınız customEvent metodunun Activity overloadını alması gerekmektedir.

...

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

Code Block
languagekotlin
val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Kazı Kazan",
  properties = parameters,
  parent = 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”] = “scratch_to_win”

Ürün Durum Bilgisi

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

Code Block
languagekotlin
val parameters = HashMap<String, String>()
RelatedDigital.customEvent(
  context = context,
  pageName = "Ürün Durum Bilgisi",
  properties = parameters,
  parent = 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”] = “product_stat_notifier”

Örnek Uygulama

RelatedDigital Demo Uygulaması