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.
Mlink SDK, iOS 15 ve üzeri versiyonlarını desteklemektedir. Bu nedenle, uygulamanızın iOS 15 ve üzeri versiyonlarını desteklemesi gerekmektedir.
Mlink iOS SDK Swift Package Manager'ı destekler. Aşağıdaki adımları kullanarak Swift paketini projenize ekleyebilirsiniz.
1. Xcode içinde Mlink iOS SDK Swift paketini yüklemek için File > Add Packages... yolunu izleyin.
2. Açılan pencerede Mlink iOS SDK için Swift Package GitHub deposunu arayın: https://github.com/AvvaMobile/Mlink.MobileSDK.IOS
3. Versiyon seçimi alanından her zaman en güncel Tag'ı seçebilirsiniz.
Swift Paketi ekleme hakkındaki daha fazla bilgiyi Apple dokümanlarında bulabilirsiniz.
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.
Bu işlemlerin AppDelegate içindeki didFinishLaunchingWithOptions metodunda yapılması tavsiye edilir.
import UIKit
import MlinkSDK
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Mlink.initiliaze(app: "migros-sanalmarket",isLogEnabled: true)
return 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.
let payload: MlinkEventPayload = MlinkEventPayload(
userId: 123,
categoryId : "123abc",
keyword : "süt",
transactionId : 1234567890,
loyaltyCard : "111222333444",
products: [
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.
|
let payload: MlinkEventPayload = MlinkEventPayload(
userId: 123,
categoryId : "123abc",
keyword : "süt",
transactionId : 1234567890,
totalRowCount : 463,
loyaltyCard : "111222333444",
products: [
MlinkEventProduct(barcode: 869111111111111, quantity: 2, price: 76.45),
MlinkEventProduct(barcode: 869222222222222, quantity: 1, price: 99.00)
]
)
MlinkEvents.Home.addToCart(with: payload)
import SwiftUI
import MlinkSDK
struct ContentView: View {
let payload: MlinkEventPayload = MlinkEventPayload(
userId: 123,
categoryId : "123abc",
keyword : "süt",
transactionId : 1234567890,
loyaltyCard : "111222333444",
products: [
MlinkEventProduct(barcode: 869111111111111, quantity: 2, price: 76.45),
MlinkEventProduct(barcode: 869222222222222, quantity: 1, price: 99.00)
]
)
var body: some View {
Button(action: {
MlinkEvents.Home.addToCart(with: payload)
}, label: {
ZStack {
Circle()
.frame(width: 200, height: 200)
Text("Event Gönder")
.foregroundStyle(Color.white)
.font(.largeTitle)
}
})
}
}
#Preview {
ContentView()
}
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.
let payload: MlinkAdPayload = MlinkAdPayload(
lineItemId: 123456
creativeId: 987654
productSku: "11010239"
adUnit: "slot-1"
keyword: "sütlü çikolata"
payload: "encrypted-data"
};
MlinkAds.impression(with: 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.
let payload: MlinkAdPayload = MlinkAdPayload(
lineItemId: 123456,
creativeId: 987654,
productSku: "11010239",
adUnit: "slot-1",
keyword: "sütlü çikolata",
payload: "encrypted-data"
};
MlinkAds.click(with: adPayload)