TootAdMob Integration is a UE5.8 plugin that provides full Blueprint access to Banner Ads , Interstitial Ads, Rewarded Interstitial Ads, Rewarded Video Ads and AppOpen Ads on Android (arm64) and iOS 26+.
The plugin acts as an integration bridge to the Google Mobile Ads SDK (SDK v13.7.0 for iOS , play-services-ads:25.4.0 for Android) by Google LLC. No C++ knowledge is required to use this plugin.
Features
Banner Ads with 9 positions control, show, hide, and destroy support
Interstitial Ads with loaded, failed, shown, closed, and clicked event callbacks
Rewarded Interstitial ads with reward-granted, availability-changed, and completion callbacks
Rewarded Video ads with reward-granted, availability-changed, and completion callbacks
App Open Ads with full lifecycle events (loaded, failed, shown, closed)
Blueprint Function Library for direct one-call ad requests
C++ Integration also available
Third-Party SDK
Item
Value
SDK
Google Mobile Ads SDK for Android play-services-ads:25.4.0
Google Mobile Ads SDK for iOS GMA iOS SDK v13.7.0
Provider
Google LLC
License
Google Mobile Ads SDK Terms of Service
Note : This plugin integrates the Google Mobile Ads SDK for both Android and iOS. You must independently accept the Google AdMob terms of service and register your own account and App ID at the AdMob dashboard before ads will serve.
Setup Guide
Copy the plugin — Place the plugin folder inside your project’s Plugins/ directory.
Enable the plugin — Open the editor, go to Edit > Plugins, search for TootAdMob , and enable it, to avoid any compatibility issues and library conflicts, disable build-in AdMob support. Inside Project Settings, go to Platforms > Android > Google Play Services and set Include AdMob support for ads to false. Restart the editor.
Configure credentials — Go to Config folder , edit the configuration file : DefaultEngine.ini , add new configuration sectoin as below:
[TootAdMob]; below app id from google AdMob Demo : https://github.com/googleads/googleads-mobile-ios-examples/blob/main/Objective-C/admob/BannerExample/BannerExample/Info.plist , please replace with your own when release your game.AdMobAppIdIOS=ca-app-pub-3940256099942544~1458002511AdMobAppIdAndroid=ca-app-pub-3940256099942544~3347511713; below all Ad Units are testing ids, from google AdMob Demo , please replace with your own when release your game.+BannerIDsIOS=ca-app-pub-3940256099942544/2934735716+BannerIDsAndroid=ca-app-pub-3940256099942544/6300978111;+InterstitialIDsIOS=ca-app-pub-3940256099942544/1712485313+InterstitialIDsAndroid=ca-app-pub-3940256099942544/1033173712;+RewardedInterstitialIDsIOS=ca-app-pub-3940256099942544/6978759866+RewardedInterstitialIDsAndroid=ca-app-pub-3940256099942544/5354046379;+RewardedVideoIDsIOS=ca-app-pub-3940256099942544/1712485313+RewardedVideoIDsAndroid=ca-app-pub-3940256099942544/5224354917;+OpenAppIDsAndroid=ca-app-pub-3940256099942544/9257395921+OpenAppIDsIOS=ca-app-pub-3940256099942544/5575463023; TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIEDTagForUnderAgeOfConsent=TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIEDMaxAdContentRating=MAX_AD_CONTENT_RATING_G
3b. For iOS , the AdMobAppIdIOS above dosen’t work , it need setup another item with properly info.
[/Script/IOSRuntimeSettings.IOSRuntimeSettings]; set values for AdditionalPlistData as below, replace GADApplicationIdentifier value with your own AdMob App Id,; replace ca-app-pub-4538255326928179~9086583338 with your own app id, otherwise app will experiment crashingAdditionalPlistData=<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>UISupportsDocumentBrowser</key><true/><key>LSSupportsOpeningDocumentsInPlace</key><true/><key>NSCameraUsageDescription</key>\n<string>App needs permission to use the camera in order to use Video features.</string><key>NSMicrophoneUsageDescription</key>\n<string>App needs permission to use the Microphone in order to use Audio features.</string><key>GADApplicationIdentifier</key><string>ca-app-pub-4538255326928179~9086583338</string><key>LSRequiresIPhoneOS</key><true/><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>SKAdNetworkItems</key><array><dict><key>SKAdNetworkIdentifier</key><string>cstr6suwn9.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>4fzdc2evr5.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>2fnua5tdw4.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>ydx93a7ass.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>p78axxw29g.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>v72qych5uu.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>ludvb6z3bs.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>cp8zw746q7.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>3sh42y64q3.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>c6k4g5qg8m.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>s39g8k73mm.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>wg4vff78zm.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>3qy4746246.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>f38h382jlk.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>hs6bdukanm.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>mlmmfzh3r3.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>v4nxqhlyqp.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>wzmmz9fp6w.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>su67r6k2v3.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>yclnxrl5pm.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>t38b2kh725.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>7ug5zh24hu.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>gta9lk7p23.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>vutu7akeur.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>y5ghdn5j9k.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>v9wttpbfk9.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>n38lu8286q.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>47vhws6wlr.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>kbd757ywx3.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>9t245vhmpl.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>a2p9lx4jpn.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>22mmun2rn5.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>44jx6755aq.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>k674qkevps.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>4468km3ulz.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>2u9pt9hc89.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>8s468mfl3y.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>klf5c3l5u5.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>ppxm28t8ap.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>kbmxgpxpgc.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>uw77j35x4d.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>578prtvx9j.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>4dzt52r2t5.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>tl55sbb4fm.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>c3frkrj4fj.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>e5fvkxwrpn.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>8c4e2ghe7u.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>3rd42ekr43.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>97r2b46745.skadnetwork</string></dict><dict><key>SKAdNetworkIdentifier</key><string>3qcr597p9d.skadnetwork</string></dict></array>
Package for Android or iOS — Build the project and package it for Android or iOS Shipping.
Blueprint Usage Guide
Utility Blueprint Nodes
Miscellaneous
1. Request Privacy Options : Display a form for privacy options (if needs), it’s asynchronous, error message output via **Return Event **delegate if it failed to display form.
2. Gather Ad Consent : Display a form for gathering user consent (if needs). it’s asynchronous, error message output via **Return Event **delegate if it failed to display form.
3. Show Ad Inspector : Display the Ad Inspector window, testing purpose only, convenient to check ads filling information.
Banner Ad Blurpint Nodes
Banner Ad Blurpint Nodes
1. Get Banner Ad ID Count : Get the number of banner ad id count configurated in DefaultEngine.ini ( the lenght of array of BannerIDsIOS / BannerIDsAndroid in [TootAdMob] sectoin )
Support this blog
I'm trying my best to share knowledge about Unreal Engine Game developing. If you think these posts have either helped or inspired you, please consider supporting this blog. Thank you so much for your contribution!