Menü
Logo

Mlink Yardım 1.3.32

Mlink iOS 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, iOS 15 ve üzeri versiyonlarını desteklemektedir. Bu nedenle, uygulamanızın iOS 15 ve üzeri versiyonlarını desteklemesi gerekmektedir.

Konfigürasyon

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.

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.

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.

* 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.


 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.

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

Örnek Event Gönderimi


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)

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.

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444"
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

MlinkEvents.Home.addToFavorites(with: 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.

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    categoryId : "123abc",
)

MlinkEvents.Listing.view(with: 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.

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    categoryId : "123abc",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    categoryId : "123abc",
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

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

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    keyword : "süt",
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    keyword : "süt",
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

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

let payload: MlinkEventPayload = MlinkEventPayload(
    userId : 123,
    transactionId : "123abc",
    loyaltyCard : "111222333444",
    products : [
        MlinkEventProduct(barcode : 869111111111111, quantity : 2, price : 76.45)
    ]
)

MlinkEvents.Purchase.success(with: payload)

Tam Kod Örneği


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()
}

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.


let payload: MlinkAdPayload = MlinkAdPayload(
    lineItemId: 123456
    creativeId: 987654
    productSku: "11010239"
    adUnit: "slot-1"
    keyword: "sütlü çikolata"
    payload: "encrypted-data"
};

MlinkAds.impression(with: 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.


let payload: MlinkAdPayload = MlinkAdPayload(
    lineItemId: 123456,
    creativeId: 987654,
    productSku: "11010239",
    adUnit: "slot-1",
    keyword: "sütlü çikolata",
    payload: "encrypted-data"
};

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