appodeal.*

Type Library
Revision Release 2022.3683
Keywords ads, advertising, Appodeal
Platforms Android, iOS

Overview

The Appodeal plugin allows developers to monetize their mobile app with Appodeal banner, static interstitial, video interstitial, and rewarded video ads.

Important

Be warned that plugin builds for Amazon store are restricted at the moment. We are working on the appropriate SDK/plugin update and the ability to publish your apps, which includes Appodeal modular plugin, to Amazon store should become available as soon as possible.

Important

Appodeal contains various SDKs for the ad providers it mediates. This means that you can not use Appodeal in conjunction with AdColony, AppLovin, AdMob, Chartboost, Facebook Audience Network, Flurry Analytics, InMobi, Unity Ads, or Vungle.

Important

Beta version of Appodeal plugin is now available! Check latest note in Project Settings section to learn more.

Version info

Current plugin versions are:

  • Stable plugins is 2.11 for both Android and iOS. Beta plugin is not recommended to use and contains legacy version
Important

Check out new hasUserConsent init parameter to enable GDPR data collection restrictions.

Registration

Before you can use this plugin, you must register with Appodeal.

Syntax

local appodeal = require( "plugin.appodeal" )

Functions

Events

Project Settings

To use this plugin in modular mode, your plugins table of build.settings should look like this:

settings =
{
    iphone =
    {
        plist =
        {
            GADApplicationIdentifier = "[YOUR_ADMOB_APP_ID]", -- replace with your app id. See: https://googlemobileadssdk.page.link/admob-ios-update-plist
            NSAppTransportSecurity = { NSAllowsArbitraryLoads=true },
            MinimumOSVersion = "10.0", -- Needed to avoid build errors
            NSLocationWhenInUseUsageDescription = "The app needs your location for analytics and advertising purposes",
            NSCalendarsUsageDescription = "The app needs your calendar to provide personalised advertising experience tailored to you",
            NSUserTrackingUsageDescription = "This identifier will be used to deliver personalized ads to you.",
            SKAdNetworkItems = {
                     { SKAdNetworkIdentifier = "4pfyvq9l8r.skadnetwork" },
                     { SKAdNetworkIdentifier = "6g9af3uyq4.skadnetwork" },
                     { SKAdNetworkIdentifier = "4fzdc2evr5.skadnetwork" },
                     { SKAdNetworkIdentifier = "2fnua5tdw4.skadnetwork" },
                     { SKAdNetworkIdentifier = "ydx93a7ass.skadnetwork" },
                     { SKAdNetworkIdentifier = "cg4yq2srnc.skadnetwork" },
                     { SKAdNetworkIdentifier = "v72qych5uu.skadnetwork" },
                     { SKAdNetworkIdentifier = "mlmmfzh3r3.skadnetwork" },
                     { SKAdNetworkIdentifier = "pwdxu55a5a.skadnetwork" },
                     { SKAdNetworkIdentifier = "c6k4g5qg8m.skadnetwork" },
                     { SKAdNetworkIdentifier = "wg4vff78zm.skadnetwork" },
                     { SKAdNetworkIdentifier = "g28c52eehv.skadnetwork" },
                     { SKAdNetworkIdentifier = "523jb4fst2.skadnetwork" },
                     { SKAdNetworkIdentifier = "294l99pt4k.skadnetwork" },
                     { SKAdNetworkIdentifier = "hs6bdukanm.skadnetwork" },
                     { SKAdNetworkIdentifier = "prcb7njmu6.skadnetwork" },
                     { SKAdNetworkIdentifier = "m8dbw4sv7c.skadnetwork" },
                     { SKAdNetworkIdentifier = "9nlqeag3gk.skadnetwork" },
                     { SKAdNetworkIdentifier = "cj5566h2ga.skadnetwork" },
                     { SKAdNetworkIdentifier = "u679fj5vs4.skadnetwork" },
                     { SKAdNetworkIdentifier = "a7xqa6mtl2.skadnetwork" },
                     { SKAdNetworkIdentifier = "g2y4y55b64.skadnetwork" },
                     { SKAdNetworkIdentifier = "wzmmz9fp6w.skadnetwork" },
                     { SKAdNetworkIdentifier = "yclnxrl5pm.skadnetwork" },
                     { SKAdNetworkIdentifier = "4468km3ulz.skadnetwork" },
                     { SKAdNetworkIdentifier = "t38b2kh725.skadnetwork" },
                     { SKAdNetworkIdentifier = "7ug5zh24hu.skadnetwork" },
                     { SKAdNetworkIdentifier = "rx5hdcabgc.skadnetwork" },
                     { SKAdNetworkIdentifier = "5lm9lj6jb7.skadnetwork" },
                     { SKAdNetworkIdentifier = "9rd848q2bz.skadnetwork" },
                     { SKAdNetworkIdentifier = "n6fk4nfna4.skadnetwork" },
                     { SKAdNetworkIdentifier = "7rz58n8ntl.skadnetwork" },
                     { SKAdNetworkIdentifier = "ejvt5qm6ak.skadnetwork" },
                     { SKAdNetworkIdentifier = "275upjj5gd.skadnetwork" },
                     { SKAdNetworkIdentifier = "kbd757ywx3.skadnetwork" },
                     { SKAdNetworkIdentifier = "9t245vhmpl.skadnetwork" },
                     { SKAdNetworkIdentifier = "n9x2a789qt.skadnetwork" },
                     { SKAdNetworkIdentifier = "44jx6755aq.skadnetwork" },
                     { SKAdNetworkIdentifier = "tl55sbb4fm.skadnetwork" },
                     { SKAdNetworkIdentifier = "2u9pt9hc89.skadnetwork" },
                     { SKAdNetworkIdentifier = "8s468mfl3y.skadnetwork" },
                     { SKAdNetworkIdentifier = "klf5c3l5u5.skadnetwork" },
                     { SKAdNetworkIdentifier = "ppxm28t8ap.skadnetwork" },
                     { SKAdNetworkIdentifier = "74b6s63p6l.skadnetwork" },
                     { SKAdNetworkIdentifier = "kbmxgpxpgc.skadnetwork" },
                     { SKAdNetworkIdentifier = "44n7hlldy6.skadnetwork" },
                     { SKAdNetworkIdentifier = "5l3tpt7t6e.skadnetwork" },
                     { SKAdNetworkIdentifier = "uw77j35x4d.skadnetwork" },
                     { SKAdNetworkIdentifier = "6964rsfnh4.skadnetwork" },
                     { SKAdNetworkIdentifier = "84993kbrcf.skadnetwork" },
                     { SKAdNetworkIdentifier = "pwa73g5rt2.skadnetwork" },
                     { SKAdNetworkIdentifier = "mtkv5xtk9e.skadnetwork" },
                     { SKAdNetworkIdentifier = "e5fvkxwrpn.skadnetwork" },
                     { SKAdNetworkIdentifier = "gta9lk7p23.skadnetwork" },
                     { SKAdNetworkIdentifier = "r45fhb6rf7.skadnetwork" },
                     { SKAdNetworkIdentifier = "3rd42ekr43.skadnetwork" },
                     { SKAdNetworkIdentifier = "ludvb6z3bs.skadnetwork" },
                     { SKAdNetworkIdentifier = "737z793b9f.skadnetwork" },
                     { SKAdNetworkIdentifier = "mls7yz5dvl.skadnetwork" },
                     { SKAdNetworkIdentifier = "w9q455wk68.skadnetwork" },
                     { SKAdNetworkIdentifier = "p78axxw29g.skadnetwork" },
                     { SKAdNetworkIdentifier = "6xzpu9s2p8.skadnetwork" },
                     { SKAdNetworkIdentifier = "ggvn48r87g.skadnetwork" },
                     { SKAdNetworkIdentifier = "3sh42y64q3.skadnetwork" },
                     { SKAdNetworkIdentifier = "f38h382jlk.skadnetwork" },
                     { SKAdNetworkIdentifier = "24t9a8vw3c.skadnetwork" },
                     { SKAdNetworkIdentifier = "cstr6suwn9.skadnetwork" },
                     { SKAdNetworkIdentifier = "zmvfpc5aq8.skadnetwork" },
                     { SKAdNetworkIdentifier = "feyaarzu9v.skadnetwork" },
                     { SKAdNetworkIdentifier = "5a6flpkh64.skadnetwork" },
                     { SKAdNetworkIdentifier = "glqzh8vgby.skadnetwork" },
                     { SKAdNetworkIdentifier = "424m5254lk.skadnetwork" },
                     { SKAdNetworkIdentifier = "av6w8kgt66.skadnetwork" },
                     { SKAdNetworkIdentifier = "s39g8k73mm.skadnetwork" },
                     { SKAdNetworkIdentifier = "lr83yxwka7.skadnetwork" },
                     { SKAdNetworkIdentifier = "22mmun2rn5.skadnetwork" },
                     { SKAdNetworkIdentifier = "su67r6k2v3.skadnetwork" },
                     { SKAdNetworkIdentifier = "4w7y6s5ca2.skadnetwork" },
                     { SKAdNetworkIdentifier = "dzg6xy7pwj.skadnetwork" },
                     { SKAdNetworkIdentifier = "y45688jllp.skadnetwork" },
                     { SKAdNetworkIdentifier = "hdw39hrw9y.skadnetwork" },
                     { SKAdNetworkIdentifier = "4dzt52r2t5.skadnetwork" },
                     { SKAdNetworkIdentifier = "5tjdwbrq8w.skadnetwork" },
                     { SKAdNetworkIdentifier = "32z4fx6l9h.skadnetwork" },
                     { SKAdNetworkIdentifier = "xy9t38ct57.skadnetwork" },
                     { SKAdNetworkIdentifier = "54nzkqm89y.skadnetwork" },
                     { SKAdNetworkIdentifier = "9b89h5y424.skadnetwork" },
                     { SKAdNetworkIdentifier = "79pbpufp6p.skadnetwork" },
                     { SKAdNetworkIdentifier = "s69wq72ugq.skadnetwork" },
                     { SKAdNetworkIdentifier = "k674qkevps.skadnetwork" },
                     { SKAdNetworkIdentifier = "578prtvx9j.skadnetwork" },
                     { SKAdNetworkIdentifier = "f73kdq92p3.skadnetwork" },
                     { SKAdNetworkIdentifier = "x44k69ngh6.skadnetwork" },
                     { SKAdNetworkIdentifier = "mp6xlyr22a.skadnetwork" },
                     { SKAdNetworkIdentifier = "qqp299437r.skadnetwork" },
                     { SKAdNetworkIdentifier = "3qcr597p9d.skadnetwork" },
                     { SKAdNetworkIdentifier = "97r2b46745.skadnetwork" },
                     { SKAdNetworkIdentifier = "6p4ks3rnbw.skadnetwork" },
                     { SKAdNetworkIdentifier = "rvh3l7un93.skadnetwork" },
                     { SKAdNetworkIdentifier = "zq492l623r.skadnetwork" },
                     { SKAdNetworkIdentifier = "x8uqf25wch.skadnetwork" },
                     { SKAdNetworkIdentifier = "b9bk5wbcq9.skadnetwork" },
                     { SKAdNetworkIdentifier = "bxvub5ada5.skadnetwork" },
                     { SKAdNetworkIdentifier = "krvm3zuq6h.skadnetwork" },
                     { SKAdNetworkIdentifier = "c3frkrj4fj.skadnetwork" },
                     { SKAdNetworkIdentifier = "v9wttpbfk9.skadnetwork" },
                     { SKAdNetworkIdentifier = "n38lu8286q.skadnetwork" },
                     { SKAdNetworkIdentifier = "3qy4746246.skadnetwork" },
                     { SKAdNetworkIdentifier = "v4nxqhlyqp.skadnetwork" },
                     { SKAdNetworkIdentifier = "8c4e2ghe7u.skadnetwork" },
                     { SKAdNetworkIdentifier = "r26jy69rpl.skadnetwork" },
                     { SKAdNetworkIdentifier = "8m87ys6875.skadnetwork" },
                     { SKAdNetworkIdentifier = "488r3q3dtq.skadnetwork" },
                     { SKAdNetworkIdentifier = "52fl2v3hgk.skadnetwork" },
                     { SKAdNetworkIdentifier = "m5mvw97r93.skadnetwork" },
                     { SKAdNetworkIdentifier = "89z7zv988g.skadnetwork" },
                     { SKAdNetworkIdentifier = "hb56zgv37p.skadnetwork" },
                     { SKAdNetworkIdentifier = "6v7lgmsu45.skadnetwork" },
                     { SKAdNetworkIdentifier = "m297p6643m.skadnetwork" },
                     { SKAdNetworkIdentifier = "3l6bd9hu43.skadnetwork" },
                     { SKAdNetworkIdentifier = "vcra2ehyfk.skadnetwork" },
                     { SKAdNetworkIdentifier = "a2p9lx4jpn.skadnetwork" },
                     { SKAdNetworkIdentifier = "238da6jt44.skadnetwork" },
                     { SKAdNetworkIdentifier = "v79kvwwj4g.skadnetwork" },
                     { SKAdNetworkIdentifier = "f7s53z58qe.skadnetwork" },
                     { SKAdNetworkIdentifier = "gta8lk7p23.skadnetwork" },
             },
        },
    },
    android =
    {
        minSdkVersion = "16",
        applicationChildElements =
        {
            [[
                <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
                    android:value="[YOUR_ADMOB_APP_ID]"/>  -- replace with your app id. See: https://goo.gl/fQ2neu
            ]],
        },
    },
    plugins =
    {
        -- Base
        ['plugin.appodeal.base'] = { publisherId = 'com.coronalabs' },

        -- All types
        ['plugin.appodeal.Bidmachine'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.GoogleAdMob'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.A4G'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Smaato'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Unity'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Yandex'] = { publisherId = 'com.coronalabs' },

        -- Banner
        ['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },

        -- Interstitial
        ['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Ogury'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Vungle'] = { publisherId = 'com.coronalabs' },

        -- Rewarded Video
        ['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Ogury'] = { publisherId = 'com.coronalabs' },
        ['plugin.appodeal.Vungle'] = { publisherId = 'com.coronalabs' },
    },
}

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

Note

Disabling specific ad types and ad providers at this level with the help of new modular structure can greatly reduce the final build size.

For example, if you don't use Interstitials or Rewarded Video ad types in your app, you can comment blocks:

-- Interstitial
--['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Chartboost'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Mobvista'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Ogury'] = { publisherId = 'com.coronalabs' },

-- Rewarded Video
--['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Chartboost'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Mobvista'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Unity'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Vungle'] = { publisherId = 'com.coronalabs' },
--['plugin.appodeal.Tapjoy'] = { publisherId = 'com.coronalabs' },

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 out it too, like this:

-- Banner
['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
-- ['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.Yandex'] = { publisherId = 'com.coronalabs' },

If you are sure of your choice and want to keep your build settings nice and clean, you can remove commented ad types or/and adapters. Then for this particular example your build.settings file should look like this:

-- Base
['plugin.appodeal.base'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.GoogleAdMob'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },

-- Banner
['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.Yandex'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },
['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },

Important

If building for iOS, you must bypass App Transport Security (ATS) by adding the following to the plist table of build.settings. While we do not blindly encourage this approach for all developers and projects, bypassing ATS is required in certain cases. For more information on ATS, please see the Managing App Transport Security guide.

settings =
{
    iphone =
    {
        plist =
        {
            NSAppTransportSecurity = { NSAllowsArbitraryLoads=true },
        },
    },
}
Note

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"

Sample project