I try to add an Interstitial ads, the problem is that i have 2 code to change.
The 2 codes to change in my MainActivity:
But in my admob account, I can only find the ca-app-pub-xxxxx....xx code and I can't find the ID_INTERSTITIAL_UNIT_ID.
Can any body please show me where to find the second one?
I tried to put the same links in the two code but I am afraid of being banned from admob.
You will need only <string name="interstitial_ad_unit_id">ca-app-pub-3940256099942544/1033173712</string>
and do this on you onCreate() method
//region Interstitial
String interstitialAdId=getResources().getString(R.string.interstitial_ad_unit_id);
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(interstitialAdId);
mInterstitialAd.setAdListener(new AdListener() {
#Override
public void onAdClosed()
{
}
});
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequest);
//endregion
then add
if (mInterstitialAd.isLoaded())
mInterstitialAd.show();
where you want to start the Interstitial
Related
I need some help the problem is that when Interstitial ads open and when it closes it unloads the loaded ad from the variable I am using for displaying Interstitial ADS , my question is can I stop it from unloading the ads ? If yes then how can I do it?
This is normal.
Same add can be displayed only once. After it is closed, you must request a new one. You can use same InterstitialAd object to request a new AD. However, you really must load a new one.
You can create an AdListener and check when the add is closed. This way, you can request a new one.
In AdMob's DOC page, you can find some examples:
public class MainActivity extends ActionBarActivity {
InterstitialAd mInterstitialAd;
#Override
protected void onCreate(Bundle savedInstanceState) {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("AD UNIT ID");
mInterstitialAd.setAdListener(new AdListener() {
#Override
public void onAdClosed() {
requestNewInterstitial();
}
});
requestNewInterstitial();
}
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
.build();
mInterstitialAd.loadAd(adRequest);
}
}
What's the behavior of the admob interstitial after an error occurs? It automatically retries to reload the data or not?
In other words I have to write something like:
mInterstitialAd.setAdListener(new AdListener(){
//ERROR MANAGEMENT
#Override
public void onAdFailedToLoad(int error) {
mInterstitialAd.loadAd(adRequest);//Retry
}
});
Or admob auto-retry to load ad?
in case of error loading interstitial ad, try this code in your adListener's onAdFailedToLoad method :
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequest);
this will create a new request for ad.
My question is that Admob Interstitial ad is displaying in testing mode but if app is released then ad is not displayed.
like i use
AdRequest mAdRequest;
mAdRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
`enter code here`.addTestDevice("12312132654654232").build();
but at the time releasing app i used code like this-
AdRequest mAdRequest;
mAdRequest = new AdRequest.Builder().build();
enter code here
this line not show ad.
Did you use these line in your code
first...
private InterstitialAd interstitial;
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId(MY_AD_UNIT_ID);
then use this lines of code
// Create ad request.
AdRequest adRequest = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest);
and whenever you want to show add call this method
// Invoke displayInterstitial() when you are ready to display an interstitial.
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
hope this will help you.
i want to have an admob interstitial ad show up when the user first opens the app or when the user navigates to another app (like browser) and then returns to my app. This is my current code for interstital ad, this code is entirely contained inside the OnCreate method.
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ca-app-pub-XXXXXXXXXXXXXXXX");
// Create ad request.
AdRequest adRequest2 = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest2);
interstitial.setAdListener(new AdListener() {
#Override
public void onAdLoaded() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
});
This seems to work for most situations, but on certain devices this will create a loop of interstitial showing 2-3 sec after they are dismissed by the user. one of those device that has the loop is a Galaxy Tab3 . i cant seem to figure out a proper way to setup my code so that this behavior does not happen on any device.
Use the following code to display the interstitial ad when appstarts.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("***********");
AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
displayInterstitial();
}
});
}
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
Create a boolean var to assist with it..
boolean ad_shown = false;
When you do .show() turn the variable to true.
Don't forget to put a guard on the if
if (interstitial.isLoaded() && !ad_shown) {
i wanted to call the Admob interstitials? multiple time in my Android app. i am tottally confusing this things.
interstitial = new InterstitialAd(this, "ID");
final AdRequest adRequest = new AdRequest();
interstitial.loadAd(adRequest);
interstitial.setAdListener(this);
i am tried this code this works fine for one time call. when it will call second time show me error.
help me out this.
thanks in advance.
You need to separate out construction of the Interstitial, loading the ad and showing the ad.
public void onCreate(Bundle savedInstanceState) {
interstitial = new InterstitialAd(this, "MY-AD-ID");
interstitial.setAdListener(new AdListsner() {
..
});
}
private void loadAd() {
final AdRequest adRequest = new AdRequest();
interstitial.loadAd(adRequest);
}
private void showAd() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}