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.
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")
}
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** { *; }
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. |
Eğer geliştirme anında Log özelliği aktif edilirse aşağıdaki gibi bir log çıktısı alırsınız.
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.
|
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)
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)
}
}
}
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.
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)
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)