AdPromote Extension (v1.0)
AdPromote is a powerful promotional advertising extension for MIT App Inventor 2, designed to help developers cross-promote apps and YouTube content with high performance and flexible UI customization.
It supports:
Banner Ads
Native Ads
Interstitial Ads
YouTube Promotions
All Blocks
Extension Documentation
Initialization
Before using any ad format, you must initialize the promote system.
Method
InitializePromote(adLink As String, type As PromoteTaskType)
Initializes the promotion system using your remote JSON/API.
Parameters:
adLink→ URL of your promotion data sourcetype→ Promotion type:0→ AppPromote1→ YoutubePromote2→ AppWithYoutube
Events
InitializePromoteSuccessful()InitializePromoteFailed(error)
Data Control
Method
Clear()
Clears all cached promotion data asynchronously.
Events
DataCleared()DataClearFailed(error)
Banner Ads
App Banner

LoadBannerPromote(id, in, installTitle, installColor, descriptionColor)
Loads a banner ad for app promotion.
YouTube Banner

LoadBannerYoutube(id, in, subscribeTitle, description, subscribeTitleColor, subscribeColor, viewsColor, bodyColor)
Loads a YouTube banner ad.
Events
BannerAdLoaded(id)BannerAdClicked(id)BannerAdFailedToLoad(id, error)
Native Ads
App Native
LoadNativePromote(id, in, buttonTitle, buttonColor, radiusButton)
Loads a native app promotion ad.
YouTube Native
LoadNativeYoutube(id, in, bannerTitle, bannerColor, radiusButton, colorBody)
Loads a YouTube native ad.
YouTube Native Banner
LoadNativeBannerYoutube(id, in, bannerTitle, bannerColor, colorBody)
Loads a compact YouTube native banner.
Events
NativeAdLoaded(id)NativeAdClicked(id, type)NativeAdFailedToLoad(id, error)
Interstitial Ads
| Standard | Advanced |
|---|---|
![]() |
![]() |
Load
LoadInterstitial(id, style, installColor, timer, installTitle, radiusButton)
Loads a full-screen interstitial ad.
Control
IsInterstitialLoaded(id) → booleanShowInterstitial(id)
Events
InterstitialAdLoaded(id)InterstitialAdClicked(id)InterstitialAdFailedToLoad(id, error)InterstitialAdClosed(id)
Interstitial Ads (YouTube)
| Standard | Advanced |
|---|---|
![]() |
![]() |
Load
LoadInterstitialYoutube(id, style, adTitle, adColor, adTitleColor, radiusButton, descriptionShort, descriptionText, descriptionTitleColor, descriptionColor)
Loads a YouTube interstitial ad.
Control
IsInterstitialYoutubeLoaded(id) → booleanShowInterstitialYoutube(id)
Events
YoutubeInterstitialLoaded(id)YoutubeInterstitialAdClicked(id, type)YoutubeInterstitialAdFailedToLoad(id, error)YoutubeInterstitialAdClosed(id)
Utilities
ColorParser(color As String) → number
Parses a HEX color string into an integer.
Demo Blocks:
Demo:
Video Speed X2
Aix
Size about 500KB
Price 12$ feel free to contact me on Telegram:
Telegram: Contact @AemoDev
Thank YOU

AdPromote JSON Formatting Guide
The adLink parameter must point to a JSON file that defines the apps and/or YouTube content to promote.
Top-Level Structure
{
"AppsPromote": [],
"YoutubePromote": []
}
You can include:
- AppsPromote
- YoutubePromote
- Or both (recommended for full usage)
1. AppsPromote Array
Used when:
- AppPromote
- AppWithYoutube
Properties
| Property | Type | Description |
|---|---|---|
name |
String | App name |
icon |
URL | App icon |
shortDescription |
String | Short description of the app |
packageName |
String | App package name or direct link |
preview |
URL | Feature/preview image |
screenShot |
Array | List of screenshot URLs |
{
"AppsPromote": [
{
"name": "Super Racing 3D",
"icon": "https://example.com/icon.png",
"shortDescription": "Best racing game!",
"packageName": "com.racing.super3d",
"preview": "https://example.com/preview.png",
"screenShot": [
"https://example.com/1.png",
"https://example.com/2.png"
]
}
]
}
2. YoutubePromote Array
Used when:
- YoutubePromote
- AppWithYoutube
Properties
| Property | Type | Description |
|---|---|---|
title |
String | Video title |
icon |
URL | Channel or video icon |
preview |
URL | Large thumbnail image |
preview-small |
URL | Small thumbnail image |
watch |
URL | Direct link to the video |
channel |
String | YouTube channel ID |
Description |
String | Video description (case-sensitive) |
Example
{
"YoutubePromote": [
{
"title": "Top Android Features",
"icon": "https://example.com/icon.png",
"preview": "https://example.com/large.jpg",
"preview-small": "https://example.com/small.jpg",
"watch": "https://youtube.com/watch?v=0e0e0e00e",
"channel": "e00e00e0e",
"Description": "Best features explained!"
}
]
}
Combined Example
{
"AppsPromote": [
{
"name": "Secret App",
"icon": "https://example.com/icon.png",
"shortDescription": "Cool app",
"packageName": "com.example.app",
"preview": "https://example.com/preview.png",
"screenShot": [
"https://example.com/1.png"
]
}
],
"YoutubePromote": [
{
"title": "App Tutorial",
"icon": "https://example.com/icon.png",
"preview": "https://example.com/preview.png",
"preview-small": "https://example.com/small.png",
"watch": "https://youtu.be/e0e0e0",
"channel": "UCaskjs",
"Description": "Learn how to use it"
}
]
}








