Modülün Etkinleştirilmesi
Burada açıklandığı gibi etkinleştirilmelidir.
Veri Gönderimi
RelatedDigital SDK’sı uygulamanızdan kullanıcının hareketlerine göre veri toplamaya olanak sağlamaktadır.
Aşağıda bu amaç için tasarlanmış metotları ve detaylarını bulabilirsiniz.
Mobil kanaldan gelen verilerinizin RMC'ye yüklenebilmesi için, aktif RMC hesabınızda kullanmış olduğunuz referans değeriniz ne ise (KEY_ID* veya E-Mail) mobil kanaldan gelen verilerin de bu referans ile gelmesine dikkat ediniz."
*KEY_ID: Uygulama sahibi tarafından müşterisinin tekilleştirilmesi için kullanılan id değerleridir. Bunlar CRM id, userId, customerId, accountId gibi farklı isimlerle ifade ediliyor olabilir.
exVisitorId yapınıza göre keyID veya E-Posta olabilir.
Kaydolma
RelatedDigital.signUp( context = context, exVisitorId = "exVisitorIdDeğeri" )
exVisitorId parametresi ile RMC panelinde kullanıcıyı tekilleştirmek için kullandığınız özellik gönderilmelidir. Örneğin, email
Bu metod aracılığıyla ek bilgiler göndermek de mümkündür. Aşağıdaki örnek, OM.sys.TokenID ve OM.sys.AppID parametrelerini içeren özelliklerle signUp metodunun çağırılmasını gösterir. OM.sys.TokenID ve OM.sys.AppID push bildirimleri göndermek için gereklidir ve OM.sys.AppID parametresi RMC web panelinden alınabilir.
val parameters = HashMap<String, String>() parameters["OM.sys.TokenID"] = "tokenDeğeri" parameters["OM.sys.AppID"] = "appAliasDeğeri" RelatedDigital.signUp( context = context, exVisitorId = "exVisitorIdDeğeri", properties = parameters )
Oturum Açma
Kaydolma metodu gibi oturum açma metodu da isteğe bağlı parametre özellikleriyle veya bunlar olmadan çağrılabilir.
RelatedDigital.login( context = context, exVisitorId = "exVisitorIdDeğeri" )
exVisitorId parametresi ile RMC panelinde kullanıcıyı tekilleştirmek için kullandığınız özellik gönderilmelidir. Örneğin, email
val parameters = HashMap<String, String>() parameters["OM.sys.TokenID"] = "tokenDeğeri" parameters["OM.sys.AppID"] = "appAliasDeğeri" RelatedDigital.login( context = context, exVisitorId = "exVisitorIdDeğeri", properties = parameters )
Ayrıca, kullanıcıyı segmentlemenizi sağlayacak parametreleri de ekleyebilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.sys.TokenID"] = "tokenDeğeri" parameters["OM.sys.AppID"] = "appAliasDeğeri" parameters["OM.vseg1"] = "seg1Değeri" parameters["OM.vseg2"] = "seg2Değeri" parameters["OM.vseg3"] = "seg3Değeri" parameters["OM.vseg4"] = "seg4Değeri" parameters["OM.vseg5"] = "seg5Değeri" parameters["OM.bd"] = "1995-09-02" parameters["OM.gn"] = "m" parameters["OM.loc"] = "istanbul" RelatedDigital.login( context = context, exVisitorId = "exVisitorIdDeğeri", properties = parameters )
Sayfa Görüntüleme
Kullanıcının o anda görüntülemekte olduğu sayfa adını göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz. properties’e fazladan parametreler ekleyebilir veya boş bırakabilirsiniz.
val parameters = HashMap<String, String>() RelatedDigital.customEvent( context = context, pageName = "Sıkça Sorulan Sorular", properties = parameters )
Ürün Görüntüleme
Kullanıcının uygulamanızda bir ürün görüntülediği bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.pv"] = "Product Code" //Ürün Kodu parameters["OM.pn"] = "Product Name" //Ürün İsmi parameters["OM.ppr"] = "Product Price" //Ürün Fiyatı parameters["OM.pv.1"] = "Product Brand" //Ürün markası parameters["OM.inv"] = "Number of items in stock" //Stokta kaç tane kaldığı RelatedDigital.customEvent( context = context, pageName = "Product View", properties = parameters )
Sepete Ekleme
Kullanıcının sepete ürün eklemesi veya çıkarması bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
Sepette bulunan son üründe kullanıcı tarafından silindiğinde OM.pb, OM.pu ve OM.ppr parametrelerini boş string olarak göndermelisiniz. Örnek,
parameters["OM.pb"] = ""
val parameters = HashMap<String, String>() parameters["OM.pbid"] = "Basket ID" //Sepet ID si parameters["OM.pb"] = "Product1Code;Product2Code" //Ürün1Kodu;Ürün2Kodu parameters["OM.pu"] = "Product1Quantity;Product2Quantity" //Ürün1Miktarı;Ürün2Miktarı parameters["OM.ppr"] = "Product1Price*Product1Quantity;Product2Price*Product2Quantity" //Ürün1Fiyatı*Ürün1Miktarı;Ürün2Fiyatı*Ürün2Miktarı RelatedDigital.customEvent( context = context, pageName = "Cart", properties = parameters )
Satın Alma
Kullanıcı bir veya daha fazla öğe satın aldığında aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.tid","Transaction ID"); parameters.put("OM.pp","Product1 Code;Product2 Code"); parameters.put("OM.pu","Product1 Quantity;Product2 Quantity"); parameters.put("OM.ppr","Product1 Price*Product1 Quantity;Product2 Price*Product2 Quantity"); Visilabs.CallAPI().customEvent("Product Purchase", parameters, getActivity());
Kategori Görüntüleme
Kullanıcı bir kategori listesi sayfasını görüntülediğinde, aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.clist","Category Code/Category ID"); Visilabs.CallAPI().customEvent("Category View", parameters, getActivity());
Arama
Mobil uygulamanın bir arama işlevi varsa, aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.OSS","Search Keyword"); parameters.put("OM.OSSR","Number of search results"); Visilabs.CallAPI().customEvent("In App Search", parameters, getActivity());
Banner Tıklaması
Aşağıdaki customEvent uygulamasını kullanarak banner tıklama verilerini izleyebilirsiniz.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.OSB","Banner Name/Banner Code"); Visilabs.CallAPI().customEvent("Banner Click", parameters, getActivity());
Favorilere Ekleme
Kullanıcı favorilerine bir ürün eklediğinde, aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.pf","Product Code"); parameters.put("OM.pfu","1"); parameters.put("OM.pfr","Product Price"); Visilabs.CallAPI().customEvent("/om_evt.gif", parameters, getActivity());
Favorilerden Çıkarma
Kullanıcı favorilerinden bir ürün çıkardığında, aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> parameters= new HashMap<String, String>(); parameters.put("OM.pf","Product Code"); parameters.put("OM.pfu","-1"); parameters.put("OM.pfr","Product Price"); Visilabs.CallAPI().customEvent("/om_evt.gif", parameters, getActivity());
Kampanya Parametresi Yollama
Bir push mesajına tıklayarak uygulamayı başlattıktan sonra, aşağıdaki customEvent uygulamasını kullanın.
HashMap<String, String> properties = new HashMap<>(); properties.put("utm_campaign","euromsg campaign"); properties.put("utm_source","euromsg"); properties.put("utm_medium","push"); Visilabs.CallAPI().sendCampaignParameters(properties, getActivity());
App Tracker
App tracker özelliğini kullanmak için uygulamanızın herhangi bir yerinden ve herhangi bir zaman aralığıyla (örneğin launcher activity içerisinden haftada bir) aşağıdaki metotu çağırmanız yeterlidir.
Visilabs.CallAPI().sendTheListOfAppsInstalled();
NOT: Visilabs.CallAPI() dan bir Visilabs Instance'ı elde edebilmek için öncesinde Visilabs.CreateAPI() metoduyla Visilabs Instance'ının yaratılmış olması gerekir. Yukardaki metotu çağırırken buna dikkat ediniz.
Android, cihazda yüklü uygulamaların listesine erişmek için 2 seçenek sunmaktadır:
1-) Yüklü olup olmadığı bilgisi alınmak istenilen uygulamalar paket isimleriyle aşağıdaki gibi
AndroidManifest.xml dosyasına girilebilir.
<manifest package="com.example.myApp"> <queries> <package android:name="com.example.app1" /> <package android:name="com.example.app2" /> </queries> ... </manifest>
2-) Tüm yüklü uygulamaların listesini alabilmek için aşağıdaki izin AndroidManifest.xml
dosyasına girilmek zorunda.
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />
yöntemde Google Play Store için bu izne neden ihtiyaç duyulduğunun açıklanması beklenebilir.
https://developer.android.com/training/basics/intents/package-visibility
yöntem herhangi bir izin gerektirmez. Bu yukarda belirtilen 2 yöntemden birisi uygulandıktan sonra Visilabs.CallAPI().sendTheListOfAppsInstalled() metotunun çağırılması yeterlidir
Lokasyon Durum Bilgisini Yollama
Kullanıcılarınızın lokasyon izin durumlarını aşağıdaki gibi sunucuya gönderebilir ve bu bilgiyi daha sonra panelde kullanabilirsiniz.
Visilabs.CallAPI().sendLocationPermission();
Bu bilgi OM.locpermit parametresiyle beraber gönderilir ve aşağıdaki 3 değerden birini alabilir:
"always" : Lokasyon izni uygulama açıkken ve kapalıyken edinilmiş durumda.
"appopen" : Lokasyon izni yalnızca uygulama açıkken edinilmiş durumda.
"none" : Lokasyon izni edinilmemiş durumda.
Push Mesajı Token Kaydetme
Visilabs'ın kullanıcılara push mesajları göndermek için token alması gerekiyor. Firebase/Huawei tarafından oluşturulan belirteç değeri, OM.sys.TokenID anahtarının değeri olacaktır. OM.sys.AppID'nin değeri RMC yönetim paneli tarafından elde edilebilir. https://intelligence.relateddigital.com/a02/index#/Push/AppList bağlantısını takip edin ve ilgili push uygulamasını seçin. Uygulama App Alias değeri OM.sys.AppID'ye denk gelir. Sorun yaşarsanız lütfen RMC destek ekibiyle iletişime geçin.
Aşağıdaki parametreleri yukarıda verilen eventlerin içinde gönderebilirsiniz. Birer örnekleri Oturum Açma ve Kaydolma adımlarında gösterilmiştir.
parameters.put("OM.sys.TokenID", token); parameters.put("OM.sys.AppID", AppAlias); //RMC Panelden Alınacak