...
Add the Initialization code for the SDK
Register all the app
UIViewControllers
to the SDKAdd the tagged Wrappers, and tagged Buttons using the
accessabilityLabel
Note the transition events
Add the testing Single Data
Test everything is working
Change everything to production code
Your app is now prepared for monetization with us.
...
The first recommended place to initialize the SDK is the UIApplicationDelegate.application(_:didFinishLaunchingWithOptions:)
method.
Code Block | ||||
---|---|---|---|---|
| ||||
import UIKit import R89SDK @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // This is for testing purposes, remove it on prod R89SDK.shared.setLogLevel(level: LogLevels.debug) // This is for testing purposes, remove it on prod R89SDK.shared.setDebug() addTestingSingleTagData() /* This is a later step */ R89SDK.shared.initialize( publisherId: "TestPublisherID", /* This is for testing purposes, change it on prod */ appId: "TestAppId", /* This is for testing purposes, change it on prod */ singleLine: true, publisherInitializationEvents: nil) return true } } |
...
Info |
---|
If the specified |
...
This example demonstrates the automatic display of an interstitial ad during the transition from one screen to another (from InitialScreenViewController
to NewsPostDetailScreenViewController
).
Primarily the transition needs to be configured via the dashboard, but for testing purposes, it could be configured locally by using SingleTagConfigBuilder.shared
instance in your code.
Code Block | ||
---|---|---|
| ||
import UIKit import R89SDK @main class AppDelegate: UIResponder, UIApplicationDelegate { ... func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... addTestingSingleTagData() /* This is a later step */ R89SDK.shared.initialize(...) return true } func addTestingSingleTagData(){ // Add a Screen that is a UIViewController, the screenName you can get it by logging this in you code -> // in viewDidLoad you can use self.name -> // on InitialScreenViewController -> InitialScreenViewController // on NewsPostDetailScreenViewController -> NewsPostDetailScreenViewController let screenBuilder = SingleTagConfigBuilder.shared .addAdScreenBuilder(isFragment:false,screenName: "InitialScreenViewController") /* trigger interstitial when we transition from "InitialScreenViewController" (ScreenBuilder.screenName) TO NewsPostDetailScreenViewController */ screenBuilder.addInterstitial(eventsToTrackTo: "NewsPostDetailScreenViewController", eventsToTrackButton: nil) ... } ... } |
Hence, the interstitial ad will be displayed whenever InitialScreenViewController
presents InfiniteScrollViewController
.
Code Block | ||||
---|---|---|---|---|
| ||||
import UIKit import R89SDK class InitialScreenViewController: UIViewController { ... override func viewDidLoad() { super.viewDidLoad() .. R89SDK.shared.registerLifecycle(uiViewController: self) // Do any additional setup after loading the view. } @IBAction func presentNewsPostDetailScreen(_ sender: UIButton) { // On this transition event, the interstitial ad will be displayed. present(NewsPostDetailScreenViewController(), animated: true) } ... } |
...
Primarily the button-press needs to be configured via the dashboard, but for testing purposes, it could be configured locally by using SingleTagConfigBuilder.shared
instance in your code.
Code Block | ||||
---|---|---|---|---|
| ||||
import UIKit import R89SDK @main class AppDelegate: UIResponder, UIApplicationDelegate { ... func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... addTestingSingleTagData() /* This is a later step */ R89SDK.shared.initialize(...) return true } func addTestingSingleTagData(){ let screenBuilder = SingleTagConfigBuilder.shared .addAdScreenBuilder(isFragment:false,screenName: "InitialScreenViewController") ... /* trigger an interstitial when a button with this tag is pressed in "InitialScreenViewControllerj" (ScreenBuilder.screenName) */ screenBuilder.addInterstitial(eventsToTrackTo: nil, eventsToTrackButton: "buttonplay_video_trailer_tag") } ... } |
According to the above configuration, the buttonplay_video_trailer_tag
must be specified inside the InitialScreenViewController
for the button via the accessibilityLabel
parameter.
...
Code Block | ||
---|---|---|
| ||
import UIKit import R89SDK class InitialScreenViewController: UIViewController { ... override func viewDidLoad() { super.viewDidLoad() isModalInPresentation = true R89SDK.shared.registerLifecycle(uiViewController: self) // Do any additional setup after loading the view. } // The button's press handler method @IBAction func showNewsDetailsplayVideoTrailer(_ sender: UIButton) { // This method will be called after the interstitial ad is closed. ... } ... } |
...