Menü
Logo

Mlink Yardım 1.3.32

Mlink Android SDK

Mimeda tarafından geliştirilen SDK ile mobil uygulamalarınızdaki verileri toplayabilir ve analiz edebilirsiniz. Bu sayede, kullanıcıların uygulamanızdaki etkileşimlerini ölçebilir ve reklam kampanyalarınızı optimize edebilirsiniz.

SDK kullanılmasının bir başka avantajı ise reklam alanlarının entegrasyonu için gereken tüm işlemleri çok daha rahat yapılmasını sağlamasıdır.

Geliştirilen SDK iOS ve Android platformu için native ortamda geliştirilmiştir. Uygulamarınızı native ortamda geliştirdiyseniz direkt olarak entegre edebilirsiniz. Şu an için Flutter, React Native gibi cross platform uygulamalar için SDK geliştirme çalışmalarımız devam etmektedir.

Ön Gereksinimler

Mlink SDK, Android API seviyesi 21 (Lollipop) veya üzerini destekler.

Konfigürasyon

1. SDK’nın kurulum işlemleri JitPack ile yapılır. JitPack dependency'sini eklemek için settings.gradle.kts dosyasına aşağıdaki kodu ekleyin.


dependencyResolutionManagement {
    repositories {
        maven { setUrl("https://jitpack.io") }
    }
}

2. Ardından SDK’nın kurulumu için build.gradle.kts dosyasındaki dependencies kısmına aşağıdaki kodu ekleyin.


dependencies {
    implementation("com.github.AvvaMobile:Mlink.MobileSDK.Android:1.1.1")
}

ProGuard Kullanımı

Eğer uygulamanızda ProGuard kullanıyorsanız, SDK tanımları yapıldıktan sonra, ProGuard'ın sınıfları kaldırmasını önlemek için proguard-rules.pro dosyanıza aşağıdaki kuralları eklemelisiniz.


-keep class com.mimeda.mlink.data** { *; }

SDK'nin Başlatılması

Tüm ayarlar ve kurulumlar tamamlandıktan sonra, uygulamanızın ilk çalıştırılması anında Mlink.initialize metodu kullanılarak SDK’nın çalıştırılması sağlanmalıdır. Bu metodun içerisinde gönderilmesi zorunlu bazı bilgiler bulunmaktadır. Bu bilgiler Mimeda Yayıncı İlişkileri ekibi tarafından size iletilecektir.

Mlink SDK’nın Initiliaze metodunu kullanmak için aşağıda belirtilen şekilde Application sınıfına örnekteki gibi kodları ekleyiniz.


import android.app.Application

class MainApp : Application() {
   override fun onCreate() {
       super.onCreate()
       Mlink.initialize(
           context = this,
           app = "migros-sanalmarket",
           isLogEnabled = true,
       )
   }
}
Parametre Açıklama
app * Uygulamanızı belirten parametredir.
isLogEnabled

Geliştirme aşamasında, çalışmalarınızın doğruluğundan emin olabilmeniz için Mlink SDK içerisinde loglama yapısı bulunmaktadır. Bu değer varsayılan olarak false olarak ayarlanmıştır. Eğer true olarak ayarlanırsa, çalışmanız esnasında her bir Event gönderimi yaptığınızda Logcat içerisinden logları görüntüleyebilirsiniz.

Uygulamanızı canlı yayına çıkarırken bu alanı false olarak göndermeniz önerilir.

* Zorunlu alanlar

Örnek Log Çıktısı Görüntüsü

Eğer geliştirme anında Log özelliği aktif edilirse aşağıdaki gibi bir log çıktısı alırsınız.

Android SDK Örnek Log Görüntüsü

Event Gönderimi

Event nedir?

Kullanıcılarınızın mobil uygulamanızı kullanırken analitik verisi oluşturacak şekilde yaptığı davranışlardır. Örneğin bir kullanıcının uygulamanın ana sayfasındaki bir ürünü sepete eklemesi veya bir satış işlemini tamamlaması olarak örneklenebilir.

Event gönderim metodlarının tamamı parametre olarak bir MlinkEventPayload nesnesi beklemektedir. Bu nesne genel olarak kullanıcının kendisi ve ilgi gösterdiği ürünlerin bilgilerini parametre alır. Ek olarak bu kullanıcının mobil uygulamanızda gördüğü reklamları opsiyonel olarak göndermeniz, uygulamanızda görüntülenen reklamlar ile satışların ilişkisinin sağlayacak ve reklam verimliliği ile kazançlarınızı arttıracaktır.

Aşağıda bir MlinkEventPayload nesnesinin nasıl yaratıldığını ve bilgilerin doldurulmasını gösteren örnek kod bloğunu bulabilirsiniz.


val payload = MlinkEventPayload(
    userId = 123,
    categoryId = "123abc",
    keyword = "süt",
    transactionId = 1234567890,
    totalRowCount = 463,
    loyaltyCard = "111222333444"
    products = listOf(
       MlinkEventProduct(
           barcode = 869111111111111,
           quantity = 2,
           price = 76.45,
       )
   )
)

* Tüm parametreler tüm eventlerde zorunlu değildir. Her bir event için kullanılan parametreler değişiklik gösterebilir. En doğru bilgi için ilgili eventin dökümantasyonunu inceleyebilirsiniz.

Parametre Açıklama
userId Mobil uygulamaya login olmuş kullanıcının sizin sisteminizdeki ID bilgisi.
cateogryId Kullanıcı eğer bir kategori listeleme sayfasını görüntülüyor ise, görüntülediği kategorinin ID bilgisi.
keyword Kullanıcı eğer bir arama yaptıysa ve bunun sonucunu görüntülüyorsa, arama yaptığı kelimeyi gönderir.
transactionId Kullanıcı bir alışverişi tamamladıysa, sizin sisteminizde tanımlı olan transaction ID bilgisi.
loyaltyCard Kullanıcı eğer bir loyalty Card kullandıysa onun bilgileri gönderilir.
products

Kullanıcının ilgi gösterdiği ürünlerin bilgilerini içeren bir array. Her bir ürün için aşağıdaki bilgileri gönderebilirsiniz.

  • barcode: Ürünün barkod numarası
  • quantity: Ürünün adedi
  • price: Ürünün fiyatı

Örnek Event Gönderimi

MlinkEvents fonksiyonları Suspend fonksiyonlardır. Bu fonksiyonları bir Coroutine Scope içerisinde çağırmalısınız.

val payload = MlinkEventPayload(
    userId = 123,
    categoryId = "123abc",
    keyword = "süt",
    transactionId = 1234567890,
    totalRowCount = 463,
    loyaltyCard = "321312",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45),
        MlinkEventProduct(barcode = 869222222222222, quantity = 1, price = 99.00)
    )
)
MlinkEvents.Cart.view(payload)

Event Listesi

Aşağıdaki listede her bir event için ayrı ayrı olacak şekilde bilgileri bulabilirsiniz. Her bir eventin ne zaman tetiklenmesi gerekiği ve hangi bilgilerin gönderilmesi gerektiği belirtilmiştir.
Kullanıcı ana sayfayı görüntülendiğinde tetiklenir.

val payload = MlinkEventPayload(
   userId = 123,
   loyaltyCard = "111222333444"
)

MlinkEvents.Home.view(payload)
Kullanıcı ana sayfayı görüntüledikten sonra bir ürünü sepete eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Home.addToCart(payload)
Kullanıcı ana sayfayı görüntüledikten sonra bir ürünü favorilere eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Home.addToFavorites(payload)
Kullanıcı bir listeleme işlemi yaptığında tetiklenir. Örneğin ana menüden bir kategoriye tıkladığında veya özel bir alışveriş listesine tıkladığında karşısına çıkan ürün listesi olduğunda tetiklenir. Arama işlemleri bu olayın dışındadır.

val payload = MlinkEventPayload(
    userId = 123,
    categoryId = "123abc",
    loyaltyCard = "111222333444"
)

MlinkEvents.Listing.view(payload)
Kullanıcı bir listeleme işlemi yaptığında tetiklenir. Örneğin ana menüden bir kategoriye tıkladığında veya özel bir alışveriş listesine tıkladığında karşısına çıkan ürün listesi olduğunda tetiklenir. Arama işlemleri bu olayın dışındadır.

val payload = MlinkEventPayload(
    userId = 123,
    categoryId = "123abc",
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Listing.addToCart(payload)
Kullanıcı bir listeleme ekranında bir ürünü favorilere eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    categoryId = "123abc",
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Listing.addToFavorites(payload)
Kullanıcı bir arama yaptığında tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    keyword = "süt",
    loyaltyCard = "111222333444",
    totalRowCount = 463
)

MlinkEvents.Search.view(payload)
Kullanıcı bir arama yaptıktan sonra, karşısına çıkan listeden bir ürünü sepete eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    keyword = "süt",
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Search.addToCart(payload)
Kullanıcı bir arama yaptıktan sonra, karşısına çıkan listeden bir ürünü favorilere eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    keyword = "süt",
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Search.addToFavorites(payload)
Kullanıcı bir ürüne tıklayarak, detay sayfasında inceleme yaptığında tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.ProductDetails.view(payload)
Kullanıcı bir ürünü inceledikten sonra, detay sayfasında sepete eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.ProductDetails.addToCart(payload)
Kullanıcı bir ürünü inceledikten sonra, detay sayfasında favorilere eklediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.ProductDetails.addToFavorites(payload)
Kullanıcı sepeti görüntülediğinde tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Cart.view(payload)
Kullanıcı bir alışveriş işlemini tamamladığında tetiklenir.

val payload = MlinkEventPayload(
    userId = 123,
    loyaltyCard = "111222333444",
    products = listOf(
        MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45)
    )
)

MlinkEvents.Purchase.success(payload)

Tam Kod Örneği


import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.mimeda.sdk.MlinkEvents
import com.mimeda.sdk.data.MlinkEventProduct
import com.mimeda.sdk.data.Payload
import kotlinx.coroutines.launch
                        
class ProductListViewModel : ViewModel() {
    init {
        sendEvent()
    }
  
    private fun sendEvent() {
        viewModelScope.launch {
            val payload = MlinkEventPayload(
                userId = 123,
                categoryId = "123abc",
                keyword = "süt",
                transactionId = 1234567890,
                totalRowCount = 463,
                loyaltyCard = "111222333444",
                products = listOf(
                    MlinkEventProduct(barcode = 869111111111111, quantity = 2, price = 76.45),
                    MlinkEventProduct(barcode = 869222222222222, quantity = 1, price = 99.00)
                )
            )
            MlinkEvents.Cart.view(payload)
        }
    }
}

Sponsorlu Ürün Entegrasyonu

Mimeda'nın yayıncıları için geliştirdiği bir Sponsorlu Ürün reklam modelinin Frontend tarafında 2 farklı entegrasyon adımı bulunmaktadır.

Impression

Bunlardan ilki, reklamın görüntülendiği bilgisini yine Mimeda'ya bildirebilmek amacıyla bir fonksiyon çağırılmalıdır. Impression fonksiyonu reklamın sorgulanması sonrasında alınan cevabın (Response Model) hiç değiştirmeden parametre olarak verilmesini bekler.


val payload = MlinkEventPayload() 
    lineItemId = 123456
    creativeId = 987654
    productSku = "11010239"
    adUnit = "slot-1"
    keyword = "sütlü çikolata"
    payload = "encrypted-data"
)

MlinkAds.impression(adPayload)

Click

Bir diğeri ise, reklamın tıklandığı bilgisini yine Mimeda'ya bildirebilmek amacıyla bir fonksiyon çağırılmalıdır. Click fonksiyonu reklamın sorgulanması sonrasında alınan cevabın (Response Model) hiç değiştirmeden parametre olarak verilmesini bekler.


val payload = MlinkEventPayload() 
    lineItemId = 123456
    creativeId = 987654
    productSku = "11010239"
    adUnit = "slot-1"
    keyword = "sütlü çikolata"
    payload = "encrypted-data"
)

MlinkAds.click(adPayload)
Son Güncelleme: 31.01.2025