iOS Target Aksiyonları
In-App Message
In-App Messages, doğrudan mobil uygulamanızda etkin olduklarında kullanıcılarınıza gösterilen bildirimlerdir. In-App Message özelliğini etkinleştirmek için createAPI'yi çağırırken inAppNotificationsEnabled parametresinin değerini ayarlamanız gerekir.
import VisilabsIOS
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Visilabs.createAPI(organizationId: "YOUR_ORGANIZATION_ID", profileId: "YOUR_PROFILE_ID"
, dataSource: "YOUR_DATASOURCE", inAppNotificationsEnabled: true, channel: "IOS"
, requestTimeoutInSeconds: 30, geofenceEnabled: false, maxGeofenceCount: 20)
return true
} Her customEvent çağrısından sonra In-App Message olup olmadığı kontrol edilir. RMC yönetim panelinin https://intelligence.relateddigital.com/#Target/TargetingAction/TAList sayfasında In-App Message oluşturabilir ve özelleştirebilirsiniz.
12 farklı In-App Message tasarımı mevcut:
Pop-up - Görsel, Başlık, Yazı & Buton | Mini - İkon & Yazı | Tam Ekran Görsel |
|
| |
Tam Ekran Görsel ve Buton | Pop-up - Görsel, Başlık, Yazı ve Buton | Pop-up Anket |
|
|
|
Pop-up - Yazı ve Butonlu NPS | Native Alert & Action Sheet | 1-10 Puanlama NPS |
|
| |
Yıldızlı Anket & İkinci Popup | Yarım Ekran Görsel | Carousel |
|
|
|
Video In-App |
|
|
|
|
|
Eğer inappler için eklediğiniz linkleri kendiniz yönetmek isterseniz aşağıdaki adımı uygulayabilirsiniz.
Öncelikle delegate metodunu çağırmalısınız.
Visilabs.callAPI().inappButtonDelegate = self Ardından extension bloğunu ekleyip aşağıdaki kodu kendinize göre düzenleyebilirsiniz.
extension EventViewController: VisilabsInappButtonDelegate {
func didTapButton(_ notification: VisilabsInAppNotification) {
print("notification did tapped...")
print(notification)
}
}In-App Custom Font Kullanımı
Öncelikle In-App’te kullanmak istediğiniz fontu projenizin root dizinine atın.
Ardından root dizine attığınız fontu Info.plist’te uzantısı (.ttf veya .otf) ile beraber tanımlamanız gerekmektedir. Örn: Sydney.ttf
<key>UIAppFonts</key>
<array>
<string>FONT_NAME</string>
</array>
1-10 Puanlama NPS - Inline
1-10 Puanlama NPS - Inline özelliğini kullanmak için, [String: String] özelliğinde npsItemClicked yöntemini içeren bir delegate parametresi ve isteğe bağlı bir VisilabsNpsWithNumbersContainerView nesnesi alan completionHandler
getNpsWithNumbersView yöntemini çağırabilirsiniz.
delegate parametresi, buton tıklamalarını işlemek için kullanılır ve kullanıcı butona tıkladığında tetiklenen npsItemClicked adlı bir yöntem içerir.
completionHandler ise yalnızca belirli ölçütlerle eşleşen bir eylem varsa döndürülen isteğe bağlı olarak VisilabsNpsWithNumbersContainerView nesnesini içerir. Eşleşen bir eylem yoksa, completionHandler sıfır döner.
Visilabs.callAPI().getNpsWithNumbersView(properties: props, delegate: self){ npsView in
DispatchQueue.main.async {
if let npsView = npsView {
self.npsView = npsView
self.npsView = npsView
self.view.addSubview(npsView)
npsView.translatesAutoresizingMaskIntoConstraints = false
npsView.topAnchor.constraint(equalTo: self.npsWithNumbersButton.bottomAnchor, constant: -50).isActive = true
npsView.widthAnchor.constraint(equalTo: self.view.saferAreaLayoutGuide.widthAnchor).isActive = true
npsView.heightAnchor.constraint(equalToConstant: 550).isActive = true
} else {
print("There is no nps action matching your criteria.")
}
}
}extension NpsViewController: VisilabsNpsWithNumbersDelegate {
func npsItemClicked(npsLink: String?) {
print(npsLink)
}
}
Favori Özellikler Aksiyonu
RMC panelindeki https://intelligence.relateddigital.com/#Target/TargetingAction/TAList/ bölümünden tanımladığınız Favori Özellik Aksiyonu türündeki Target Aksiyonu favori özelliklerine aşağıdaki gibi mobil uygulama üzerinden erişebilirsiniz.
Visilabs.callAPI().getFavoriteAttributeActions { (response) in
if let error = response.error {
print(error)
} else {
if let favoriteBrands = response.favorites[.brand] {
for brand in favoriteBrands {
print(brand)
}
}
if let favoriteCategories = response.favorites[.category] {
for category in favoriteCategories {
print(category)
}
}
}
}Target Aksiyonun ID’sini belirterekte favori özellik aksiyonunun özelliklerine erişebilirsiniz.
Visilabs.callAPI().getFavoriteAttributeActions(actionId: 188) { (response) in
if let error = response.error {
print(error)
} else {
if let favoriteBrands = response.favorites[.brand] {
for brand in favoriteBrands {
print(brand)
}
}
if let favoriteCategories = response.favorites[.category] {
for category in favoriteCategories {
print(category)
}
}
}
}Favori Özellikler Aksiyonu enum olarak aşağıdaki değerleri döner.
public enum VisilabsFavoriteAttribute: String {
case ageGroup
case attr1
case attr2
case attr3
case attr4
case attr5
case attr6
case attr7
case attr8
case attr9
case attr10
case brand
case category
case color
case gender
case material
case title
}Mail Üyelik Formu
RMC panelden in-app message’da olduğu gibi mail üyelik formunu oluşturduktan sonra her customEvent çağırdığınız zaman mail üyelik formu olup olmadığı kontrol edilir ardından mail üyelik formu gösterilir.
Çarkıfelek
RMC panelden in-app message’da olduğu gibi çarkıfelek oluşturduktan sonra her customEvent çağırdığınız zaman çarkıfelek olup olmadığı kontrol edilir ardından çarkıfelek gösterilir.
Çarkıfelek Yarım Görünüm | Çarkıfelek Tam Görünüm |
|---|---|
|
|
Kazı Kazan
RMC panelden in-app message’da olduğu gibi kazı kazan oluşturduktan sonra her customEvent çağırdığınız zaman kazı kazan olup olmadığı kontrol edilir ardından kazı kazan gösterilir.
App Banner
App Banner aksiyonunu kullanmak için öncelikle uygulamanızda istediğiniz bir alanda UIView oluşturup eklemeniz gerekmektedir. Ardından getBannerView metodunu çağırarak bannerları bu UIView içerisinde gösterebilirsiniz. Aşağıda örnek olarak bir UIView oluşturma ve bu UIView içerisinde bannerları göstermeyi bulabilirsiniz.
let bannerView = UIView()
bannerView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(bannerView)
NSLayoutConstraint.activate([bannerView.topAnchor.constraint(equalTo: self.view.topAnchor,constant: 80),
bannerView.heightAnchor.constraint(equalToConstant: 80),
bannerView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
bannerView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor)])
bannerView.backgroundColor = .black
var props = [String:String]()
props["OM.inapptype"] = "banner_carousel"
Visilabs.getBannerView(properties: props) { banner in
if let banner = banner {
banner.delegate = self
banner.translatesAutoresizingMaskIntoConstraints = false
bannerView.addSubview(banner)
NSLayoutConstraint.activate([banner.topAnchor.constraint(equalTo: bannerView.topAnchor),
banner.bottomAnchor.constraint(equalTo: bannerView.bottomAnchor),
banner.leadingAnchor.constraint(equalTo: bannerView.leadingAnchor),
banner.trailingAnchor.constraint(equalTo: bannerView.trailingAnchor)])
}
}Dilerseniz properties parametresi ile ekstra query parametreleri gönderebilirsiniz. Eğer kullanmak istemezseniz properties parametresini properties: [String:String] olarak değiştirebilirsiniz.
Kullanıcılarınız bannera click işlemini gerçekleştirdiğinde deeplinklerin sizin tarafınızdan handle edilip yönlendirme yapılması gerekmektedir. Bunun için ilgili class’a BannerDelegate’i eklemelisiniz.
class ViewController: UIViewController, BannerDelegateArdından aşağıdaki fonksiyonu ekleyerek kendinize göre düzenleyebilirsiniz.
func bannerItemClickListener(url: String) {
print(url)
}Ürün Durum Bilgisi
RMC Panelde tanımladığınız Ürün Durum Bilgisi aksiyonu Ürün Görüntüleme, Sepete Ekleme ve Favoriye Ekleme/Çıkarma eventlerinde çalışmaktadır. Bu eventlerde ürün idnin gönderildiğinden emin olmalısınız.
Notification Bell
RMC panelden in-app message’da olduğu gibi Notification Bell oluşturduktan sonra her customEvent çağırdığınız zaman Notification Bell olup olmadığı kontrol edilir ardından gösterilir.
Notification Bell içerisindeki metinlerin tıklamalarında verdiğiniz linkleri yönetmek için delegate metodunu kullanmanız gerekmektedir.
Öncelikle delegate metodunu çağırmalısınız.
Visilabs.callAPI().notificationBellDelegate = selfArdından aşağıdaki kodu ekleyerek linke erişebilirsiniz.
extension ViewController: VisilabsNotificationBellDelegate {
func didTapNotificationBell(_ notification: NotificationBellModel) {
print("Notification Bell Tapped")
print(notification.iosLink ?? "")a
}