Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There are 9 types of in-app messages:

Pop-up - Image, Header, Text & Button

Mini - Icon & Text

Full Screen-image

Image Modified

Image Modified

Image Modified

Full Screen-image&button

Pop-up - Image, Header, Text & Button

Pop-up-Survey

Image Modified

Image Modified

Image Modified

Pop-up - NPS with Text & Button

Native Alert & Action Sheet

NPS with Number

Image Modified

Image Modified

Image Modified

NPS & Second Popup

Video In-App

Image Added

Image Added

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
languageswift
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
languageswift
extension EventViewController: VisilabsInappButtonDelegate {
    func didTapButton(_ notification: VisilabsInAppNotification) {
        print("notification did tapped...")
        print(notification)
    }
}

Favorite Attribute Actions

...

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

Image AddedImage Added

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
languageswift
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
languageswift
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
languageswift
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
languageswift
Visilabs.callAPI().trackRecommendationClick(qs: product.qs)