ad_turbo
ad_turbo Implements Google Ads, Easy and Turbo Way, supporting All Type of Google Ads,Native Ads(Android),Banner,App Open,Interstitial,AppOpen,Rewarded,Rewarded Interstitial and NativeVideo(Android) into Flutter App.
Show some 💙, 👍 the package & ⭐️ the repo to support the project
To easily integrate ads into your flutter app.
Features
Google Mobile Ads
- banner Ad
- interstitial Ad
- rewarded Ad
- rewarded interstitial Ad
- app open Ad
- native small Ad, native Ad, native video(Android Only)
Getting Started
- Add this dependencies to your pubspec.yaml file:
dependencies:
ad_turbo: "<LATEST_VERSION>"
Platform Specific Setup
Android
Set minSdkVersion 19 to \android\app\build.gradle:
android {
defaultConfig {
MinSdkVersion 19
}
}
App requires Multidex support
Set multiDexEnabled true to \android\app\build.gradle:
android {
defaultConfig {
multiDexEnabled true
}
}
Update AndroidManifest.xml
In your app's /android/app/src/main/AndroidManifest.xml file,add this.
<manifest>
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
This is a test id you need to ad your admob id for real ads at android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"
The AdMob App ID must be included in the AndroidManifest.xml. Failure to do so will result in a crash on launch of an app.
IOS
Update your Info.plist
In your app's ios/Runner/Info.plist file,add a GADApplicationIdentifier key with a string value of your AdMob app ID
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~3347511713</string>
This is a test id you need to ad your admob id for real ads at
See this guide for more information about configuring Integrating the Google Mobile Ads SDK into a Flutter app.
Documentation
ad_turbo implementation
Initialize the plugin
You need to ad this in your main
Fucnction For implementation plugin ads into your app's main.dart file :
import 'package:ad_turbo/ad_turbo.dart';
void main() {
adTurbo();
runApp(const MyApp());
}
adTurbo() async{
await AdTurbo.init();
await AdTurbo.adTurboTestDevice(testDeviceIds: "BC754A812958EE7FF20599662417762B");
}
AdHelper
You can create adhelper for plateform spacific google mob id "
import 'dart:io' show Platform;
class AdTurboAdHelper {
static String get bannerAdUnitId {
if (Platform.isAndroid) {
return "ca-app-pub-3940256099942544/6300978111";
} else if (Platform.isIOS) {
return "ca-app-pub-3940256099942544/2934735716";
} else {
throw new UnsupportedError("Unsupported platform");
}
}
static String get appOpenAdUnitId {
if (Platform.isAndroid) {
return "ca-app-pub-3940256099942544/3419835294";
} else if (Platform.isIOS) {
return "ca-app-pub-3940256099942544/5662855259";
} else {
throw new UnsupportedError("Unsupported platform");
}
}
}
For more detail On How to spacify AdHelper Check Example of ad_turbo AdTurboAdHelper here.
Banner Ad
####- For implement banner Ad You need to initialize BannerAdTurbo
final _bannerAdTurbo = BannerAdTurbo();
####- For load banner Ad there is Function loadBannerAdTurbo
:
loadAd() async{
await _bannerAdTurbo.loadBannerAdTurbo(
adUnitId: AdTurboAdHelper.bannerAdUnitId);
}
####- after load banner you can get bannerAd with this :
- banner Ad will get as widget
_bannerAdTurbo.getBannerAdTurbo();
For more detail On How to Implement BannerAd Check Example of ad_turbo bannerAd here.
Interstitial Ad
####- For implement interstitial Ad You need to initialize InterstitialAdTurbo
final _interstitialAdTurbo = InterstitialAdTurbo();
####- For load interstitial Ad there is Function loadInterstitialAdTurbo
:
loadAd() async{
await _interstitialAdTurbo.loadInterstitialAdTurbo(
adUnitId: AdTurboAdHelper.interstitialAdUnitId);
}
####- after load interstitial you can get interstitial Ad with this function :
- interstitial can open with onClick
- you can also get callback functions of interstital Ad
ElevatedButton(onPressed: ()async{
await _interstitialAdTurbo.interstitialAd?.show();
await _interstitialAdTurbo.interstitialCallback();
},
child: const Text("InterstitialAd")),
For more detail On How to Implement Interstitial Ad Check Example of ad_turbo interstitialAd here.
Rewarded Ad
####- For implement Rewarded Ad You need to initialize RewardedAdTurbo
final _rewardedAdTurbo = RewardedAdTurbo();
####- For load Rewarded Ad there is Function loadRewardedAdTurbo
:
loadAd() async{
await _rewardedAdTurbo.loadRewardedAdTurbo(
adUnitId: AdTurboAdHelper.rewardedAdUnitId);
}
####- after load Rewarded you can get Rewarded Ad with this function :
- Rewarded can open with onClick
- you can also get callback functions of Rewarded Ad
ElevatedButton(onPressed: ()async{
await _rewardedAdTurbo.rewardedAd.show();
await _rewardedAdTurbo.rewardedCallback();
},
child: const Text("RewardedAd")),
For more detail On How to Implement Rewarded Ad Check Example of ad_turbo RewardedAd here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/rewarded_ad_turbo.dart).
RewardedInterstitial Ad
####- For implement RewardedInterstitial Ad You need to initialize RewardedInterstitialAdTurbo
final _rewardedInterstitialAdTurbo = RewardedInterstitialAdTurbo();
####- For load RewardedInterstitial Ad there is Function loadRewardedInterstitialAdTurbo
:
loadAd() async{
await _rewardedInterstitialAdTurbo.loadRewardedInterstitialAdTurbo
(adUnitId: AdTurboAdHelper.rewardedInterstitial);
}
####- after load RewardedInterstitial you can get RewardedInterstitial Ad with this function :
- RewardedInterstitial can open with onClick
- you can also get callback functions of RewardedInterstitial Ad
ElevatedButton(onPressed: ()async{
_rewardedInterstitialAdTurbo.rewardedInterstitial?.show();
await _rewardedInterstitialAdTurbo.rewardedInterstitialCallback();
},
child: const Text("RewardedInterstitialAd")),
For more detail On How to Implement RewardedInterstitial Ad Check Example of ad_turbo RewardedInterstitial here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/rewarded_interstitial_ad_turbo.dart).
AppOpen Ad
####- For implement AppOpen Ad You need to initialize AppOpenAdTurbo
final _appOpenAdTurbo = AppOpenAdTurbo();
####- For load AppOpen Ad there is Function loadAppOpenAdTurbo
:
loadAd() async{
await _appOpenAdTurbo.loadAppOpenAdTurbo(
(AdTurboAdHelper.appOpenAdUnitId);
}
####- after load AppOpen you can get AppOpen Ad with this function :
- AppOpen can open with onClick
- you can also get callback functions of AppOpen Ad
ElevatedButton(onPressed: ()async{
await _appOpenAdTurbo.appOpenAd?.show();
await _appOpenAdTurbo.appOpenCallback();
},
child: const Text("AppOpenAd")),
For more detail On How to Implement AppOpen Ad Check Example of ad_turbo AppOpen here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/appOpen_ad_turbo.dart).
Native AdS
####- For implement Native AdS You need to initialize NativeAdTurbo
final _nativeAdTurbo = NativeAdTurbo();
NativeAd Small
####- For load NativeSmall Ad there is Function loadNativeSmallAdTurbo
:
loadAd() async{
await _nativeAdTurbo.loadNativeSmallAdTurbo(
adUnitId: AdTurboAdHelper.nativeAdvancedAdUnitId);
}
####- after load NativeSmall you can get NativeSmall Ad Widget like this :
Container(height: 102,child: _nativeAdTurbo.getNativeSmallAdTurbo())
For more detail On How to Implement NativeSmall Ad Check Example of ad_turbo NativeSmall here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/native_small_ad_turbo.dart).
NativeAd Medium
####- For load NativeMedium Ad there is Function loadNativeMediumAdTurbo
:
loadAd() async{
await _nativeAdTurbo.loadNativeMediumAdTurbo(
adUnitId: AdTurboAdHelper.nativeAdvancedAdUnitId);
}
####- after load NativeMedium you can get NativeMedium Ad Widget like this :
Container(height: 255,child: _nativeAdTurbo.getNativeMediumAdTurbo())
For more detail On How to Implement NativeMedium Ad Check Example of ad_turbo NativeMedium here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/native_medium_ad_turbo.dart).
NativeAd Video
####- For load NativeVideo Ad there is Function loadNativeVideoAdTurbo
:
loadAd() async{
await loadNativeVideoAdTurbo(
nativeVideoID: AdTurboAdHelper.nativeAdvancedVideoAdUnitId);
}
####- after load NativeVideo you can get NativeVideo Ad Widget like this :
Container(height: 310,child: _nativeAdTurbo.getNativeVideoAdTurbo(context: context))
For more detail On How to Implement NativeVideo Ad Check Example of ad_turbo NativeVideo here
(https:///github.com/hardikkhunt905/ad_turbo/blob/main/example/lib/Screen/native_video_ad_turbo.dart).
Load Function InDetail :
###- This functions must be call in init method.
loadBannerAdTurbo :
loadAd() async{
await _bannerAdTurbo.loadBannerAdTurbo(
adUnitId: AdTurboAdHelper.bannerAdUnitId,
/// Called when an TurboBannerAd is successfully received.
onAdLoaded: (ad) {
log("ad_turbo_plugin : TurboBannerAd loaded");
isBannerAdReady = true;
setState((){});
},
/// Called when an TurboBannerAd request failed.
onAdFailedToLoad: (ad, error) {
/// Dispose the TurboBannerAd here to free resources.
isBannerAdReady = false;
ad.dispose();
print('TurboBannerAd failed to load: $error');
loadAd();
},
/// Called when an TurboBannerAd opens an overlay that covers the screen.
onAdOpened: (ad) => print('TurboBannerAd opened.'),
/// Called when an TurboBannerAd removes an overlay that covers the screen.
onAdClosed: (ad) => print('TurboBannerAd closed.'),
/// Called when an impression occurs on the TurboBannerAd.
onAdImpression: (ad) => print('TurboBannerAd impression.'),
adSize: BannerAdTurbo.banner);
}
loadInterstitialAdTurbo :
loadAd() async{
await _interstitialAdTurbo.loadInterstitialAdTurbo(adUnitId: AdTurboAdHelper.interstitialAdUnitId,
onAdLoaded: (ad) {
print('$ad loaded.');
/// Keep a reference to the ad so you can show it later.
_interstitialAdTurbo.interstitialAd = ad;
isInterstitialAdReady = true;
},
onAdFailedToLoad: (error) {
isInterstitialAdReady = false;
print('Failed to load an interstitial ad: ${error.message}');
loadAd();
});
}
loadRewardedAdTurbo :
loadAd() async{
await _rewardedAdTurbo.loadRewardedAdTurbo(adUnitId: AdTurboAdHelper.rewardedAdUnitId,
onAdLoaded: (ad) {
print('$ad loaded.');
/// Keep a reference to the ad so you can show it later.
_rewardedAdTurbo.rewardedAd = ad;
isRewardedAdReady = true;
},
onAdFailedToLoad: (error) {
isRewardedAdReady = false;
print('RewardedAd failed to load: $error');
loadAd();
});
}
loadRewardedInterstitialAdTurbo :
loadAd() async{
await _rewardedInterstitialAdTurbo.loadRewardedInterstitialAdTurbo(adUnitId: AdTurboAdHelper.rewardedInterstitial,
onAdLoaded: (ad) {
print('$ad loaded.');
/// Keep a reference to the ad so you can show it later.
_rewardedInterstitialAdTurbo.rewardedInterstitial = ad;
isRewardedInterstitialAdReady = true;
},
onAdFailedToLoad: (error) {
isRewardedInterstitialAdReady = false;
print('RewardedInterstitialAd failed to load: $error');
loadAd();
});
}
loadAppOpenAdTurbo :
loadAd() async{
await _appOpenAdTurbo.loadAppOpenAdTurbo(
adUnitId: AdTurboAdHelper.appOpenAdUnitId,
orientation: AppOpenAdTurbo.orientationPortrait,
onAdLoaded: (ad) {
print('$ad loaded');
_appOpenAdTurbo.appOpenAd = ad;
isAppOpenAdAdReady = true;
},
onAdFailedToLoad: (error) {
isAppOpenAdAdReady = false;
print('AppOpenAd failed to load: $error');
loadAd();
},
);
}
loadNativeSmallAdTurbo :
loadAd() async{
await _nativeAdTurbo.loadNativeSmallAdTurbo(
adUnitId: AdTurboAdHelper.nativeAdvancedAdUnitId,
/// Called when an ad is successfully received.
onAdLoaded: (ad) {
print('Ad loaded.');
isNativeSmallAdReady = true;
setState(()=>"");
},
/// Called when an ad request failed.
onAdFailedToLoad:(ad, error) {
isNativeSmallAdReady = false;
/// Dispose the ad here to free resources.
ad.dispose();
print('Ad load failed (code=${error.code} message=${error.message})');
loadAd();
},
/// Called when an ad opens an overlay that covers the screen.
onAdOpened: (ad) => print('Ad opened.'),
/// Called when an ad removes an overlay that covers the screen.
onAdClosed: (ad) => print('Ad closed.'),
/// Called when an impression occurs on the ad.
onAdImpression: (ad) => print('Ad impression.'),
/// Called when a click is recorded for a NativeAd.
onNativeAdClicked: (ad) => print('Ad clicked.'));
}
loadNativeMediumAdTurbo :
loadAd() async{
await _nativeAdTurbo.loadNativeMediumAdTurbo(
adUnitId: AdTurboAdHelper.nativeAdvancedAdUnitId,
/// Called when an ad is successfully received.
onAdLoaded: (ad) {
print('Ad loaded.');
isNativeMediumAdReady = true;
setState(()=>"");
},
/// Called when an ad request failed.
onAdFailedToLoad:(ad, error) {
isNativeMediumAdReady = false;
/// Dispose the ad here to free resources.
ad.dispose();
print('Ad load failed (code=${error.code} message=${error.message})');
loadAd();
},
/// Called when an ad opens an overlay that covers the screen.
onAdOpened: (ad) => print('Ad opened.'),
/// Called when an ad removes an overlay that covers the screen.
onAdClosed: (ad) => print('Ad closed.'),
/// Called when an impression occurs on the ad.
onAdImpression: (ad) => print('Ad impression.'),
/// Called when a click is recorded for a NativeAd.
onNativeAdClicked: (ad) => print('Ad clicked.'));
}
loadNativeVideoAdTurbo :
loadAd() async{
await _nativeAdTurbo.loadNativeVideoAdTurbo(nativeVideoID: AdTurboAdHelper.nativeAdvancedVideoAdUnitId);
}