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ının bir ürün satın alması bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.tid"] = "Transaction ID" //İşlem ID'si parameters["OM.pp"] = "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 = "Product Purchase", properties = parameters )
Kategori Görüntüleme
Kullanıcının bir kategori sayfasını görüntülemesi bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.clist"] = "Category Code/Category ID" //Kategori Kodu/Kategori ID'si RelatedDigital.customEvent( context = context, pageName = "Category View", properties = parameters )
Arama
Kullanıcının uygulamanızda yaptığı arama bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.OSS"] = "Text Searched" //Aranan Metin parameters["OM.OSSR"] = "Number of Results" //Sonuç Sayısı RelatedDigital.customEvent( context = context, pageName = "Search", properties = parameters )
Banner Tıklaması
Kullanıcının uygulamanızdaki bir banner a tıklaması bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.OSB"] = "Banner Name/Banner Code" //Banner İsmi/Banner Kodu RelatedDigital.customEvent( context = context, pageName = "Banner Click", properties = parameters )
Favorilere Ekleme
Kullanıcının favorilerine ürün eklemesi bilgisini göndermek için aşağıdaki customEvent metodunu kullanabilirsiniz.
val parameters = HashMap<String, String>() parameters["OM.pf"] = "Product Code" //Ürün Kodu parameters["OM.pfu"] = "1" //Banner İsmi/Banner Kodu parameters["OM.pfr"] = "Product Price" //Ürün Fiyatı RelatedDigital.customEvent( context = context, pageName = "/om_evt.gif", properties = parameters )
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