Versions Compared

Key

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

...

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

...

Uygulama-

...

Uygulama içi mesajlar (in-app messages), mobil uygulamanızda doğrudan etkin oldukları zaman kullanıcılarınıza giden bildirimlerdir. Birkaç farklı isimle adlandırılabilirler: uygulama içi mesajlar, uygulama içi bildirimler ve uygulama içi mesajlaşma. Bunlar, push bildirimler, e-posta ve SMS gibi diğer mesajlaşma türlerini içeren genel bir mobil mesajlaşma stratejisinin hayati bir bileşenidir.

Uygulama içi iletileri göstermek ve RMC nesnesini başlatmak için aşağıdaki yöntemi kullanın:

Code Block
Visilabs.CreateAPI("OrganizasyonID", "SiteID", "http://lgr.visilabs.net", "DataSource", "http://rt.visilabs.net" , "Android" , getApplicationContext(), "http://s.visilabs.net/json", "http://s.visilabs.net/actjson", requestTimeout);

...

Code Block
HashMap<String,String> parameters = new HashMap<String, String>();
 parameters.put("OM.exVisitorID", "test@euromsg.com");
 parameters.put("OM.sys.AppID", "visilabs-login"); //

 Visilabs.CallAPI().customEvent("android-visilabs", parameters, getActivity());

InApp’lerde bulunan deeplinklerin callback edilmesi:

Bu özelliği kullanabilmek için yapmanız gereken customEvent() methoduyla InApp’i çağırmadan önce aşağıdaki gibi callback methodunu set etmelisiniz:

Code Block
InAppButtonInterface buttonCallback = new InAppButtonInterface() {
    @Override
    public void onPress(String link) {
        //Write your code here for the button click
    }
};
Visilabs.CallAPI().setInAppButtonInterface(buttonCallback);

Ardından customEvent() metodunu çağırabilirsiniz.

InApp’lerde Custom Font kullanımı

...

İç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.

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

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.

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:

parameters["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.

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

...


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.

public VisilabsCallback getVisilabsCallback()
Code Block
Code Block
language
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


//requestAction() or requestActionId()
  try {
        VisilabsActionRequest visilabsActionRequest = Visilabs.CallAPI().requestAction(VisilabsConstant.FavoriteAttributeAction);
        visilabsActionRequest.executeAsyncAction(getVisilabsCallback());
    } catch (Exception e) {
        e.printStackTrace();
    }
    }

Not: getVisilabsCallback() metodu için aşağıdaki iki kod bloğundan birisini kullanabilirsiniz.

kotlin
val callback: VisilabsCallback = object : VisilabsCallback {
  override   return new VisilabsCallback() {
        @Override
        public void success(VisilabsResponse responsefun success(response: VisilabsResponse?) {
            try {
      val           FavsResponse favsResponse = newfavsResponse: FavsResponse = Gson().fromJson(response!!.getRawResponse()rawResponse, FavsResponse::class.classjava);
      val           favBrands: String favBrands = favsResponse.getFavoriteAttributeAction()favoriteAttributeAction!![0].getActiondata().getFavorites().getBrand()[0];
         actiondata!!.favorites!!.brand!![0]!!
      Log.i("Favs 1.Brand", favBrands);

     
      } catch (e: Exception ex) {
 
              Log.e("ErrorFavori Özellik", ex.getMessage(), ex);
 e.message)
          }
     
  }

        @Override
        public voidoverride fun fail(response: VisilabsResponse response?) {
            Log.de("ErrorFavori Özellik", response.getRawResponse());
 !!.error!!.message)
      }
   
};
}

veya

Code Block
private VisilabsFavsRequestCallback getVisilabsCallback() {
    return new VisilabsFavsRequestCallback() {
        @Override
        public void success(FavsResponse message, String url) {
            Log.i(LOG_TAG, "Success Request : " + url);
            //Do your work here by using message, e.g.
            /*
            List<FavoriteAttributeAction> favsActions = message.getFavoriteAttributeAction();
            for (int i = 0; i < favsActions.size() ; i++) {
                String actionType = favsActions.get(i).getActiontype();
                Log.i(LOG_TAG, "action type " + i+1 + " : " + actionType);
                Actiondata  actionData = favsActions.get(i).getActiondata();
                for (int j = 0; j < favsActions.size() ; j++) {
                    String[] attributes = actionData.getAttributes();
                    Favorites favorites = actionData.getFavorites();
                    //goes on...
                }
            }
            */
        }
        @Override
        public void fail(Throwable t, String url) {
            Log.e(LOG_TAG, "Fail Request : " + url);
            Log.e(LOG_TAG, "Fail Request Message : " + t.getMessage());
        }
    };
}

Story Manager

Story Banner ve Story Aksiyonu

Her iki aksiyon içinde implementasyonu için aşağıdaki VisilabsRecyclerView ‘i layout’ta istediğiniz bölüme yerleştirin.

Code Block

    <com.visilabs.story.VisilabsRecyclerView
        android:id="@+id/vrv_story"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

VisilabsRecyclerView'i classınızda tanımladıktan sonra StoryItemClickListener tanımlayarak her bir story’e tıklandığında yapmak istediğiniz yönlendirme ve ya aksiyonu tanımlayınız. Burada örnek olması için Toast Mesajı gösterilmiştir.

Ardından VisilabsRecyclerView'in setStoryActionmethodunu çağrarak storyItemClickListenerobjesini methoda ekleyiniz.

Code Block
    VisilabsRecyclerView visilabsRecyclerView = findViewById(R.id.vrv_story);

       StoryItemClickListener storyItemClickListener = new StoryItemClickListener() {
            @Override
            public void storyItemClicked(String storyLink
RelatedDigital.getFavorites(
  context = applicationContext,
  actionId = null,
  actionType = Constants.FavoriteAttributeAction,
  visilabsCallback = callback)

Story Manager

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

Code Block
languagexml
<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.

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

veya

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

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.

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.setStoryActionWithRequestCallback(
  context = context,
  storyItemClickListener = storyItemClickListener
  storyRequestListener = storyRequestListener)

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
 

...

İsterseniz Story Aksiyon Id ile de setleyebilirsiniz.

Code Block
      visilabsRecyclerView.setStoryActionId(getApplicationContext(), "250", storyItemClickListener);

Panelde aktif story looking banner veya story olduğu sürece uygulamanızda gözükecektir.

 storyRequestListener = storyRequestListener)

Recommendation

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

...