Godot Appodeal iOS Module
API Compatible with Godot Appodeal Android plugin (exclude platform specific).
- Get Godot source.
- Copy files from this repository to
godot/modules/appodealfolder. - Add
Appodeal.frameworktolibsubfolder. - Compile for iOS.
- After export Godot-project to XCode-project, replace
GameName.ain XCode-project to file got on previous step. - Change
info.plistwith Prepare your app section. - Add Appodeal framework (see Choose your integration type section).
- Create
Empty.swiftin XCode-project and acceptCreate Bridging Header
To use the GodotAppodeal API you first have to get the GodotAppodeal singleton:
var _appodeal
func _ready():
if Engine.has_singleton("GodotAppodeal"):
_appodeal = Engine.get_singeton("GodotAppodeal")To initialization Appodeal SDK call initialize method:
func initialize(app_key: String, ad_types: int, consent: bool) -> voidFor example:
_appodeal.initialize("YOU_ANDROID_APPODEAL_APP_KEY", 8, false)The adTypes parameter in the code is responsible for the ad formats you are going to implement into your app. You can define enum for it:
enum AdType {
INTERSTITIAL = 1,
BANNER = 2,
NATIVE = 4,
REWARDED_VIDEO = 8,
NON_SKIPPABLE_VIDEO = 16,
}Ad types can be combined using "|" operator.
The showStyles parameter use for show ad. You can define enum for it:
enum ShowStyle {
INTERSTITIAL = 1,
BANNER_TOP = 2,
BANNER_BOTTOM = 4,
REWARDED_VIDEO = 8,
NON_SKIPPABLE_VIDEO = 16,
}# Initialization Appodeal SDK
func initialize(app_key: String, ad_types: int, consent: bool) -> void# Checking initialization for ad type
func isInitializedForAdType(ad_type: int) -> bool# Display ad
func showAd(show_style: int) -> bool# Display ad for specified placement
func showAdForPlacement(show_style: int, placement: String) -> bool# Check ability to display ad
func canShow(show_style: int) -> bool# Check ability to display ad for specified placement
func canShowForPlacement(ad_type: int, placement: String) -> bool# Hide banner
func hideBanner()# Enable/Disable testing
func setTestingEnabled(enabled: bool) -> void# Disable specified networks
func disableNetworks(networks: Array) -> void# Disable specified networks for ad type
func disableNetworksForAdType(networks: Array, ad_type: int) -> void# Disable specified network
func disableNetwork(network: String) -> void# Disable specified network for ad type
func disableNetworkForAdType(network: String, ad_type: int) -> void# Disable location tracking.
func setLocationTracking(enabled: bool) -> void# Disable data collection for kids apps
func setChildDirectedTreatment(for_kids: bool) -> void# Change GDPR consent status
func updateConsent(consent: bool) -> void# Set logging
func setLogLevel(log_level: int) -> void# Send extra data
func setExtras(data: Dictionary) -> void# Set segment filter
func setSegmentFilter(filter: Dictionary) -> void# Enable/Disable smart banners
func setSmartBannersEnabled(enabled: bool) -> void# Enable/Disable banner animation
func setBannerAnimationEnabled(enabled: bool) -> void# Set banner size
# Set 728x90 if 1, otherwise 320x50
func setPreferredBannerAdSize(size: int) -> void# Enable/Disable autocache
func setAutocache(enabled: bool, ad_type: int) -> void# Check autocache enabled
func isAutocacheEnabled(ad_type: int) -> bool# Check cache
func isPrecacheAd(ad_type: int) -> bool# Cache
func cacheAd(ad_type: int) -> void# Set user ID for S2S callbacks
func setUserId(user_id: String) -> void# Set user age
func setUserAge(age: int) -> void# Set user gender
func setUserGender(gender: int) -> void# Get predicted eCPM for ad type
func getPredictedEcpmForAdType(ad_type: int) -> float# Get Reward info for placement
func getRewardForPlacement(placement: String) -> DictionaryReward Dictionary have currency and amount keys.
# Track in-app purchases
func trackInAppPurchase(amount: float, currency: String) -> void# Emit when interstitial is loaded
signal interstitial_loaded(precached: bool)# Emit when interstitial failed to load
signal interstitial_load_failed()# Emit when interstitial is shown
signal interstitial_shown()# Emit when interstitial show failed
signal interstitial_show_failed()# Emit when interstitial is clicked
signal interstitial_clicked()# Emit when interstitial is closed
signal interstitial_closed()# Emit when interstitial is expired
signal interstitial_expired()# Emit when banner is loaded
signal banner_loaded(precached: bool)# Emit when banner failed to load
signal banner_load_failed()# Emit when banner is shown
signal banner_shown()# Emit when banner show failed
signal banner_show_failed()# Emit when banner is clicked
signal banner_clicked()# Emit when banner is expired
signal banner_expired()# Emit when rewarded video is loaded
signal rewarded_video_loaded(precache: bool)# Emit when rewarded video failed to load
signal rewarded_video_load_failed()# Emit when rewarded video is shown
signal rewarded_video_shown()# Emit when rewarded video show failed
signal rewarded_video_show_failed()# Emit when rewarded video is viewed until the end
signal rewarded_video_finished(amount: float, currency: String)# Emit when rewarded video is closed
signal rewarded_video_closed(finished: bool)# Emit when rewarded video is expired
signal rewarded_video_expired()# Emit when rewarded video is clicked
signal rewarded_video_clicked()# Emit when non-skippable video is loaded
signal non_skippable_video_loaded(precache: bool)# Emit when non-skippable video failed to load
signal non_skippable_video_load_failed()# Emit when non-skippable video is shown
signal non_skippable_video_shown()# Emit when non-skippable video show failed
signal non_skippable_video_show_failed()# Emit when non-skippable video is viewed until the end
signal non_skippable_video_finished()# Emit when non-skippable video is closed
signal non_skippable_video_closed(finished: bool)# Emit when non-skippable video is expired
signal non_skippable_video_expired()This methods and signals available on iOS only.
Configure info.plist by iOS 14 Network Support section
enum TrackingAuthorizationStatus {
NOT_DETERMINED = 0,
RESTRICTED = 1,
DENIED = 2,
AUTHORIZED = 3,
}# Request access to IDFA
func requestTrackingAuthorization() -> void# Get tracking authorization status
func getTrackingAuthorizationStatus() -> int# Emit when request tracking authorization completed
signal tracking_request_completed(status: int)