SDK Integration | Appodeal Intelligent Ad Mediation

App key

Link your Admob account

Appodeal yields optimal results in cooperation with Admob. To continue, you need to link your Admob account.

If you don't have Admob account, please sign up on

To link your Admob account to Appodeal, use the Chrome extension:


The extension source code is available at

The extension will make two changes in your Admob account. First, it will allow Appodeal to access your Admob reports over API, and second, it will create new ad units on Admob and submit them to Appodeal.


Get Started

This plugin contains Appodeal iOS SDK 2.4.1 and Appodeal Android SDK 2.4.2 with major native ads improvements, segment v2 support, GDPR compliance and Parallel Bidding support.

The Corona Appodeal Plugin currently supports Android and iOS apps.

The detailed process of the plugin implementation is provided by the official documentation of Corona Labs. For your convenience, it is also placed down below. 

General Data Protection Regulation (GDPR) compliance

Publishers need to update their apps to collect user consent prior to initializing our SDK (Read our guide on collecting consent here). Publisher need to pass boolean consent flag(with 'false' meaning that user declined to give consent) to appodeal.init() method in our SDK.

Integrate Plugin

Basic integration 

To use this beta plugin add an entry into the plugins table of build.settings. When added, the build server will integrate the plugin during the build phase.

Make sure to include Base block for a plugin to work correctly. Then you can just comment out unnecessary ad types blocks, so that unneeded adapters are not downloaded and linked to your project.

If for some reason you don't want to show ads from specific ad provider (for the sake of example, let it be Flurry), you can comment or remove it, like this:

For Android-based projects

For Android, the following permissions/features are automatically added when using this plugin:

  • "android.permission.INTERNET"
  • "android.permission.ACCESS_NETWORK_STATE"
  • "android.permission.WRITE_EXTERNAL_STORAGE"

In addition, if you wish to receive targeted ads in your app and increase your chances for higher revenue, you can include any or all of the following permissions:

  • "android.permission.GET_ACCOUNTS"
  • "android.permission.ACCESS_COARSE_LOCATION"
  • "android.permission.ACCESS_FINE_LOCATION"

For iOS-based projects

If building for iOS, you must bypass App Transport Security (ATS) by adding the following to the plist table of build.settings. For more information on ATS, please see the Managing App Transport Security guide.

Initialize Plugin

Before starting to load ads, you need to initialize the Corona Appodeal plugin, as follows:

Params in the code above is a table with the following Appodeal initialization values:

appKey - string param. Your Appodeal app key. You can find this ID in the section Apps of Appodeal Dashboard.

hasUserConsent - boolean param. Pass true if user gave consent for ad personalization and false otherwise.

testMode - boolean param. In the test mode, only test ads will be shown with the 100% fill rate. Your debug data will be written to Logcat. Its value is set to false by default. To enable test mode, put the value true.

autoCacheAds - boolean param. By default, its value is set to true, which means that Appodeal automatically caches ads in the background. Set this value to false to turn it off. If you turn automatic caching off, you must use the appodeal.load() method to manually load ads.

smartBanners - boolean param. Smart banners will automatically adjust their width and height to the device. By default, smart banners are enabled. Set this value to false to disable them.

bannerAnimation - boolean param. Set to true to animate banner transitions (cross-fade when switching banners).

customRules - Table param. Set custom rules to be used with placements (see section Segments and Placements below). This is a table with key-value pairs of data. You can choose key names freely as there are no pre-defined key names. Valid value types are strings, booleans, or numbers.

supportedAdTypes - array. Limits the ad formats you want Appodeal to serve. The Corona Appodeal plugin supports the following ad formats:

  • Static interstitials (“interstital”): full-screen ads, that contain a static image.
  • Video Interstitials (“video”): full-screen ads, that contain a skippable video.
  • Banner (“banner”): rectangular ads that occupy a spot within an app's layout.
  • Rewarded video (“rewardedVideo”): non-skippable video ads that users may choose to watch to get a reward.

By default, all of the supported ad formats will be served. If you want to use only the specific ad formats, put their values after the supportedAdTypes param.


Manage Ads

Show ads

Use this method before the plugin initialization:

Available params:

  • yAlign - String. Vertical alignment of the banner. Valid options: top and bottom.
  • placement - String. The placement you want the ad to be associated with.


Hide ads

Use this method after the plugin initialization:

It will hide a currently displayed banner ad. Does not apply to interstitial or rewarded video ads.


Load ads

By default, Appodeal automatically pre-loads ads in the background. Use this method only if you cache ads manually.

Check if ad was loaded

By default, Appodeal automatically pre-loads ads in the background. Use this method only if you cache ads manually.

Get reward data for a specific placement

To get reward data and notify your users of it before the rewarded video ad is shown, use this method. It returns key-value pairs with the currency type and amount of the reward.

Use callbacks

You can track different events in the ad’s lifecycle, e.g. when an ad was clicked on or closed. To implement them, use the following methods within Ad Listener function: - Returns key-value pairs relating to rewarded video events, e.g. after a user has completed watching a rewarded video.

event.phase - String. Possible values:

  • "loaded" — Indicates that an ad loaded successfully.
  • "displayed" — Indicates that an ad displayed successfully.
  • "clicked" — Indicates that an ad was clicked/tapped. Please note that this event is not available for video interstitials or rewarded video ads.
  • "closed" — Indicates that an ad was closed. Applies only to static interstitial and video ads.
  • "hidden" — Indicates that a banner ad was hidden.
  • "failed" — Indicates that an ad failed to load.
  • "playbackBegan" — Indicates that a video ad playback has begun.
  • "playbackEnded" — Indicates that a video ad playback has ended.
  • "dataReceived" — Indicates that event data has been received.

event.type - The ad format that caused the event. If event.phase is "failed", indicates the ad format that failed to load.

Transfer User Data

Our SDK provides the transfer of user data for better ad targeting and higher eCPM by the following method:

Available options:

  • age (optional) - Number. The user's age.
  • gender (optional) - String. The user's gender. Valid values include "male", "female", and "other".
  • userId (optional) - String. A unique ID to identify a user.


Segments and Placements


Segments are used to track statistics for various user categories and to manage ads for these categories. A segment is a fraction of audience unified by filters: e.g. by gender, age or any other parameter known to the app and directed to Appodeal SDK.

You can read more in our Knowledge base.

Once user segments have been created, they can then be analyzed and used to configure ads.

If you have no segments all users will be matched to "default" segment

If you have multiple segments, their order is important. Only the first segment in which filters are matched to the user will apply. All of the rest will be ignored.

Manual Filters allows to groups users by any available characteristics. E.g. you know the sources that directed users to you and you want to track the statistics for such users — group them into a segment.

To create such a segment you have to give our SDK the name or the criterion and an actual value for it. Value can be a table with boolean, numeric or string.

Bought Inapps allows to group users by the fact of purchasing in-apps. This will help you adjust the ads for such users or simply turn it off, if needed.

To make this setting work correctly, please submit the purchase info via Appodeal SDK.


Placements allow you to separate ads impressions by places where it was shown.

You can read more in our Knowledge base

To show an ad with placement, you have to call show method like this:

To check if ad can be shown for the specific placement use:

You can use "default" placement or create new in application settings.

If you have no placement, or call with placement that do not exist or without placement in your segment, the impression will be tagged with "default" placement and its settings will be applied.

It's Done

You are ready to use Appodeal. If you have any questions, check out our FAQ or contact the support team.

Third-party SDKs

NetworkAndroid SDK versioniOS SDK version
Amazon Ads5.
Facebook Audience Network4.
Unity Ads2.
Yandex Mobile Ads2.622.7.2