...
The existence of a relevant in-app message for an event controlled by after each customEvent
call. You can create and customize your in-app messages on https://intelligence.relateddigital.com/#Target/TargetingAction/TAList page of RMC administration panel.
There are 7 9 types of in-app messages:
Pop-up - Image, Header, Text & Button | Mini - |
Icon & |
Text | Full Screen-image | |
Full Screen-image&button | Pop-up - Image, Header, Text & Button | Pop-up-Survey |
Pop-up - NPS with Text & Button | Native Alert & Action Sheet | NPS with Number |
NPS & Second Popup | Video In-App | |
If you want to manage the links you add for in-app messages yourself, you can follow the step below.
First you have to call the delegate method
Code Block | ||
---|---|---|
| ||
Visilabs.callAPI().inappButtonDelegate = self |
Then you have to add the extension and you can delete the print codes and write your own codes.
Code Block | ||
---|---|---|
| ||
extension EventViewController: VisilabsInappButtonDelegate {
func didTapButton(_ notification: VisilabsInAppNotification) {
print("notification did tapped...")
print(notification)
}
} |
Favorite Attribute Actions
...
Code Block | ||
---|---|---|
| ||
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 } |
Story Actions
Story
...
Story actions allow you to add widgets similar to "Instagram Story" list view on your iOS devices. getStoryView
method returns an instance of VisilabsStoryHomeView
which is a subclass of UIView
.
...
Code Block | ||
---|---|---|
| ||
let storyView = Visilabs.callAPI().getStoryView(actionId: 67) view.addSubview(storyHomeView) |
Mail Subscription Form
After form is created at RMC panel, likewise in-app message, existence of mail subscription form is controlled by after each customEvent
call. It is shown as follows;
...
Spin to Win
After form is created at RMC panel, likewise in-app message, existence of spin to win is controlled by after each customEvent
call. It is shown as follows;
Spin to Win Full | Spin to Win Half |
---|---|
Scratch to Win
After form is created at RMC panel, likewise in-app message, existence of Scratch to Win is controlled by after each customEvent
call. It is shown as follows;
...
Product Stat Notifier
The Product Stat Notifier action that you define in the RMC Panel works in Product View, Add to Cart and Add/Remove Favorites events. When you send these events, you must make sure that the product id is sent.
...
Geofencing
To enable location services in your application first of all you need to add the following keys to your Info.plist
file.
...
Code Block | ||
---|---|---|
| ||
public class VisilabsRecommendationResponse { public var products: [VisilabsProduct] public var error: VisilabsError? public var widgetTitle: String = "" internal init(products: [VisilabsProduct], widgetTitle: String = "", error: VisilabsError? = nil) { self.products = products self.widgetTitle = widgetTitle self.error = error } } |
VisilabsProduct
class has the following properties:
Property | Type |
---|---|
code | String |
title | String |
img | String |
dest_url | String |
brand | String |
price | Double |
dprice | Double |
cur | String |
dcur | String |
freeshipping | Bool |
samedayshipping | Bool |
rating | Int |
comment | Int |
discount | Double |
attr1 | String |
attr2 | String |
attr3 | String |
attr4 | String |
attr5 | String |
If recommended products exist for given arguments in completion
method you need to handle the array of products.
Code Block | ||
---|---|---|
| ||
Visilabs.callAPI().recommend(zoneID: "6", productCode: "pc", filters: []){ response in
if let error = response.error {
print(error)
}else{
print("Recommended Products")
for product in response.products{
print("product code: \(product.code) title: \(product.title)")
}
}
}
|
You may also pass an array of filters to recommend
method. For example the following implementation returns only the products which contains laptop in the title.
Code Block | ||
---|---|---|
| ||
var filters = [VisilabsRecommendationFilter]() let filter = VisilabsRecommendationFilter(attribute: .titlePRODUCTNAME, filterType: .like, value: "laptop") filters.append(filter) Visilabs.callAPI().recommend(zoneID: "6", productCode: "pc", filters: filters){ response in if let error = response.error{ print(error) }else{ print("Widget Title: \(response.widgetTitle)") print("Recommended Products") for product in response.products{ print("product code: \(product.code) title: \(product.title)") } } } |
Report Recommendation Clicks
To report the clicks of widget recommendations you need to call the trackRecommendationClick
method with the qs
property of Product
object.
Code Block | ||
---|---|---|
| ||
Visilabs.callAPI().trackRecommendationClick(qs: product.qs) |