Mimeda bidding platformu için geliştirilmiş, event ve performance tracking özellikleri sunan Android kütüphanesi 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 işlemlerin çok daha kolay ve hızlı yapılmasına olanak sağlamasıdır.
Android Versiyonu: API 24 (Android 7.0) ve üzeri
Kotlin: 1.9.0 ve üzeri
Java: 11 ve üzeri
İzinler: android.permission.INTERNET
Maven Central: tr.com.mimeda:bidding-mobile-android-sdk
dependencies {
implementation("tr.com.mimeda:bidding-mobile-android-sdk:x.x.x")
}
dependencies {
implementation 'tr.com.mimeda:bidding-mobile-android-sdk:x.x.x'
}
<uses-permission android:name="android.permission.INTERNET"/>
Tüm ayarlar ve kurulumlar tamamlandıktan sonra, uygulamanızın ilk çalıştırılması anında MimedaSDK.initialize metodu kullanılarak SDK'nin çalıştırılması sağlanmalıdır. Bu metoda sağlanması gereken bazı bilgiler bulunmaktadır. Bu bilgiler Mimeda Yayıncı İlişkileri ekibi tarafından size iletilecektir.
Mlink SDK’nin Initiliaze metodunu kullanmak için aşağıda belirtilen şekilde Application class'ına örnekteki gibi kodları eklemeniz önerilir.
import android.app.Application
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.Environment
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
MimedaSDK.initialize(
context = this,
apiKey = "YOUR_API_KEY",
environment = Environment.PRODUCTION
// errorCallback = ... (optional)
)
}
}
| Parametre | Zorunlu | Açıklama |
|---|---|---|
apiKey
|
Evet | Mimeda tarafından sağlanan key'dir. |
environment
|
Hayır |
Uygulamanın çalıştığı ortamı belirleyen parametredir. Test ortamına erişim kısıtlı olduğundan kullanılamamaktadır. |
errorCallback
|
Hayır |
Network hatası / gönderim hatası gibi durumları yakalamak için initialize sırasında MimedaSDKErrorCallback tipinde bir obje tanımlayarak, hataları gözlemlemeyi kolaylaştıran parametredir. |
import com.mimeda.sdk.Environment
if (!MimedaSDK.isInitialized()) {
MimedaSDK.initialize(
context = context,
apiKey = "YOUR_API_KEY",
environment = Environment.PRODUCTION
)
}
setDebugLogging metodunu kullanarak geliştirme sırasında logları detaylı olarak görüntüleyebilirsiniz. Loglar [MIMEDA][INFO] ve [MIMEDA][ERROR] prefix'lerle atılır; Android Logcat içerisinde bu prefix ile filtreleme yapabilirsiniz.
import com.mimeda.sdk.MimedaSDK
MimedaSDK.setDebugLogging(true)
import android.util.Log
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.MimedaSDKErrorCallback
import com.mimeda.sdk.Environment
import com.mimeda.sdk.events.EventName
import com.mimeda.sdk.events.EventParameter
import com.mimeda.sdk.events.PerformanceEventType
MimedaSDK.initialize(
context = applicationContext,
apiKey = "YOUR_API_KEY",
environment = Environment.PRODUCTION,
errorCallback = object : MimedaSDKErrorCallback {
override fun onEventTrackingFailed(
eventName: EventName,
eventParameter: EventParameter,
error: Throwable
) {
Log.e("MimedaSDK", "Event tracking failed: $eventName/$eventParameter", error)
}
override fun onPerformanceEventTrackingFailed(
eventType: PerformanceEventType,
error: Throwable
) {
Log.e("MimedaSDK", "Performance event failed: $eventType", error)
}
}
)
Event tracking için MimedaSDK.trackEvent kullanılır. Eventler EventName + EventParameter ikilisiyle tanımlanır.
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.events.EventName
import com.mimeda.sdk.events.EventParameter
import com.mimeda.sdk.events.EventParams
MimedaSDK.trackEvent(
eventName = EventName.HOME,
eventParameter = EventParameter.VIEW,
params = EventParams()
)
Eventlerde kullanılan parametreler ve bu parametrelerin zorunluluk bilgileri değişiklik gösterebilir. İlgili bilgiler eventlerin açıklamalarında yer almaktadır.
| Parametre | Zorunlu | Açıklama |
|---|---|---|
userId
|
Hayır | Mobil uygulamaya login olmuş kullanıcının sizin sisteminizdeki Id bilgisidir. Eğer kullanıcı login olmuş ise tüm eventlerde user Id bilgisi gönderilmelidir. |
categoryId
|
Hayır | Kullanıcı eğer bir kategori listeleme sayfasını görüntülüyor ise, görüntülediği kategorinin Id bilgisidir. Sadece listing eventlerinde zorunlu olarak gönderilmelidir. |
keyword
|
Hayır | Kullanıcı eğer bir arama yaptıysa ve bunun sonucunu görüntülüyorsa, arama yaptığı kelimeyi gönderir. Sadece search eventlerinde zorunlu olarak gönderilmelidir. |
transactionId
|
Hayır | Kullanıcı bir alışverişi tamamladıysa, sizin sisteminizde tanımlı olan transaction Id bilgisidir. Sadece purchase eventinde zorunlu olarak gönderilmelidir. |
loyaltyCard
|
Hayır | Kullanıcı eğer bir loyalty card kullandıysa onun bilgileri gönderilir. Kullanıcı login olmuşsa ve loyalty card bilgisi varsa gönderilmelidir. |
productList
|
Hayır |
Kullanıcının etkileşime girdiği ürünlerin bilgilerini içeren listedir. Home/View eventi dışındaki tüm eventlerde zorunlu olarak gönderilmelidir. Her bir ürün için aşağıdaki bilgiler gönderilmelidir. sku:qty:prc;sku2:qty2:prc2;...;skun:qtyn;prcn formatında gönderilir.
|
totalRowCount
|
Hayır | Listeleme ekranlarında kullanıcılara gösterilen ürün sayısıdır. Sadece search ve listing eventlerinde zorunlu olarak gönderilmelidir. |
lineItemIds
|
Hayır | Event gönderildiğinde ekranda gözüken line item'ların Id'leri, aralarına virgül konularak (li1,li2,...,lin) gönderilir. |
app
|
Evet |
Eventin gönderildiği platformun adıdır.
|
Aşağıda Android uygulamanızda Mimeda SDK'yı nasıl kullanacağınıza dair tam bir kod örneği bulunmaktadır.
import android.app.Application
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.Environment
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// SDK'yı başlat
MimedaSDK.initialize(
context = this,
apiKey = "YOUR_API_KEY",
environment = Environment.PRODUCTION
)
// Debug loglama aktif et (opsiyonel)
MimedaSDK.setDebugLogging(true)
}
}
// MainActivity örneği
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.events.EventName
import com.mimeda.sdk.events.EventParameter
import com.mimeda.sdk.events.EventParams
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Ana sayfa görüntülendiğinde event gönder
MimedaSDK.trackEvent(
eventName = EventName.HOME,
eventParameter = EventParameter.VIEW,
params = EventParams(
userId = 123,
loyaltyCard = "111222333444",
app = "sanalmarket"
)
)
}
fun addProductToCart(productSku: String, quantity: Int, price: Double) {
// Ürün sepete eklendiğinde event gönder
val productList = "$productSku:$quantity:$price"
MimedaSDK.trackEvent(
eventName = EventName.HOME,
eventParameter = EventParameter.ADD_TO_CART,
params = EventParams(
userId = 123,
loyaltyCard = "111222333444",
productList = productList,
app = "sanalmarket"
)
)
}
}
// ProductDetailActivity örneği
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mimeda.sdk.MimedaSDK
import com.mimeda.sdk.events.EventName
import com.mimeda.sdk.events.EventParameter
import com.mimeda.sdk.events.EventParams
class ProductDetailActivity : AppCompatActivity() {
private var productSku: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_product_detail)
productSku = intent.getStringExtra("product_sku")
productSku?.let { sku ->
// Ürün detay sayfası görüntülendiğinde event gönder
MimedaSDK.trackEvent(
eventName = EventName.PDP,
eventParameter = EventParameter.VIEW,
params = EventParams(
userId = 123,
loyaltyCard = "111222333444",
productList = "$sku:1:99.99",
app = "sanalmarket"
)
)
}
}
fun purchaseCompleted(transactionId: String, products: List>) {
// Alışveriş tamamlandığında event gönder
val productList = products.joinToString(";") { "${it.first}:${it.second}:${it.third}" }
MimedaSDK.trackEvent(
eventName = EventName.PURCHASE,
eventParameter = EventParameter.SUCCESS,
params = EventParams(
userId = 123,
loyaltyCard = "111222333444",
productList = productList,
transactionId = transactionId,
app = "sanalmarket"
)
)
}
}
Mimeda'nın yayıncıları için geliştirdiği bir Sponsorlu Ürün reklam modelinin Frontend tarafında iki farklı entegrasyon adımı bulunmaktadır. Gönderilebilecek parametreler ve açıklamaları aşağıda tanımlanmıştır.
| Parametre | Zorunlu | Açıklama |
|---|---|---|
userId
|
Hayır | Bu değer, mobil uygulamaya login olmuş kullanıcının sizin sisteminizdeki Id bilgisidir. Eğer kullanıcı login olmuş ise tüm eventlerde user Id bilgisi gönderilmelidir. |
loyaltyCard
|
Hayır | Kullanıcı eğer bir loyalty card kullandıysa onun bilgisi gönderilir. Login olmuş kullanıcı için varsa gönderilmelidir. |
lineItemId
|
Evet | İlgili slota ait sponsorlu ürün sorgusunun cevabında bulunan line item Id'sidir. |
creativeId
|
Evet | İlgili slota ait sponsorlu ürün sorgusunun cevabında bulunan kreatif Id'sidir. |
adUnit
|
Evet | Sponsorlu ürünün bulunduğu ad unit bilgisidir. |
productSku
|
Evet | Tıklanan veya görüntülenen ürünün SKU numarasıdır. |
payload
|
Evet | İlgili slota ait sponsorlu ürün sorgusunun cevabında bulunan payload değeridir. |
keyword
|
Evet | Kullanıcı tarafından search edilen değerdir. |
app
|
Evet |
Eventin gönderildiği platformun adıdır.
|
Impression eventleri, sponsorlu ürünün görüntülendiği bilgisini Mimeda'ya bildirmek amacıyla gönderilir.
MimedaSDK.trackPerformanceImpression(
params = PerformanceEventParams(
lineItemId = "line123",
creativeId = "creative456",
adUnit = "banner_top",
productSku = "SKU789",
payload = "custom_data",
keyword = "electronics",
userId = "user123",
loyaltyCard = "111222333444",
app = "sanalmarket"
)
)
Click eventleri ise, sponsorlu ürüne tıklandığı bilgisini Mimeda'ya bildirmek amacıyla gönderilir.
MimedaSDK.trackPerformanceClick(
params = PerformanceEventParams(
lineItemId = "line123",
creativeId = "creative456",
adUnit = "banner_top",
productSku = "SKU789",
payload = "custom_data",
keyword = "electronics",
userId = "user123",
loyaltyCard = "111222333444",
app = "sanalmarket"
)
)