Ad Format Integration
Here's how to integrate the supported ad formats in Flutter. Each ad format has its own unique characteristics and implementation details.
Supported Ad Formats
Ad Type | Support | Plugin Constant |
---|---|---|
App Open Ads | ✅ | Yodo1MasFlutterPlugin.adTypeAppOpen |
Interstitial Ads | ✅ | Yodo1MasFlutterPlugin.adTypeInterstitial |
Rewarded Ads | ✅ | Yodo1MasFlutterPlugin.adTypeRewarded |
Banner Ads | ✅ | Yodo1MasFlutterPlugin.adTypeBanner |
Native Ads | ✅ | Yodo1MasFlutterPlugin.adTypeNative |
Ad Events
Ad Events in the SDK are denoted using codes:
Event Name | Event Code |
---|---|
Ad Loaded | 1004 |
Ad Failed to Load | 1005 |
Ad Opened | 1001 |
Ad Closed | 1002 |
Ad Failed to Open | 1003 |
Reward Earned (Rewarded Only) | 2001 |
These constants are available in the SDK through:
import 'package:yodo1_mas_flutter_plugin/constants.dart';
- Interstitial Ads
- Rewarded Ads
- Banner Ads
- App Open Ads
- Native Ads
Interstitial Ads
Loading and Showing Ads
// Load an interstitial ad
await yodo1MasFlutterPlugin.loadAd(Yodo1MasFlutterPlugin.adTypeInterstitial);
// Check if ad is loaded
bool isLoaded = await yodo1MasFlutterPlugin.isAdLoaded(Yodo1MasFlutterPlugin.adTypeInterstitial);
// Show the ad
await yodo1MasFlutterPlugin.showAd(Yodo1MasFlutterPlugin.adTypeInterstitial);
Event Handling
_yodo1MasFlutterPlugin.setInterstitialListener((int code, String message) {
switch (code) {
case Yodo1MasConstants.adEventLoaded:
print('Interstitial Ad Loaded: $message');
break;
case Yodo1MasConstants.adEventFailedToLoad:
print('Interstitial Ad Failed to Load: $message');
break;
case Yodo1MasConstants.adEventOpened:
print('Interstitial Ad Opened: $message');
break;
case Yodo1MasConstants.adEventFailedToOpen:
print('Interstitial Ad Failed to Open: $message');
break;
case Yodo1MasConstants.adEventClosed:
print('Interstitial Ad Closed: $message');
break;
}
});
Rewarded Ads
Loading and Showing Ads
// Load a rewarded ad
await yodo1MasFlutterPlugin.loadAd(Yodo1MasFlutterPlugin.adTypeRewarded);
// Check if ad is loaded
bool isLoaded = await yodo1MasFlutterPlugin.isAdLoaded(Yodo1MasFlutterPlugin.adTypeRewarded);
// Show the ad
await yodo1MasFlutterPlugin.showAd(Yodo1MasFlutterPlugin.adTypeRewarded);
Event Handling
_yodo1MasFlutterPlugin.setRewardListener((int code, String message) {
switch (code) {
case Yodo1MasConstants.adEventLoaded:
print('Rewarded Ad Loaded: $message');
break;
case Yodo1MasConstants.adEventFailedToLoad:
print('Rewarded Ad Failed to Load: $message');
break;
case Yodo1MasConstants.adEventOpened:
print('Rewarded Ad Opened: $message');
break;
case Yodo1MasConstants.adEventFailedToOpen:
print('Rewarded Ad Failed to Open: $message');
break;
case Yodo1MasConstants.adEventClosed:
print('Rewarded Ad Closed: $message');
break;
case Yodo1MasConstants.adEventEarned:
print('Reward Earned: $message');
// Implement reward logic here
break;
}
});
Banner Ads
Loading and Showing Ads
// Load a banner ad
await yodo1MasFlutterPlugin.loadAd(Yodo1MasFlutterPlugin.adTypeBanner);
// Check if banner is loaded
bool isBannerLoaded = await yodo1MasFlutterPlugin.isAdLoaded(Yodo1MasFlutterPlugin.adTypeBanner);
// Show the banner ad
await yodo1MasFlutterPlugin.showAd(Yodo1MasFlutterPlugin.adTypeBanner);
Event Handling
_yodo1MasFlutterPlugin.setBannerListener((int code, String message) {
switch (code) {
case Yodo1MasConstants.adEventLoaded:
print('Banner Ad Loaded: $message');
break;
case Yodo1MasConstants.adEventFailedToLoad:
print('Banner Ad Failed to Load: $message');
break;
case Yodo1MasConstants.adEventOpened:
print('Banner Ad Opened: $message');
break;
case Yodo1MasConstants.adEventFailedToOpen:
print('Banner Ad Failed to Open: $message');
break;
case Yodo1MasConstants.adEventClosed:
print('Banner Ad Closed: $message');
break;
}
});
App Open Ads
Loading and Showing Ads
// Load an app open ad
await yodo1MasFlutterPlugin.loadAd(Yodo1MasFlutterPlugin.adTypeAppOpen);
// Check if ad is loaded
bool isLoaded = await yodo1MasFlutterPlugin.isAdLoaded(Yodo1MasFlutterPlugin.adTypeAppOpen);
// Show the ad
await yodo1MasFlutterPlugin.showAd(Yodo1MasFlutterPlugin.adTypeAppOpen);
Event Handling
_yodo1MasFlutterPlugin.setAppOpenListener((int code, String message) {
switch (code) {
case Yodo1MasConstants.adEventLoaded:
print('App Open Ad Loaded: $message');
break;
case Yodo1MasConstants.adEventFailedToLoad:
print('App Open Ad Failed to Load: $message');
break;
case Yodo1MasConstants.adEventOpened:
print('App Open Ad Opened: $message');
break;
case Yodo1MasConstants.adEventFailedToOpen:
print('App Open Ad Failed to Open: $message');
break;
case Yodo1MasConstants.adEventClosed:
print('App Open Ad Closed: $message');
break;
}
});
Native Ads
Loading and Showing Ads
// Load a native ad
await yodo1MasFlutterPlugin.loadAd(Yodo1MasFlutterPlugin.adTypeNative);
// Check if native ad is loaded
bool isNativeLoaded = await yodo1MasFlutterPlugin.isAdLoaded(Yodo1MasFlutterPlugin.adTypeNative);
// Show the native ad
await yodo1MasFlutterPlugin.showAd(Yodo1MasFlutterPlugin.adTypeNative);
Event Handling
_yodo1MasFlutterPlugin.setNativeListener((int code, String message) {
switch (code) {
case Yodo1MasConstants.adEventLoaded:
print('Native Ad Loaded: $message');
break;
case Yodo1MasConstants.adEventFailedToLoad:
print('Native Ad Failed to Load: $message');
break;
case Yodo1MasConstants.adEventOpened:
print('Native Ad Opened: $message');
break;
case Yodo1MasConstants.adEventFailedToOpen:
print('Native Ad Failed to Open: $message');
break;
case Yodo1MasConstants.adEventClosed:
print('Native Ad Closed: $message');
break;
}
});
Best Practices
- Preload Ads: Always initialize ads during app startup
- Error Handling: Implement proper error handling in all callbacks
- User Experience: Place ads at natural transition points
- Testing: Test thoroughly on both Android and iOS devices
- Ad Loading: Check if ads are loaded before showing them