Skip to main content

Add a placement

Before you begin

Ensure that the Rokt iOS SDK has already been integrated into your application following the steps listed here.

Overlay placements

Execute the Rokt iOS SDK in your desired ViewController and add all appropriate customer attributes. The example code below uses ViewDidLoad to display a Rokt overlay placement.

The SDK provides optional callback events for when the view loads and unloads.

import Rokt_Widget

class OrderConfirmationViewController: UIViewController {

// call this function when the placement needs to be shown
func showWidget() {
let attributes = ["email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"]

Rokt.execute(viewName: "RoktExperience", attributes: attributes, onLoad: {
// Optional callback for when the Rokt placement loads
}, onUnLoad: {
// Optional callback for when the Rokt placement unloads
}, onShouldShowLoadingIndicator: {
// Optional callback to show a loading indicator
}, onShouldHideLoadingIndicator: {
// Optional callback to hide a loading indicator
})
}
}

Embedded placements

Modify your Storyboard

If you are using SwiftUI, please see the instructions in the SwiftUI table below. If you are not using SwiftUI, please use the following instructions.

In your Storyboard, add a view and put it in your ViewController:

ViewController

On the custom class, set RoktEmbeddedView as the view's class. Then define top, leading, and trailing constraints to match the place that the embedded placement will be shown. For height, we recommend adding a height constraint of zero.

RoktEmbeddedView can only modify the its own height according to the content of the placement. There is a callback in the execute method to notify when the height has changed and return the new height.

The image below illustrates the easiest way to define RoktEmbeddedView using auto layout.

  1. Place RoktEmbeddedView as the Class of view and Rokt_Widget as Module.

  2. Define the top constraints.

  3. Define the leading constraints.

  4. Define the trailing constraints.

  5. Choose height and width constraints.

  6. Set the height constraint.

  7. Add constraints to view.

RoktEmbeddedView

note

The RoktEmbeddedView can also be created in code and included in the layout dynamically.

Execute the Rokt SDK

Execute the Rokt SDK for iOS in your desired ViewController and add all appropriate customer attributes. The example code below uses ViewDidLoad to launch the placement.

The SDK provides optional callback events for when the view loads and unloads.

import Rokt_Widget
class OrderConfirmationViewController: UIViewController {

// linked to RoktEmbeddedView created in step 5 or it could be created programmatically
@IBOutlet weak var roktEmbeddedView: RoktEmbeddedView!

...

// call this function when placement needs to be shown
func showWidget() {
let attributes = ["email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"]

let placements: [String : RoktEmbeddedView] = ["RoktEmbedded1": roktEmbeddedView]

Rokt.execute(viewName: "RoktEmbeddedExperience", attributes: attributes, placements: placements, onLoad: {
// Optional callback for when the Rokt placement loads
}, onUnLoad: {
// Optional callback for when the Rokt placement unloads
}, onShouldShowLoadingIndicator: {
// Optional callback to show a loading indicator
}, onShouldHideLoadingIndicator: {
// Optional callback to hide a loading indicator
}, onEmbeddedSizeChange: { selectedPlacement, widgetHeight in
// Optional callback to get selectedPlacement and height required by the placement every time the height of the placement changes
})
}
}
note

To update the view name RoktExperience or placement name RoktEmbedded1 with a different value, contact your Rokt account manager to ensure Rokt placements are configured consistently.