Adding Banner ad Admob in Android studio

k bharadwaj picture k bharadwaj · Jan 26, 2017 · Viewed 7.4k times · Source

Please help me. This code isn't working when I add admob to my programm. May be I'm using it the wrong way. Please suggest me editing of the code with banner ad admob. Where should I add admob code? There is no error in Debug but app is not running Cannot load app. Thank you.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nvg_drawer);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open,    R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        mYoutubeDataApi = new YouTube.Builder(mTransport, mJsonFactory, null)
                .setApplicationName(getResources().getString(R.string.app_name))
                .build();

        youtubePlaylist = getString(R.string.playlist_1);
        token = null;
        listVideoInfo = null;
        listViewVideo = (ListView) findViewById(R.id.list_view_video);
        listViewVideo.setOnItemClickListener(onItemClickListener);

        setTitle(getIntent().getStringExtra("USER_NAME"));
        loadPlayList();

        mAdView = (AdView) findViewById(R.id.ad_view);
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice("55DBCB068B472972E7ABC20D047D27E4")// Add your real device id here
                .build();
        // Start loading the ad in the background.
        mAdView.loadAd(adRequest);
    }

    /**
     * Called when leaving the activity
     */
    @Override
    public void onPause() {
        if (mAdView != null) {
            mAdView.pause();
        }
        super.onPause();
    }

    /**
     * Called when returning to the activity
     */
    @Override
    public void onResume() {
        super.onResume();
        if (mAdView != null) {
            mAdView.resume();
        }
    }

    /**
     * Called before the activity is destroyed
     */
    @Override
    public void onDestroy() {
        if (mAdView != null) {
            mAdView.destroy();
        }
        super.onDestroy();
    }
    

    private void loadPlayList(){
        new GetPlaylistAsyncTask(mYoutubeDataApi, getApplicationContext()) {
            int numbersPage;
            @Override
            protected void onProgressUpdate(final Integer... values) {
                super.onProgressUpdate(values);
                numbersPage = values[0] / 10;
            }

            @Override
            public void onPostExecute(Pair<String, List<VideoInfo>> result) {
                token=result.first;
                if(listVideoInfo ==null) {
                    listVideoInfo = result.second;
                    adapterVideo=new AdapterVideo(getApplicationContext(), listVideoInfo);
                    listViewVideo.setAdapter(adapterVideo);
                    listViewVideo.setOnScrollListener(new InfiniteScrollListener(1,numbersPage) {
                        @Override
                        public void onReloadItems(int pageToRequest) {
                            loadPlayList();
                        }

                        @Override
                        public void onReloadFinished() {

                        }
                    });
                }
                else {
                    listVideoInfo.addAll(result.second);
                    adapterVideo.notifyDataSetChanged();
                }
            }
        }.execute(youtubePlaylist, token);
    }

    AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,  long id) {
            Intent intent = new Intent(getApplicationContext(),      YtbActivity.class);
            intent.putExtra("VIDEO_ID", listVideoInfo.get(position).getId());
            startActivity(intent);
        }
    };

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }

    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.pl_list1) {
            youtubePlaylist = getString(R.string.playlist_1);
            listVideoInfo =null;
            token=null;
            loadPlayList();
        } else if (id == R.id.pl_list2) {
            youtubePlaylist = getString(R.string.playlist_2);
            listVideoInfo =null;
            token=null;
            loadPlayList();
        } else if (id == R.id.pl_list3) {
            youtubePlaylist = getString(R.string.playlist_3);
            listVideoInfo =null;
            token=null;
            loadPlayList();
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
   }

Activity_main.xml

 <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context=".MainActivity">
    
        <RelativeLayout
            android:id="@+id/main_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <android.support.design.widget.CoordinatorLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@+id/ad_view">
    
                <android.support.design.widget.AppBarLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:theme="@style/AppTheme.AppBarOverlay">
    
                    <android.support.v7.widget.Toolbar
                        android:id="@+id/toolbar"
                        android:layout_width="match_parent"
                        android:layout_height="?attr/actionBarSize"
                        android:background="?attr/colorPrimary"
                        app:layout_scrollFlags="scroll|enterAlways"
                        app:popupTheme="@style/AppTheme.PopupOverlay" />
    
    
                </android.support.design.widget.AppBarLayout>
    
                <ListView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/list_view_video">
    
                </ListView>
    
            </android.support.design.widget.CoordinatorLayout>
    
            <com.google.android.gms.ads.AdView
                android:id="@+id/ad_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_alignParentBottom="true"
                ads:adSize="BANNER"
                ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
            </com.google.android.gms.ads.AdView>
    
        </RelativeLayout>
        </android.support.design.widget.CoordinatorLayout>

Answer

Laurent picture Laurent · Jan 26, 2017

You just need to have something like this in your activity :

 AdView adView = (AdView)findViewById(R.id.adView);
 AdRequest adRequest = new AdRequest.Builder().build();
 adView.loadAd(adRequest);     

A view with your add :

<RelativeLayout> 
 ...
    <com.google.android.gms.ads.AdView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
        android:id="@+id/adView">
    </com.google.android.gms.ads.AdView>

</RelativeLayout> 

The ad activity in your AndroidManifest.xml :

<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent"/>

And don't forget the permissions in your AndroidManifest.xml :

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Store your Ad Unit ID in your strings.xml file. The ID below is just for testing, make sure to change it before you publish your app.

<?xml version="1.0" encoding="utf-8"?>
<resources>    
    <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
</resources>

Check all this and it should works.