Bot releases are visible (Hide)
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.8
// Suport Library
$admob_version = 20.6.0
$unity_ad_version = 4.0.1
What's New??
* 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 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")
}
}
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.2.8'
}
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.2.8")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.7
// Suport Library
$admob_version = 20.6.0
$unity_ad_version = 4.0.1
What's New??
* 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 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")
}
}
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.2.7'
}
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.2.7")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.6
What's New??
* 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 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")
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.6'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.6")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.5
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.5'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.5")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.4
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.4'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.4")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToLoad(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToShow(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdLoaded(message: String) {}
override fun onAdShowed(message: String) {}
override fun onAdNotReady(message: String) {
baseStartActivity<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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.3
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.3'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.3")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToLoad(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToShow(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdLoaded(message: String) {}
override fun onAdShowed(message: String) {}
override fun onAdNotReady(message: String) {
baseStartActivity<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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.2
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.2'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.2")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToLoad(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToShow(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdLoaded(message: String) {}
override fun onAdShowed(message: String) {}
override fun onAdNotReady(message: String) {
baseStartActivity<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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.1
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.1'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.1")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToLoad(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdFailedToShow(errorMessage: String) {
baseStartActivity<MainActivity>()
finish()
}
override fun onAdLoaded(message: String) {}
override fun onAdShowed(message: String) {}
override fun onAdNotReady(message: String) {
baseStartActivity<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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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) {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.2.0
What's New??
* 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 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.2.0'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.2.0")
}
<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>
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 {
FLog.d(data.appId)
FLog.d(data.bannerID[0])
FLog.d(data.interstitialID[0])
FLog.d(data.testAdmobAppId)
FLog.d(data.testAdmobBanner)
FLog.d(data.testAdmobInterstitial)
}
}
override fun onFailed(statusCode: Int, errorMessage: String?) {
runOnUiThread {
FLog.d(errorMessage)
}
}
override fun onShowProgress() {
}
override fun onHideProgress() {
}
})
}
}
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 onAdClosed() {
baseStartActivity<MainActivity>()
}
override fun onAdFailedToLoad() {
baseStartActivity<MainActivity>()
}
override fun onAdFailedToShow() {
baseStartActivity<MainActivity>()
}
override fun onAdLoaded() {
}
}
)
}
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")
}
})
}
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")
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
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() {
}
}));
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() {
}
}));
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.9
What's New??
* Enhance Performance *
* Refactoring Code *
* Update Admob Library Version 20.6.0 *
* Update : Adding Function Request Admob From Server *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.9'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.9")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setApp()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setApp() {
setupAdsApp(getString(R.string.admob_app_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
// setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
setupBannerAds()
}
...
...
...
private fun setupBannerAds() {
setupShowAdsBannerContainer(
this,
AdSize.SMART_BANNER,
binding.includeAdsView.frogoAdsBanner
)
setupShowAdsBanner(binding.adsXml.adsPhoneTabSpecialSmartBanner)
}
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
// setupShowAdsInterstitial()
val listener = object : IFrogoAdListener.Interstitial {
override fun onAdFailedToLoad(adError: LoadAdError) {
showToast("Gagal Iklan")
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
}
}
FrogoAdmob.Interstitial.setupInterstitial(this@MainActivity, "", listener)
FrogoAdmob.Interstitial.showInterstitial(this@MainActivity, listener)
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setApp();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setApp() {
// Your App ID
setupAdsApp(getString(R.string.admob_app_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.8
What's New??
* Enhance Performance *
* Refactoring Code *
* Update Admob Library Version 20.6.0 *
* Update : Adding Function Request Admob From Server *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.8'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.8")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setApp()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setApp() {
setupAdsApp(getString(R.string.admob_app_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
// setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
setupBannerAds()
}
...
...
...
private fun setupBannerAds() {
setupShowAdsBannerContainer(
this,
AdSize.SMART_BANNER,
binding.includeAdsView.frogoAdsBanner
)
setupShowAdsBanner(binding.adsXml.adsPhoneTabSpecialSmartBanner)
}
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
// setupShowAdsInterstitial()
val listener = object : IFrogoAdListener.Interstitial {
override fun onAdFailedToLoad(adError: LoadAdError) {
showToast("Gagal Iklan")
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
}
}
FrogoAdmob.Interstitial.setupInterstitial(this@MainActivity, "", listener)
FrogoAdmob.Interstitial.showInterstitial(this@MainActivity, listener)
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setApp();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setApp() {
// Your App ID
setupAdsApp(getString(R.string.admob_app_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// 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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.7
What's New??
* Enhance Performance *
* Refactoring Code *
* Update Admob Library Version 20.6.0 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.7'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.7")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setPublisher()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setPublisher() {
setupAdsPublisher(getString(R.string.admob_publisher_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
// setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
setupBannerAds()
}
...
...
...
private fun setupBannerAds() {
setupShowAdsBannerContainer(
this,
AdSize.SMART_BANNER,
binding.includeAdsView.frogoAdsBanner
)
setupShowAdsBanner(binding.adsXml.adsPhoneTabSpecialSmartBanner)
}
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
// setupShowAdsInterstitial()
val listener = object : IFrogoAdListener.Interstitial {
override fun onAdFailedToLoad(adError: LoadAdError) {
showToast("Gagal Iklan")
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
}
}
FrogoAdmob.Interstitial.setupInterstitial(this@MainActivity, "", listener)
FrogoAdmob.Interstitial.showInterstitial(this@MainActivity, listener)
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setPublisher();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setPublisher() {
// Your App ID
setupAdsPublisher(getString(R.string.admob_publisher_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// Declaration admob id for debug
def debugAdmobPublisherId = "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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.6
What's New??
* Enhance Performance *
* Refactoring Code *
* Update Admob Library Version 20.5.0 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.6'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.6")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setPublisher()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setPublisher() {
setupAdsPublisher(getString(R.string.admob_publisher_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
}
...
...
...
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
setupShowAdsInterstitial()
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setPublisher();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setPublisher() {
// Your App ID
setupAdsPublisher(getString(R.string.admob_publisher_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// Declaration admob id for debug
def debugAdmobPublisherId = "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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback over 2 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.5
What's New??
* Enhance Performance *
* Refactoring Code *
* Update Admob Library Version 20.5.0 *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.5'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.5")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setPublisher()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setPublisher() {
setupAdsPublisher(getString(R.string.admob_publisher_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
}
...
...
...
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
setupShowAdsInterstitial()
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setPublisher();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setPublisher() {
// Your App ID
setupAdsPublisher(getString(R.string.admob_publisher_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// Declaration admob id for debug
def debugAdmobPublisherId = "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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback almost 3 years ago
Banner and Interstitial | RecyclerView with Banner | Rewarded Apps |
---|---|---|
$version_release = 4.1.4
What's New??
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *
* Update Android Gradle Plugin 7.0.2 *
* Update Admob Library Version 20.5.0 *
* Add Compose Implementation (Experimental) *
* Add Java Sample *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.4'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.4")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setPublisher()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setPublisher() {
setupAdsPublisher(getString(R.string.admob_publisher_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
}
...
...
...
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
setupShowAdsInterstitial()
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
public abstract class <Your BaseJavaActivity> extends FrogoAdmobActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupAdmob();
}
private void setupAdmob(){
setPublisher();
setBanner();
setInterstitial();
setRewarded();
setRewardedInterstitial();
}
private void setPublisher() {
// Your App ID
setupAdsPublisher(getString(R.string.admob_publisher_id));
}
private void setBanner() {
// Your Banner ID
setupAdsBanner(getString(R.string.admob_banner));
}
private void setInterstitial() {
// Your Interstitial ID
setupAdsInterstitial(getString(R.string.admob_interstitial));
}
private void setRewarded() {
// Your Rewarded ID
setupAdsRewarded(getString(R.string.admob_rewarded));
}
private void setRewardedInterstitial() {
// Your Rewarded ID
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial));
}
}
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());
setupShowAdsBanner(binding.includeAdsView.adsPhoneTabSpecialSmartBanner);
hideButton();
setupButtonClick();
}
...
...
...
private void setupButtonClick() {
binding.btnInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsInterstitial();
}
});
binding.btnRewarded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewarded(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
binding.btnRewardedInterstitial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setupShowAdsRewardedInterstitial(new IFrogoAdmob.UserEarned() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
}
});
}
});
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
>> 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
// Declaration admob id for debug
def debugAdmobPublisherId = "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"
Very open to anyone, I'll write your name under this, please contribute by sending an email to me
Name Of Contribute
Waiting for your contribute
Please enjoy and don't forget fork and give a star
Published by amirisback about 3 years ago
$version_release = 4.1.3
What's New??
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *
* Update Android Gradle Plugin 7.0.2 *
* Update Admob Library Version 20.4.0 *
* Add Compose Implementation (Experimental) *
// 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 { url = uri("https://jitpack.io") }
}
}
dependencies {
// library google ads
implementation 'com.google.android.gms:play-services-ads:${latest_version}'
// library frogo-admob-helper
implementation 'com.github.amirisback:frogo-admob:4.1.3'
}
dependencies {
// library google ads
implementation("com.google.android.gms:play-services-ads:${latest_version}")
// library frogo-admob-helper
implementation("com.github.amirisback:frogo-admob:4.1.3")
}
<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>
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
}
private fun setupAdmob(){
setPublisher()
setBanner()
setInterstitial()
setRewarded()
setRewardedInterstitial()
}
private fun setPublisher() {
setupAdsPublisher(getString(R.string.admob_publisher_id))
}
private fun setBanner() {
setupAdsBanner(getString(R.string.admob_banner))
}
private fun setInterstitial() {
setupAdsInterstitial(getString(R.string.admob_interstitial))
}
private fun setRewarded() {
setupAdsRewarded(getString(R.string.admob_rewarded))
}
private fun setRewardedInterstitial() {
setupAdsRewardedInterstitial(getString(R.string.admob_rewarded_interstitial))
}
}
class <YourActivity> : FrogoAdmobActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupAdmob()
setupButtonClick()
}
...
...
...
private fun setupButtonClick() {
binding.apply {
btnInterstitial.setOnClickListener {
setupShowAdsInterstitial()
}
btnRewarded.setOnClickListener {
setupShowAdsRewarded(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
btnRewardedInterstitial.setOnClickListener {
setupShowAdsRewardedInterstitial(object : IFrogoAdmob.UserEarned {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// TODO User Get Reward
}
})
}
}
}
}
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
)
}
}
}
}
}
}
<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>
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!")
}
}
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
@Composable
fun FrogoAdmobBannerView(
mAdUnitID: String,
mAdSize: AdSize,
modifier: Modifier = Modifier
) {
AndroidView(
modifier = modifier.fillMaxWidth(),
factory = { context ->
FLog.d("FrogoAdmobBannerView")
AdView(context).apply {
adSize = mAdSize
adUnitId = mAdUnitID
loadAd(AdRequest.Builder().build())
}
}
)
}
Published by amirisback about 3 years ago
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *
* Update Android Gradle Plugin 7.0.1 *
* Update Admob Library Version 20.3.0 *
Published by amirisback about 3 years ago
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *
* Update Android Gradle Plugin 7.0.1 *
Published by amirisback about 3 years ago
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *
Published by amirisback about 3 years ago
* Enhance Performance *
* Refactoring Code *
* Remove unused code *
* Update documentation *
* Update build.gradle *
* Update sample code *