Library Helper For Implementation All Admob Function
Language:
Owner:
Contributors:
License:
Description:
About This Project
- Available on Google Dev Library - Click Here
- Privacy Policy Click Here
- LICENSE Click Here
- Helper for activating admob
- Example Source Code For Call Method Show Admob
- Calling method on Inheritance Class
- Implement all Admob Version
- Jetpack Compose Function (Experimental)
- Don't forget implement frogo-sdk Click Here
Note For Jitpack Build
- Red : Failed (So don't use that version / Using previous version)
- Green : Success / Pass (Use It)
ScreenShot Apps
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
![]() |
![]() |
![]() |
Version Release
$version_release = 4.3.9 // Suport Library $admob_version = 20.6.0 $unity_ad_version = 4.1.0
* Enhance Performance * * Refactoring Code * * Update Admob Library Version 20.6.0 * * Update : Adding Function Request Admob From Server * * Add FrogoSdkAdmobActivity * * New Setup Implementation * * Fixing Bug : ShowBanner, ShowInterstitial, ShowRewarded * * Adding Unity Ads * * Add http timeout millis for google admob interstitial ad * * Add keyword for google admob ad *
How To Use / Implement This Project
Step 1. Add the JitPack repository to your build file
// Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
// Add it in your root build.gradle.kts at the end of repositories: allprojects { repositories { ... maven("https://jitpack.io") } }
Step 2. Add the dependency
dependencies { // library google admob implementation 'com.google.android.gms:play-services-ads:${admob_version}' // library unity ads implementation 'com.unity3d.ads:unity-ads:${unity_ad_version}' // library frogo-admob-helper implementation 'com.github.amirisback:frogo-admob:4.3.9' }
dependencies { // library google admob implementation("com.google.android.gms:play-services-ads:${admob_version}") // library unity ads implementation("com.unity3d.ads:unity-ads:${unity_ad_version}") // library frogo-admob implementation("com.github.amirisback:frogo-admob:4.3.9") }
Step 3. Adding meta-data on AndroidManifest.xml
<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-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/> </application> </manifest>
Step 4. Setup Admob and Showing Ads
XML
Click for detail!
Setup Ads Using Server
class <YourActivity> : FrogoAdmobActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) requestAdmobApi() } private fun requestAdmobApi() { val baseUrl = "https://raw.githubusercontent.com/amirisback/frogo-admob/master/app/src/main/assets/" val frogoAdmobRepository = FrogoAdmobRepository(baseUrl) frogoAdmobRepository.usingClient() frogoAdmobRepository.getFrogoAdmobId( "admob_id", object : FrogoAdmobApiResponse<FrogoAdmobId> { override fun onSuccess(data: FrogoAdmobId) { runOnUiThread { showLogDebug(data.appId) showLogDebug(data.bannerID[0]) showLogDebug(data.interstitialID[0]) showLogDebug(data.testAdmobAppId) showLogDebug(data.testAdmobBanner) showLogDebug(data.testAdmobInterstitial) } } override fun onFailed(statusCode: Int, errorMessage: String?) { runOnUiThread { showLogDebug(errorMessage) } } override fun onShowProgress() { } override fun onHideProgress() { } }) } }
Showing Ads
class <YourActivity> : FrogoAdmobActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setupButtonClick() setupBannerAds() } ... ... ... private fun setupBannerAds() { showBanner(binding.adsXml.adsPhoneTabSpecialSmartBanner) showBannerContainer( getString(R.string.admob_banner), AdSize.SMART_BANNER, binding.includeAdsView.frogoAdsBanner ) } private fun setupButtonClick() { binding.apply { btnInterstitial.setOnClickListener { // No Using Callback showAdInterstitial(getString(R.string.admob_interstitial)) // With Callback showAdInterstitial( getString(R.string.admob_interstitial), object : IFrogoInterstitial { override fun onAdDismissed(message: String) { frogoStartActivity<MainActivity>() finish() } override fun onAdFailedToLoad(errorMessage: String) { frogoStartActivity<MainActivity>() finish() } override fun onAdFailedToShow(errorMessage: String) { frogoStartActivity<MainActivity>() finish() } override fun onAdLoaded(message: String) {} override fun onAdShowed(message: String) {} override fun onAdNotReady(message: String) { frogoStartActivity<MainActivity>() finish() } } ) } btnRewarded.setOnClickListener { showAdRewarded(getString(R.string.admob_rewarded), object : IFrogoAdRewarded { override fun onUserEarnedReward(rewardItem: RewardItem) { // TODO("User Get Reward") } override fun onAdClosed() { // TODO("Not yet implemented") } override fun onAdFailedToLoad() { // TODO("Not yet implemented") } override fun onAdFailedToShow() { // TODO("Not yet implemented") } override fun onAdLoaded() { // TODO("Not yet implemented") } override fun onAdNotReady(message: String) { // TODO("Not yet implemented") } }) } btnRewardedInterstitial.setOnClickListener { showAdRewardedInterstitial(getString(R.string.admob_rewarded_interstitial), object : IFrogoAdRewarded { override fun onUserEarnedReward(rewardItem: RewardItem) { // TODO("User Get Reward") } override fun onAdClosed() { // TODO("Not yet implemented") } override fun onAdFailedToLoad() { // TODO("Not yet implemented") } override fun onAdFailedToShow() { // TODO("Not yet implemented") } override fun onAdLoaded() { // TODO("Not yet implemented") } override fun onAdNotReady(message: String) { // TODO("Not yet implemented") } }) } } } }
Jetpack Compose
Click for detail!
ComposeActivity
class ComposeActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { FrogoAdmobTheme { // A surface container using the 'background' color from the theme Surface(color = MaterialTheme.colors.background) { Column { FrogoAdmobBannerView( mAdUnitID = getString(R.string.admob_banner), mAdSize = adsize_banner ) } } } } } }
Hybrid (Jetpack Compose + XML)
Click for detail!
XML Layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mvvm.main.MainActivity"> <androidx.compose.ui.platform.ComposeView android:id="@+id/compose_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/include_ads_view"/> <include android:id="@+id/include_ads_view" layout="@layout/ads_phone_tab_special_smart_banner" /> </RelativeLayout>
Kotlin Class
class HybridActivity : BaseActivity<ActivityHybridBinding>() { override fun setupViewBinding(): ActivityHybridBinding { return ActivityHybridBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding.apply { composeView.setContent { Greeting("FrogoAdmob") } setupShowAdsBanner(includeAdsView.adsPhoneTabSpecialSmartBanner) } } @Composable fun Greeting(name: String) { Text(text = "Hello $name!") } }
Java Sample Implementation
- You can follow sample below or go to Full Sample Code Full Code
Click for detail!
Setup Java BaseActivity
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } }
Setup Your Activity
public class MainJavaActivity extends BaseJavaActivity { private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); showBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner); hideButton(); setupButtonClick(); } ... ... ... private void setupButtonClick() { binding.btnInterstitial.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showAdInterstitial(getString(R.string.admob_interstitial)) } }); binding.btnRewarded.setOnClickListener(view -> showAdRewarded(getString(R.string.admob_rewarded), new IFrogoAdRewarded() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { } @Override public void onAdClosed() { } @Override public void onAdFailedToLoad() { } @Override public void onAdFailedToShow() { } @Override public void onAdLoaded() { } @Override public void onAdNotReady(@NonNull String message) { } })); binding.btnRewardedInterstitial.setOnClickListener(view -> showAdRewardedInterstitial(getString(R.string.admob_rewarded_interstitial), new IFrogoAdRewarded() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { } @Override public void onAdClosed() { } @Override public void onAdFailedToLoad() { } @Override public void onAdFailedToShow() { } @Override public void onAdLoaded() { } @Override public void onAdNotReady(@NonNull String message) { } })); } }
List Function FrogoAdmobActivity and FrogoSdkAdmobActivity
// Show Ad Consent fun showAdConsent() // --------------------------------------------------------------------------------------------- // Show Banner Ads fun showAdBanner(mAdView: AdView) // Show Banner Ads with timeout millisecond fun showAdBanner(mAdView: AdView, timeoutMilliSecond: Int) // Show Banner Ads with keyword fun showAdBanner(mAdView: AdView, keyword: List<String>) // Show Banner Ads with timeout millisecond and keyword fun showAdBanner(mAdView: AdView, timeoutMilliSecond: Int, keyword: List<String>) // Show Banner Ads with timeout millisecond and keyword and callback fun showAdBanner( mAdView: AdView, timeoutMilliSecond: Int, keyword: List<String>, callback: IFrogoAdBanner ) // Show Banner Ads with callback fun showAdBanner(mAdView: AdView, callback: IFrogoAdBanner) // Show Banner Ads with timeout millisecond and callback fun showAdBanner(mAdView: AdView, timeoutMilliSecond: Int, callback: IFrogoAdBanner) // Show Banner Ads with and keyword and callback fun showAdBanner(mAdView: AdView, keyword: List<String>, callback: IFrogoAdBanner) // --------------------------------------------------------------------------------------------- // Show Banner Ads with container fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, ) // Show Banner Ads with container and timeout millisecond fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, timeoutMilliSecond: Int, ) // Show Banner Ads with container and keyword fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, keyword: List<String>, ) // Show Banner Ads with container and keyword and timeout millisecond fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, timeoutMilliSecond: Int, keyword: List<String> ) // Show Banner Ads with container and callback fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, callback: IFrogoAdBanner ) // Show Banner Ads with container and timeout millisecond and callback fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, timeoutMilliSecond: Int, callback: IFrogoAdBanner ) // Show Banner Ads with container and keyword and callback fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, keyword: List<String>, callback: IFrogoAdBanner ) // Show Banner Ads with container and timeout millisecond and keyword and callback fun showAdBannerContainer( bannerAdUnitId: String, mAdsSize: AdSize, container: RelativeLayout, timeoutMilliSecond: Int, keyword: List<String>, callback: IFrogoAdBanner ) // --------------------------------------------------------------------------------------------- // Show Interstitial Ads with timeout millisecond, keyword, callback fun showAdInterstitial( interstitialAdUnitId: String, timeoutMilliSecond: Int, keyword: List<String>, callback: IFrogoAdInterstitial ) // Show Interstitial Ads with timeout millisecond and keyword fun showAdInterstitial( interstitialAdUnitId: String, timeoutMilliSecond: Int, keyword: List<String> ) // Show Interstitial Ads with timeout millisecond fun showAdInterstitial( interstitialAdUnitId: String, timeoutMilliSecond: Int ) // Show Interstitial Ads with keyword fun showAdInterstitial( interstitialAdUnitId: String, keyword: List<String> ) // Show Interstitial Ads fun showAdInterstitial(interstitialAdUnitId: String) // Show Interstitial Ads with timeout milliSecond and callback fun showAdInterstitial( interstitialAdUnitId: String, timeoutMilliSecond: Int, callback: IFrogoAdInterstitial ) // Show Interstitial Ads with keyword and callback fun showAdInterstitial( interstitialAdUnitId: String, keyword: List<String>, callback: IFrogoAdInterstitial ) // Show Interstitial Ads with callback fun showAdInterstitial( interstitialAdUnitId: String, callback: IFrogoAdInterstitial ) // --------------------------------------------------------------------------------------------- // Show Rewarded Ads fun showAdRewarded(mAdUnitIdRewarded: String, callback: IFrogoAdRewarded) // Show Rewarded Ads with timeout millisecond fun showAdRewarded( mAdUnitIdRewarded: String, timeoutMilliSecond: Int, callback: IFrogoAdRewarded ) // Show Rewarded Ads with keyword fun showAdRewarded( mAdUnitIdRewarded: String, keyword: List<String>, callback: IFrogoAdRewarded ) // Show Rewarded Ads with timeout millisecond and keyword fun showAdRewarded( mAdUnitIdRewarded: String, timeoutMilliSecond: Int, keyword: List<String>, callback: IFrogoAdRewarded ) // --------------------------------------------------------------------------------------------- // Show Rewarded Interstitial Ads fun showAdRewardedInterstitial( mAdUnitIdRewardedInterstitial: String, callback: IFrogoAdRewarded ) // Show Rewarded Interstitial Ads with timeout millisecond fun showAdRewardedInterstitial( mAdUnitIdRewardedInterstitial: String, timeoutMilliSecond: Int, callback: IFrogoAdRewarded ) // Show Rewarded Interstitial Ads with keyword fun showAdRewardedInterstitial( mAdUnitIdRewardedInterstitial: String, keyword: List<String>, callback: IFrogoAdRewarded ) // Show Rewarded Interstitial Ads with timeout millisecond and keyword fun showAdRewardedInterstitial( mAdUnitIdRewardedInterstitial: String, timeoutMilliSecond: Int, keyword: List<String>, callback: IFrogoAdRewarded ) // --------------------------------------------------------------------------------------------- // Unity Ads fun setupUnityAdApp( testMode: Boolean, unityGameId: String ) fun setupUnityAdApp( testMode: Boolean, unityGameId: String, callback: IFrogoUnityAdInitialization ) fun showUnityAdInterstitial( adInterstitialUnitId: String ) fun showUnityAdInterstitial( adInterstitialUnitId: String, callback: IFrogoUnityAdInterstitial ) // --------------------------------------------------------------------------------------------- fun showAdmobXUnityAdInterstitial( admobInterstitialId: String, unityInterstitialId: String, callback: IFrogoMixedAdsInterstitial ) fun showUnityXAdmobAdInterstitial( admobInterstitialId: String, unityInterstitialId: String, callback: IFrogoMixedAdsInterstitial )
Jetpack Compose Element
Variable
val adsize_banner: AdSize = AdSize.BANNER val adsize_full_banner: AdSize = AdSize.FULL_BANNER val adsize_large_banner: AdSize = AdSize.LARGE_BANNER val adsize_smart_banner: AdSize = AdSize.SMART_BANNER val adsize_medium_rectangle: AdSize = AdSize.MEDIUM_RECTANGLE val adsize_wide_skycraper: AdSize = AdSize.WIDE_SKYSCRAPER
Function
@Composable fun FrogoAdmobBannerView( mAdUnitID: String, mAdSize: AdSize, modifier: Modifier = Modifier ) { AndroidView( modifier = modifier.fillMaxWidth(), factory = { context -> showLogDebug("FrogoAdmobBannerView") AdView(context).apply { adSize = mAdSize adUnitId = mAdUnitID loadAd(AdRequest.Builder().build()) } } ) }
Allert
Update
>> on version 3.0.0 - import com.frogobox.admob.core.FrogoRvConstant - import com.frogobox.admob.core.admob.FrogoAdmob - import com.frogobox.admob.core.admob.FrogoAdmobActivity - import com.frogobox.admob.core.FrogoAdmobViewHolder - import com.frogobox.admob.core.FrogoAdmobViewAdapter - import com.frogobox.admob.core.AdmobViewHolder >> on version 4.0.0 - import com.frogobox.admob.core.FrogoRvConstant - import com.frogobox.admob.core.FrogoAdmob - import com.frogobox.admob.ui.FrogoAdmobActivity - import com.frogobox.admob.widget.FrogoAdmobViewHolder - import com.frogobox.admob.widget.FrogoAdmobViewAdapter - import com.frogobox.admob.widget.AdmobViewHolder >> on Version 4.2.0 - Add FrogoSdkAdmobActivity - New Setup Implementation - Fixing Bug : ShowBanner, ShowInterstitial, ShowRewarded >> on Version 4.2.6 + - Add Unity Ads - Basic Interstitial
Test Ads From Google
// Declaration admob id for debug def debugAdmobAppId = "ca-app-pub-3940256099942544~3347511713" def debugAdmobBanner = "ca-app-pub-3940256099942544/6300978111" def debugAdmobInterstitial = "ca-app-pub-3940256099942544/1033173712" def debugAdmobInterstitialVideo = "ca-app-pub-3940256099942544/8691691433" def debugAdmobRewarded = "ca-app-pub-3940256099942544/5224354917" def debugAdmobRewardedInterstitial = "ca-app-pub-3940256099942544/5354046379" def debugAdmobNativeAdvanced = "ca-app-pub-3940256099942544/2247696110" def debugAdmobNativeAdvancedVideo = "ca-app-pub-3940256099942544/1044960115"
Colaborator
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
- Mail To [email protected]
- Subject : Github _ [Github-Username-Account] _ [Language] _ [Repository-Name]
- Example : Github_amirisback_kotlin_admob-helper-implementation
Name Of Contribute - Muhammad Faisal Amir - Waiting List - Waiting List
Waiting for your contribute
Source
- Google Sample Code Click Here
- Test Ads Click Here
- For Get Started Click Here
Attention !!!
Please enjoy and don't forget fork and give a star - Don't Forget Follow My Github Account