Admob Banner Ads integration into Libgdx game Android Studio.
1. Create Libgdx Project you can downlaod libgdx setup app from here https://libgdx.badlogicgames.com/download.html

2. After genrate import this project into Android Studio.

3. Right Click on Android Project and select Module Settings and select dependancies tab hit + and add google play service ads .


4. After this Add Admanger Interface using this we can show/Hide our admob Banner on Screen.
public interface AdManager
{
void show();
void hide();
}

5. Add internet usage-Permission and set min sdk version to 9 because after 10.0.1 gms its must be above 8 API. and also change this in your android.module file i.e gradle file

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.INTERNET" />
6. Create AdmobManager class to initialize gms.services i.e. Admob part.

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.RelativeLayout;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class AdmobManager implements AdManager
{
private final int ADSHOW = 1;
private final int ADHIDE = 0;
private final String admobId;
private final String TEST_DEVICE = "Ad Your Test Device id here";// get from log of android studio
public AdView adView = null;
public RelativeLayout.LayoutParams adParams = null;
private Handler handler = new Handler() {
@Override
public void handleMessage( Message msg ) {
switch ( msg.what ) {
case ADSHOW:
adView.setVisibility( View.VISIBLE );
break;
case ADHIDE:
adView.setVisibility( View.GONE );
break;
}
}
};
public AdmobManager( String id )
{
this.admobId = id;
}
public void init( Context context )
{
adParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
);
// adParams.addRule( RelativeLayout.ALIGN_PARENT_BOTTOM ); Shows Ads on Left Bottom
// adParams.addRule( RelativeLayout.ALIGN_PARENT_LEFT );
adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);// Shows Ads on Center Bottom
adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); Shows Ads on Right Bottom
// adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.CENTER_HORIZONTAL); Shows Ads on Center Top
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); Shows Ads on Top Right
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); Shows Ads on Left Top
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
adView = new AdView( context );
adView.setAdSize( AdSize.BANNER );
adView.setAdUnitId( admobId );
AdRequest.Builder requestBuilder = new AdRequest.Builder();
requestBuilder.addTestDevice( TEST_DEVICE );
adView.loadAd( requestBuilder.build() );
}
@Override
public void show() {
handler.sendEmptyMessage( ADSHOW );
}
@Override
public void hide() {
handler.sendEmptyMessage( ADHIDE );
}
}
7. Now Open AndroidLauncher file and intilize the AdmobManger and create Layout for Admob banner.

import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.imiza.mytut.MyGdxGame;
public class AndroidLauncher extends AndroidApplication {
final AndroidLauncher context = this;
final AdmobManager adMob;
final MyGdxGame game;
public AndroidLauncher()
{
adMob = new AdmobManager("Your Admob ad id here");
game = new MyGdxGame(adMob);
}
@Override
protected void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
adMob.init( context );
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useWakelock = true;
View gameView = initializeForView( game, config );
RelativeLayout layout = new RelativeLayout( this );
layout.addView(gameView);
layout.addView( adMob.adView, adMob.adParams );
setContentView( layout );
}
}
8. Finally its time to call ads open mygdxgame.class i.e. your libgdx core game class file and create adManger object to call show()/Hide() method .

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3;
public class MyGdxGame extends ApplicationAdapter
{
final AdManager ads;
SpriteBatch batch;
Texture show,hide;
Rectangle showRectangle,hideRectangle;
Vector3 touchPoint;
OrthographicCamera guiCam;
public MyGdxGame(AdManager adMob)
{
this.ads=adMob;
}
@Override
public void create () {
batch=new SpriteBatch();
guiCam = new OrthographicCamera(800, 1280);
guiCam.position.set(800 / 2,1280 / 2, 0);
touchPoint = new Vector3();
show=new Texture("show.png");// 373*102
hide=new Texture("hide.png");// 377*102
showRectangle=new Rectangle(213.5f,300,373,102);
hideRectangle=new Rectangle(211.5f,500,377,102);
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
guiCam.update();
batch.setProjectionMatrix(guiCam.combined);
batch.begin();
batch.draw(show,213.5f,300);
batch.draw(hide,211.5f,500);
batch.end();
if ( Gdx.input.justTouched() ) {
guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if (showRectangle.contains(touchPoint.x, touchPoint.y))
{
ads.show();
}
if (hideRectangle.contains(touchPoint.x, touchPoint.y))
{
ads.hide();
}
}
}
@Override
public void dispose () {
}
}
Note : just add two images for show/hide button show.png= 373W * 102H,hide.png=377*102
Hope this found helpfull you can get full source code here : https://github.com/imizaStudios/AdmobAdsDemo
Happy Coding.
1. Create Libgdx Project you can downlaod libgdx setup app from here https://libgdx.badlogicgames.com/download.html

2. After genrate import this project into Android Studio.

3. Right Click on Android Project and select Module Settings and select dependancies tab hit + and add google play service ads .


4. After this Add Admanger Interface using this we can show/Hide our admob Banner on Screen.
public interface AdManager
{
void show();
void hide();
}

5. Add internet usage-Permission and set min sdk version to 9 because after 10.0.1 gms its must be above 8 API. and also change this in your android.module file i.e gradle file

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.INTERNET" />
6. Create AdmobManager class to initialize gms.services i.e. Admob part.

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.RelativeLayout;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class AdmobManager implements AdManager
{
private final int ADSHOW = 1;
private final int ADHIDE = 0;
private final String admobId;
private final String TEST_DEVICE = "Ad Your Test Device id here";// get from log of android studio
public AdView adView = null;
public RelativeLayout.LayoutParams adParams = null;
private Handler handler = new Handler() {
@Override
public void handleMessage( Message msg ) {
switch ( msg.what ) {
case ADSHOW:
adView.setVisibility( View.VISIBLE );
break;
case ADHIDE:
adView.setVisibility( View.GONE );
break;
}
}
};
public AdmobManager( String id )
{
this.admobId = id;
}
public void init( Context context )
{
adParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
);
// adParams.addRule( RelativeLayout.ALIGN_PARENT_BOTTOM ); Shows Ads on Left Bottom
// adParams.addRule( RelativeLayout.ALIGN_PARENT_LEFT );
adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);// Shows Ads on Center Bottom
adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); Shows Ads on Right Bottom
// adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.CENTER_HORIZONTAL); Shows Ads on Center Top
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); Shows Ads on Top Right
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
// adParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); Shows Ads on Left Top
// adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
adView = new AdView( context );
adView.setAdSize( AdSize.BANNER );
adView.setAdUnitId( admobId );
AdRequest.Builder requestBuilder = new AdRequest.Builder();
requestBuilder.addTestDevice( TEST_DEVICE );
adView.loadAd( requestBuilder.build() );
}
@Override
public void show() {
handler.sendEmptyMessage( ADSHOW );
}
@Override
public void hide() {
handler.sendEmptyMessage( ADHIDE );
}
}
7. Now Open AndroidLauncher file and intilize the AdmobManger and create Layout for Admob banner.

import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.imiza.mytut.MyGdxGame;
public class AndroidLauncher extends AndroidApplication {
final AndroidLauncher context = this;
final AdmobManager adMob;
final MyGdxGame game;
public AndroidLauncher()
{
adMob = new AdmobManager("Your Admob ad id here");
game = new MyGdxGame(adMob);
}
@Override
protected void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
adMob.init( context );
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useWakelock = true;
View gameView = initializeForView( game, config );
RelativeLayout layout = new RelativeLayout( this );
layout.addView(gameView);
layout.addView( adMob.adView, adMob.adParams );
setContentView( layout );
}
}
8. Finally its time to call ads open mygdxgame.class i.e. your libgdx core game class file and create adManger object to call show()/Hide() method .

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3;
public class MyGdxGame extends ApplicationAdapter
{
final AdManager ads;
SpriteBatch batch;
Texture show,hide;
Rectangle showRectangle,hideRectangle;
Vector3 touchPoint;
OrthographicCamera guiCam;
public MyGdxGame(AdManager adMob)
{
this.ads=adMob;
}
@Override
public void create () {
batch=new SpriteBatch();
guiCam = new OrthographicCamera(800, 1280);
guiCam.position.set(800 / 2,1280 / 2, 0);
touchPoint = new Vector3();
show=new Texture("show.png");// 373*102
hide=new Texture("hide.png");// 377*102
showRectangle=new Rectangle(213.5f,300,373,102);
hideRectangle=new Rectangle(211.5f,500,377,102);
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
guiCam.update();
batch.setProjectionMatrix(guiCam.combined);
batch.begin();
batch.draw(show,213.5f,300);
batch.draw(hide,211.5f,500);
batch.end();
if ( Gdx.input.justTouched() ) {
guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if (showRectangle.contains(touchPoint.x, touchPoint.y))
{
ads.show();
}
if (hideRectangle.contains(touchPoint.x, touchPoint.y))
{
ads.hide();
}
}
}
@Override
public void dispose () {
}
}
Note : just add two images for show/hide button show.png= 373W * 102H,hide.png=377*102
Hope this found helpfull you can get full source code here : https://github.com/imizaStudios/AdmobAdsDemo
Happy Coding.