cordova-plugin-appodeal-framework
v3.2.0-beta.2-3.trimmed
Published
Appodeal's supply-side platform is designed and built by veteran publishers, for publishers. Appodeal is not an ad network, it is a new approach to monetizing for publishers.
Downloads
22
Maintainers
Readme
Appodeal Cordova Plugin
This is an unofficial Appodeal Cordova plugin, created to integrate Appodeal SDK with Apache Cordova.
How to Update Plugin Manually
Android Part:
- Update appodeal.gradle with desired changes/version.
- Check AppodealPlugin.java for any API changes.
- Done, you can use updated plugin for Android Platform.
iOS Part:
//TODO
- Download new Appodeal iOS SDK here and unzip it somewhere.
- Remove Adapters folder and Appodeal.bundle. Replace old
Appodeal.framework
with new one and putResources
folder if exists into libs/iOS/Appodeal. - Open plugin.xml, scroll down to
<platform name="ios">
and check system frameworks for any changes due to changes in 3 Step of 5.3 Manual Integration in Appodeal iOS Doc page. - Remove all the content after
<framework custom="true" src="libs/iOS/Appodeal/Appodeal.framework"/>
in plugin.xml up to</platform>
close tag. - Skip this step if unzipped iOS SDK does not contain
Resources
folder. Add all resources fromResources
folder of unzipped iOS SDK manually after<framework custom="true" src="libs/iOS/Appodeal/Appodeal.framework"/>
, for example:
<resource-file src="libs/iOS/Appodeal/Resources/MPCloseBtn.png"/>
- Check AppodealPlugin.m for any API changes.
- Done, you can use updated plugin for iOS Platform.
Install
Simply go to the project folder over console/terminal and run there following command:
cordova plugin add https://github.com/GartorwareCorp/appodeal-cordova-plugin-framework.git --variable ADMOB_APP_ID="<YOUR_ANDROID_ADMOB_APP_ID_AS_FOUND_IN_ADMOB>"
Also, if targeting Android >= 28, create a resources/android/xml/network_security_config.xml
file with this content:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
</domain-config>
</network-security-config>
And edit your config.xml to include this file in your build:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
If you have issues while installing plugin, follow the Command-line Interface Guide.
Minimum OS requirements:
- iOS 8.1
- Android API level 14 (Android OS 4.0)
Multidex
If receiving errors while compiling about method number limites (>65K), please, enable Multidex:
For Android X
cordova plugin add https://github.com/GartorwareCorp/cordova-plugin-androidx-multidex.git
Proguard
Proguard rules should be auto included, so no changes needed.
Cordova Integration
Ad Types
- Appodeal.INTERSTITIAL
- Appodeal.BANNER_TOP
- Appodeal.BANNER_BOTTOM
- Appodeal.REWARDED_VIDEO
Ad types can be combined using "|" operator. For example Appodeal.INTERSTITIAL | Appodeal.REWARDED_VIDEO.
SDK Initialization
To initialize SDK for INTERSTITIAL ad type, call the following code:
var appKey = "e7e04e54ae0a8d28cff2f7e7e7d094e78b2a09743be2cc4a";
Appodeal.disableLocationPermissionCheck();
Appodeal.initialize(appKey, Appodeal.INTERSTITIAL, consent);
- To initialize only interstitials use
Appodeal.initialize(appKey, Appodeal.INTERSTITIAL)
- To initialize only rewarded video use
Appodeal.initialize(appKey, Appodeal.REWARDED_VIDEO)
- To initialize only non-skippable video use
Appodeal.initialize(appKey, Appodeal.NON_SKIPPABLE_VIDEO)
- To initialize interstitials and non-skippable videos use
Appodeal.initialize(appKey, Appodeal.INTERSTITIAL | Appodeal.NON_SKIPPABLE_VIDEO)
- To initialize only banners use
Appodeal.initialize(appKey, Appodeal.BANNER)
Display Ad
To display ad you need to call the following code:
Appodeal.show(adTypes);
- To display interstitial use
Appodeal.show(Appodeal.INTERSTITIAL)
- To display rewarded video use
Appodeal.show(Appodeal.REWARDED_VIDEO)
- To display non-skippable video use
Appodeal.show(Appodeal.NON_SKIPPABLE_VIDEO)
- To display interstitial or non-skippable video use
Appodeal.show(Appodeal.INTERSTITIAL | Appodeal.NON_SKIPPABLE_VIDEO)
- To display banner at the bottom of the screen use
Appodeal.show(Appodeal.BANNER_BOTTOM)
- To display banner at the top of the screen use
Appodeal.show(Appodeal.BANNER_TOP)
Also it can be used in this way, to get boolean value if ad was successfully shown:
Appodeal.show(adTypes, function(result) {
// result is a boolean value, that is indicates whether show call was passed to appropriate SDK
});
Checking if interstitial is loaded
To check if ad type was loaded, use following code:
Appodeal.isLoaded(adTypes, function(result){
// result returns bool value
});
Hide Banner Ad
To hide banner you need to call the following code:
Appodeal.hide(Appodeal.BANNER);
Callbacks integration
Callbacks can be setted with following code:
Appodeal.setInterstitialCallbacks( function(result) {
console.log(result);
});
Appodeal.setBannerCallbacks( function(result) {
console.log(result);
});
Appodeal.setRewardedVideoCallbacks( function(result) {
console.log(result);
});
Appodeal.setNonSkippableVideoCallbacks( function(result) {
console.log(result);
});
result.event can be one of the following:
onInit
onLoaded
onFailedToLoad
onClick
onShown
onClosed
onFinished
onExpired
onShowFailed
To set Interstitial callbacks, use following code:
Appodeal.setInterstitialCallbacks( function(container) {
if (container.event == 'onLoaded') {
console.log("Appodeal. Interstitial. " + container.event + ", isPrecache: " + container.isPrecache );
// your code
} else if (container.event == 'onFailedToLoad') {
// your code
} else if (container.event == 'onShown') {
// your code
} else if (container.event == 'onClick') {
// your code
} else if (container.event == 'onClosed') {
// your code
}
});
To set Banner callbacks, use following code:
Appodeal.setBannerCallbacks( function(container) {
if (container.event == 'onLoaded') {
console.log("Appodeal. Banner. " + container.event + ", height: " + container.height + ", isPrecache: " + container.isPrecache);
// your code
} else if (container.event == 'onFailedToLoad') {
// your code
} else if (container.event == 'onShown') {
// your code
} else if (container.event == 'onClick') {
// your code
}
});
To set Rewarded Video callbacks, use following code:
Appodeal.setRewardedVideoCallbacks( function(container) {
if (container.event == 'onLoaded') {
// your code
} else if (container.event == 'onFailedToLoad') {
// your code
} else if (container.event == 'onShown') {
// your code
} else if (container.event == 'onFinished') {
// container also returns "name" and "amount" variables with reward amount and currency name you have set for your application
console.log( "Appodeal. Rewarded. " + container.event + ", amount: " + container.amount + ", name: " + container.name);
// your code
} else if (container.event == 'onClosed') {
// container also returns "finished" variable with boolean value for indicating if video was finished
console.log("Appodeal. Rewarded. " + container.event + ", finished: " + container.finished);
// your code
}
});
To set Non Skippable Video callbacks, use following code:
Appodeal.setNonSkippableVideoCallbacks( function(container) {
if (container.event == 'onLoaded') {
// your code
} else if (container.event == 'onFailedToLoad') {
// your code
} else if (container.event == 'onShown') {
// your code
} else if (container.event == 'onFinished') {
// your code
} else if (container.event == 'onClosed') {
// container also returns "finished" variable with boolean value for indicating if video was finished
console.log("Appodeal. Non Skippable Video. " + container.event + ", finished: " + container.finished);
// your code
}
});
Advanced Features
Getting reward data for placement
To get placement reward data before video is shown use:
Appodeal.getRewardParameters( function(result) {
console.log("Appodeal Reward Amount:" + result.amount);
console.log("Appodeal Reward Currency:" + result.currency);
});
Enabling 728*90 banners
To enable 728*90 banner use the following method:
Appodeal.set728x90Banners(true);
Disabling banner refresh animation
To disable banner refresh animation use:
Appodeal.setBannerAnimation(false);
Disabling smart banners
Appodeal.setSmartBanners(false);
Enabling test mode
Appodeal.setTesting(true);
In test mode test ads will be shown and debug data will be written to log.
Enabling logging
Appodeal.setLogLevel(Appodeal.LogLevel.debug);
Available parameters: Appodeal.LogLevel.none, Appodeal.LogLevel.debug, Appodeal.LogLevel.verbose.
Checking if loaded ad is precache
Appodeal.isPrecache(adTypes, function(result){
// result is a boolean value, that equals true if ad is precache
})
Currently supported only for interstitials and banners
To check if loaded interstitial is precache: use Appodeal.isPrecache(Appodeal.INTERSTITIAL);
To check if loaded banner is precache: use Appodeal.isPrecache(Appodeal.BANNER);
Manual ad caching
Appodeal.cache(adTypes);
- You should disable automatic caching before SDK initialization using
setAutoCache(adTypes, false)
. - To cache interstitial use
Appodeal.cache(Appodeal.INTERSTITIAL)
- To cache rewarded video use
Appodeal.cache(Appodeal.REWARDED_VIDEO)
- To cache interstitial and non-skippable video use
Appodeal.cache(Appodeal.INTERSTITIAL | Appodeal.NON_SKIPPABLE_VIDEO)
- To cache banner use
Appodeal.cache(Appodeal.BANNER)
Enabling or disabling automatic caching
Appodeal.setAutoCache(adTypes, false);
- Should be used before SDK initialization
- To disable automatic caching for interstitials use
Appodeal.setAutoCache(Appodeal.INTERSTITIAL, false)
- To disable automatic caching for rewarded videos use
Appodeal.setAutoCache(Appodeal.REWARDED_VIDEO, false)
- To disable automatic caching for banners use
Appodeal.setAutoCache(Appodeal.BANNER, false)
Triggering onLoaded callback on precache
Appodeal.setTriggerOnLoadedOnPrecache(adTypes, true);
- Currently supported only for interstitials
setOnLoadedTriggerBoth(Appodeal.INTERSTITIAL, false)
- onInterstitialLoaded will trigger only when normal ad was loaded (default)..setOnLoadedTriggerBoth(Appodeal.INTERSTITIAL, true)
- onInterstitialLoaded will trigger twice, both when precache and normal ad were loaded..- Should be used before SDK initialization
Disabling data collection for kids apps
Appodeal.setChildDirectedTreatment(true);
Disabling networks
Appodeal.disableNetwork(network);
Available parameters: "adcolony", "admob", "amazon_ads", "applovin", "appnext", "avocarrot", "chartboost", "facebook", "flurry", "inmobi", "inner-active", "ironsource", "mailru", "mmedia", "mopub", "ogury", "openx", "pubnative", "smaato", "startapp", "tapjoy", "unity_ads", "vungle", "yandex"
Should be used before SDK initialization
Disabling location permission check
To disable toast messages ACCESS_COARSE_LOCATION permission is missing, use the following method:
Appodeal.disableLocationPermissionCheck();
Should be used before SDK initialization.
Disabling write external storage permission check
To disable toast messages WRITE_EXTERNAL_STORAGE permission is missing use the following method:
Appodeal.disableWriteExternalStoragePermissionCheck();
Disables all ad networks that need this permission may lead to low video fillrates.
Should be used before SDK initialization.
Tracking in-app purchase
Appodeal.trackInAppPurchase(this, 5, "USD");
Testing third-party networks adapters integration
To show test screen for testing adapters integration call:
Appodeal.showTestScreen();
Muting videos if call volume is muted
Appodeal.muteVideosIfCallsMuted(true);
Setting User Data
Set the age of the user
Appodeal.setAge(25);
Specify gender of the user
Appodeal.setGender(UserSettings.Gender.FEMALE);
Possible values: Appodeal.Gender.FEMALE, Appodeal.Gender.MALE, Appodeal.Gender.OTHER.