This page will show you how to integrate Leadbolt Video and Interstitial ads in your iOS app with Corona. Download the SDK and sample app. Make sure you can compile the sample app and see test ads.
You must have a Corona Enterprise account with the SDK installed and your device authorized to build Corona Apps.
- Before you begin
- Add Leadbolt SDK files
- Add the required frameworks
- Configure App Transport Security (ATS) Settings
- Add Leadbolt SDK Imports
- Initialize Leadbolt SDK
- To Cache and Show a non-Rewarded Ad
- To Cache and Show a Rewarded Ad
- Test your Integration
- Advanced Integration
- Checking Ad Availability
- Passing Additional Information
- Using Event Listeners
Before you begin
- Have you logged in to the Leadbolt Publisher Portal?
- Did you add an App in the portal?
- Ensure, you have downloaded the Leadbolt SDK and sample app from the link above
Add Leadbolt SDK files
- Copy the four downloaded files AppTracker.framework and libleadboltLibrary.a files into your xcode project.
Add the required frameworks
- Link the following frameworks in your Xcode Project. AdSupport.framework, AVFoundation.framework, CoreMedia.framework, CoreTelephony.framework, StoreKit.framework, SystemConfiguration.framework and libz.tbd
Configure App Transport Security (ATS) Settings
- To ensure all available Leadbolt ads display correctly on apps running on iOS 9/10, please include these ATS settings by adding the following lines of code to your Apps Info.plist file:
Add Leadbolt SDK Imports
- Add the following Leadbolt SDK import statement in your lua file.
Lua1local lb = require ("plugin.leadbolt");
Initialize Leadbolt SDK
- In your App’s code, add the following code to initialize the Leadbolt SDK.
You will need to replace "YOUR_APP_API_KEY" with the specific api key for your app (include the double quotes).
To Cache and Show a non-Rewarded Ad
- To cache a non-Rewarded Ad
- To show a non-Rewarded Ad
- Please ensure that in your code, you do not call loadModule directly after loadModuleToCache. It will cause the SDK to fail and not display an Ad all together.
- For Advanced SDK options, including use of Event Listeners, click here.
To Cache and Show a Rewarded Ad
- To cache a Rewarded Ad
- To show a Rewarded Ad
- Please ensure that in your code, you do not call loadModule directly after loadModuleToCache. It will cause SDK to fail and not display the Rewarded Ad at all.
- To reward user, refer to the Advanced Integration on more information about Event Listeners and Rewarding Users
Test your Integration
- Run your Project on an iOS device.
- Ensure, test ads are displayed when the “loadModule” call is made in your App.
- Once test ads are seen on your device, go to your Leadbolt Portal and set your App to “Live”
- Once approved, you should see live ads in your App.
Congratulations! You have successfully integrated the Leadbolt SDK in your App
- Video and Interstitial Ads may not be available at all times in all countries. It is always best to test with your App in Test Mode in the Publisher Portal as Test Ads are generally always available.
- You should check your Publisher Portal and ensure the relevant section is visible under your App. Use the “Add Section” button to add if not available.
- You should check the SDK logs located in Device Logs (under Xcode -> Devices) and look for “AppTracker”.
- Always test the sample app provided to confirm any integration issues are SDK based.
- This Plugin has been tested on Xcode 8.2.1 and iOS 10
Checking Ad Availability
Leadbolt SDK provides additional ability to the developers to check before hand if an Ad is available before displaying it to create a better user-experience in your App. To check if a Network or Direct Deal Ad is available please use the code below:
if lb.isAdReady("inapp") then
-- Ad is available to be displayed
-- Ad not ready to be displayed yet
To check if a Rewarded Ad is available to be displayed, please use the code below:
if lb.isAdReady("inapp") then
-- Rewarded Ad is available to be displayed
-- Rewarded Ad not ready to be displayed yet
Passing Additional Information
You can increase your App’s performance by optionally including the additional information below. This allows selected premium advertisers to display their Ads to your users. To pass this additional information, use the following methods BEFORE calling loadModuleToCache
-- Allowed values for Age range are: "13-17", "18-25", "26-35", "36-45", "46+"
-- Allowed values for Gender are: "Male", "Female"
Using Event Listeners
With Event listeners, you can closely follow the ad states throughout your App. Leadbolt SDK will trigger events at all important stages of the Ad life-cycle.
Add the following lines BEFORE calling startSession method:
-- Leadbolt listener
local function leadboltListener( event )
if (event.phase == "onModuleCached") then
-- Ad cached successfully
-- Add code if not auto-recaching for when loadModuleModuleToCache is successful
elseif (event.phase == "onModuleLoaded") then
-- Ad loaded successfully
-- Add code here to pause game and/or all media including audio
elseif (event.phase == "onModuleFailed") then
-- Ad failed to load
elseif (event.phase == "onModuleClicked") then
-- Ad clicked by user
elseif (event.phase == "onModuleClosed") then
-- Ad closed by user
-- Add code here to resume game and/or all media including audio
elseif (event.phase == "onReward") then
-- Reward Triggered
-- Initialize the Leadbolt Plugin
listener = leadboltListener,