Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

Modülün Etkinleştirilmesi

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

In-App Messages

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


Tüm customEvent () çağrılarına gerekli getActivity () parametresini ekleyin:

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ı

  1. InApp’lerde custom font kullanımı için ilk olarak res klasörü altında font folder'ı oluşturun.

    Image Added

     

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

    Image Added

     

  3. Son olarak arayüzden uzantısız bir şekilde kullanmak istediğiniz fontun adını girin.

    Image Added


12 farklı In-App Message tasarımı mevcut:

Pop-up - Görsel, Başlık, Yazı & Buton

Mini - İkon & Yazı

Tam Ekran Görsel

Image AddedImage Added

 

Image Added

 

Tam Ekran Görsel ve Buton

Pop-up - Görsel, Başlık, Yazı ve Buton

Pop-up Anket

Image Added

 

Image Added

 

Image Added

 

Pop-up - Yazı ve Butonlu NPS

Native Alert & Action Sheet

1-10 Puanlama NPS

Image Added

 

Image Added

 

Image Added

Yıldızlı anket & ikinci pop-up

Yarım Ekran Görsel

Carousel

Image Added

 

Image Added

 

Image Added

 

 

InApp İçeren Örnek Uygulama

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

Code Block
public VisilabsCallback getVisilabsCallback() {

    return new VisilabsCallback() {
        @Override
        public void success(VisilabsResponse response) {
            try {

                FavsResponse favsResponse = new Gson().fromJson(response.getRawResponse(), FavsResponse.class);

                String favBrands = favsResponse.getFavoriteAttributeAction()[0].getActiondata().getFavorites().getBrand()[0];
                Log.i("Favs 1.Brand", favBrands);

            } catch (Exception ex) {
                Log.e("Error", ex.getMessage(), ex);
            }
        }

        @Override
        public void fail(VisilabsResponse response) {
            Log.d("Error", response.getRawResponse());
        }
    };
}

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) {
                Toast.makeText(getApplicationContext(), storyLink, Toast.LENGTH_LONG).show();
            }
        };

       visilabsRecyclerView.setStoryAction(getApplicationContext(), 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.

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:

Code Block
VisilabsCallback callback = new VisilabsCallback() {
    @Override
    public void success(VisilabsResponse response) {
        try{
            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");
                //Continues like this...
            }
        } catch (Exception e){
            Log.e(LOG_TAG, e.getMessage(), e);
        }
    }
    @Override
    public void fail(VisilabsResponse response) {
        Log.e(LOG_TAG, response.getErrorMessage());
    }
};

 

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


Ayrıca, filtreleri ve ek parametreleri geçirebileceğiniz bir overload buildTargetRequest yöntemi bulunmaktadır.

Code Block
List<VisilabsTargetFilter> filters = new ArrayList<VisilabsTargetFilter>();
HashMap<String,String> properties = new HashMap<String, String>();
properties.put("OM.extra", "Extra Value");
VisilabsTargetFilter f = new VisilabsTargetFilter("attr1", "0", "value");
filters.add(f);
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");
filters.add(f);

try {
    VisilabsTargetRequest targetRequest = Visilabs.CallAPI().buildTargetRequest(zoneID, "productCode", properties, filters);
    targetRequest.executeAsync(callback);
} catch (Exception e) {
    e.printStackTrace();


Recommendation tıklamalarının panele yansıması için, aşağıdaki method, tıklanan ürünün "qs" parametresiyle çağırılmalıdır.

Code Block
// örnek callback fonsiyonunda her bir ürün için "qs" parametresinin nasıl elde edilebileceğini görebilirsiniz.
Visilabs.CallAPI().trackRecommendationClick(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;

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

Çarkıfelek Yarım Görünüm

Çarkıfelek Tam Görünüm

Image Added

 

Image Added

 

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.

...

Örnek Uygulama

RelatedDigital Demo Uygulaması