Hoe inkomsten te genereren met uw Android-apps met AdMob

In deze zelfstudie leert u hoe u AdMob kunt integreren zodat u geld kunt verdienen met die geweldige Android-app die u hebt geschreven. Kom op, wie wil dat niet? AdMob is een van de grootste mobiele advertentieplatforms op de markt en is eigendom van Google.

Er zijn een paar verschillende manieren om inkomsten te genereren met uw apps in Android: betaalde downloads, betaalde abonnementen, in-app-aankopen en door het weergeven van advertenties. Je kunt ze combineren, maar we raden je aan om een ​​enkel model te kiezen. In deze zelfstudie leert u hoe u inkomsten kunt genereren met uw app door advertenties weer te geven. 

Het soort advertenties dat u in deze zelfstudie maakt, zijn banner-, interstitiële en native express-advertenties. Ik zal ze allemaal uitleggen en laten zien hoe ze in uw toepassing kunnen worden geïmplementeerd. Maar laten we eerst eens kijken hoe we de SDK voor mobiele advertenties kunnen integreren en deze kunnen initialiseren. 

Maak een Android Studio-project

Maak in Android Studio een nieuw project met de naam Hoofdactiviteit.

Neem de SDK voor mobiele advertenties op

Als u de integratie van AdMob met uw app wilt beginnen, moet u eerst de SDK voor mobiele advertenties opnemen in uw app-module build.gradle het dossier:

compileren 'com.google.android.gms: play-services-advertenties: 11.0.2'

Als u Firebase gaat integreren in uw app, moet u de SDK gebruiken die deel uitmaakt van Firebase:

compileer 'com.google.firebase: firebase-ads: 11.0.2'

Bekijk de enkele van onze Firebase-zelfstudies hier op Envato Tuts + als je hulp nodig hebt om aan de slag te gaan met Firebase:

Zorg ervoor dat u het project synchroniseert nadat u het de SDK's heeft toegevoegd om de bibliotheken van internet naar uw applicatie te halen. 

Initialiseer MobileAds

U moet de SDK voor mobiele advertenties initialiseren voordat u advertenties in uw Android-app kunt laden, dus doe dit zo snel mogelijk. We maken een klasse die de. Uitbreidt Toepassing klasse, en dan initialiseren we de MobileAds SDK in de onCreate () methode van die klasse, omdat deze methode slechts één keer wordt aangeroepen wanneer de app wordt gestart. 

importeer com.google.android.gms.ads.MobileAds; importeer android.app.Application; openbare klasse-app breidt toepassing uit @Override public void onCreate () super.onCreate (); MobileAds.initialize (this, "ca-app-pub-3940256099942544/6300978111"); 

Het tweede argument dat wordt geleverd aan de statische methode initialiseren () van de MobileAds klasse moet uw AdMob-toepassings-ID zijn die u kreeg toen u zich registreerde voor AdMob. In dit geval gebruiken we de openbare app-ID die door Google wordt geleverd voor demotoepassingen. 

Pas het manifestbestand aan

We moeten de door ons gemaakte toepassingsklasse toevoegen aan het attribuut naamtoewijzingsteken in onze AndroidManifest.xml het dossier. 

  

Zorg er in dit bestand voor dat u ook de INTERNET toestemming zodat mobiele Google-advertenties kunnen worden weergegeven. 

  

In het onderstaande codefragment hebben we het AdActivity naar onze AndroidManifest.xmlbestand binnen de applicatie-tag. 

Deze activiteit wordt geleverd door de SDK. Het is handig in banneradvertenties om de advertentie te activeren die moet worden weergegeven wanneer de gebruiker op de advertentie klikt, terwijl deze voor een interstitial-advertentie wordt gebruikt voor het weergeven van de advertentie wanneer de gebruiker erop klikt.

1. Banneradvertenties

Banneradvertenties beslaan een deel van het momenteel zichtbare scherm. Met andere woorden, alle inhoud in uw app en de advertentie worden samen op het scherm weergegeven. Dit verbetert de gebruikerservaring omdat uw gebruikers uw app kunnen blijven gebruiken terwijl de advertentie wordt weergegeven, in tegenstelling tot een interstitial-advertentie (wacht even, we komen daar binnenkort op terug). Merk op dat een banneradvertentie tekst of een afbeelding kan zijn. 

Laten we kijken hoe een banneradvertentie kan worden geïmplementeerd. 

Voeg een banneradvertentie toe aan uw lay-out

AdView is een gewoonte ViewGroup die de banneradvertentie bevat, dus we moeten onze bewerken activity_banner_ad.xml lay-outbestand om deze weergave op te nemen. 

    

We definiëren de AdView grootte door gebruik te maken van het attribuut advertenties: adSize en instellen op BANNER. Andere beschikbare alternatieven zijn LARGE_BANNERFULL_BANNERSMART_BANNER, enz. 

De advertenties: adUnitId AdView kenmerk is ingesteld op een voorbeeldadvertentieblok van Google. U moet dit bijwerken met een advertentieblok dat aan uw account is gekoppeld, als u daadwerkelijk geld wilt verdienen met uw advertenties! 

Het advertentieblok-ID identificeert een advertentieplaatsing en u kunt het vinden in de AdMob-beheerdersconsole. Deze ID geeft AdMob het soort advertentie weer dat in uw app moet worden weergegeven, evenals het weergaveformaat (afbeelding, tekst of video).

Laad de advertentie

Voor ons om de advertentie eindelijk te laten zien, moeten we een verzoek doen en het vervolgens in de AdView we hebben hierboven gemaakt in de BannerAdActivity klasse. 

import com.google.android.gms.ads.AdRequest; importeer com.google.android.gms.ads.AdView; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class BannerAdActivity breidt AppCompatActivity uit private AdView mAdView; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); mAdView = (AdView) findViewById (R.id.adView); AdRequest adRequest = new AdRequest.Builder () .addTestDevice (AdRequest.DEVICE_ID_EMULATOR) .build (); mAdView.loadAd (adRequest);  

We hebben een advertentieverzoek gemaakt door een instantie van AdRequest te maken met behulp van de builder. Vervolgens hebben we de methode gebruikt addTestDevice (), het doorgeven van een apparaat-ID als een argument om testadvertenties op het apparaat te ontvangen, wat in ons geval de emulator is. We hebben toen eindelijk de AdView methode loadAd () dat neemt hierin AdRequest exemplaar en laadt vervolgens de advertentie op een achtergrondthread (om de UI / hoofdthread niet te blokkeren). 

Test de advertentie

Op dit punt kunnen we ons project uitvoeren en het resultaat zien. 

Uit de bovenstaande schermafbeelding kunnen we zien dat onze advertentiebanner onder de weergave wordt weergegeven. Reageer nu op de advertentie door erop te klikken. 

Luisteren naar advertentiegebeurtenissen met AdListener

Laten we nu de gebeurtenissen of callbacks bekijken die we in een advertentie kunnen bekijken. Dit zijn de beschikbare evenementen: 

  • onAdLoaded (): deze methode wordt geactiveerd wanneer de advertentie wordt opgehaald. 
  • onAdOpened (): deze methode wordt aangeroepen wanneer de advertentie wordt geopend. 
  • onAdClosed (): deze methode wordt geactiveerd wanneer de advertentie wordt gesloten.
  • onAdLeftApplication (): deze methode wordt aangeroepen wanneer de gebruiker de applicatie heeft verlaten.
  • onAdFailedToLoad (int errorCode): deze wordt geactiveerd wanneer een verzoek om de advertentie mislukt. De code kan er een zijn ERROR_CODE_NETWORK_ERRORERROR_CODE_INVALID_REQUESTERROR_CODE_NO_FILL, of ERROR_CODE_INTERNAL_ERROR.
// ... @Override protected void onCreate (Bundle savedInstanceState) // ... mAdView.setAdListener (new AdListener () @Override public void onAdLoaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLoaded ( ) ", Toast.LENGTH_SHORT) .show (); @Override public void onAdOpened () super.onAdOpened (); Toast.makeText (MainActivity.this," onAdOpened () ", Toast.LENGTH_SHORT) .show ();  @Override public void onAdClosed () super.onAdClosed (); Toast.makeText (MainActivity.this, "onAdClosed ()", Toast.LENGTH_SHORT) .show (); @Override openbare ongeldigheid opAdFailedToLoad (int i) super .onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show (); @Override public void onAdLeftApplication () super.onAdLeftApplication (); Toast.makeText (MainActivity. this, "onAdLeftApplication ()", Toast.LENGTH_SHORT) .show (););  @Override public void onPause () // Deze methode moet worden aangeroepen in de onPause () -methode van de bovenliggende activiteit. if (mAdView! = null) mAdView.pause ();  super.onPause ();  @Override public void onResume () super.onResume (); // Deze methode moet worden aangeroepen in de onResume () -methode van de bovenliggende activiteit. if (mAdView! = null) mAdView.resume ();  @Override public void onDestroy () // Deze methode moet worden aangeroepen in de onDestroy () -methode van de bovenliggende activiteit. if (mAdView! = null) mAdView.destroy ();  super.onDestroy (); 

Nadat u de luisteraar hebt toegevoegd, voert u het project opnieuw uit en communiceert u met de advertentie. Observeer de gebeurtenissen die worden aangeroepen door de toasts te bekijken die we hebben gemaakt. 

2. Interstitial-advertenties

We hebben gezien hoe gemakkelijk het is om een ​​banneradvertentie weer te geven. Laten we nu kijken naar hoe u interstitial-advertenties kunt maken. 

Interstitial-advertenties zijn advertenties die het hele scherm van uw toepassing bestrijken en geen ruimte bieden voor andere weergaven van uw app om te laten zien (zoals we binnenkort zullen zien). Aangezien dit het hele scherm overneemt en ook enige tijd nodig heeft om te laden als het netwerk traag is, moet u oppassen dat u uw gebruikers niet irriteert. Dus idealiter moeten deze interstitial-advertenties worden weergegeven tijdens natuurlijke onderbrekingen in uw app, bijvoorbeeld tussen niveaus in een game, en niet wanneer gebruikers zich midden in een andere taak bevinden.

import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.InterstitialAd; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; public class InterstitialAdActivity breidt AppCompatActivity uit private InterstitialAd mInterstitialAd; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); loadInterstitialAd ();  private void loadInterstitialAd () mInterstitialAd = new InterstitialAd (this); mInterstitialAd.setAdUnitId ( "ca-app-pub-3940256099942544/1033173712"); mInterstitialAd.setAdListener (new AdListener () @Override public void onAdLoaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLoaded ()", Toast.LENGTH_SHORT) .show (); if (mInterstitialAd. isLoaded ()) mInterstitialAd.show (); @Override public void onAdFailedToLoad (int i) super.onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show ();); AdRequest adRequest = new AdRequest.Builder (). Build (); mInterstitialAd.loadAd (adRequest); 

In de bovenstaande code hebben we een exemplaar van de klasse gedeclareerd en geïnitialiseerd InterstitialAd in de InterstitialAdActivity klasse. We stellen de id van de add-on in door de door Google aangeleverde een als het enige argument in de methode door te geven setAdUnitId ()

Net als wat we voor de banneradvertentie hebben gedaan, willen we luisteren naar gebeurtenissen in de advertentie, dus hebben we een luisteraar ingesteld om de overbelaste methoden te activeren onAdLoaded () en onAdFailedToLoad (int i). We doen een advertentieverzoek door een exemplaar van de. Te maken AdRequest klasse met zijn builder en bel dan de methode loadAd (), dit verzoek doorgeven als argument voor de methode. We gebruiken de methode is geladen() om te bepalen wanneer de advertentie is geladen en vervolgens de methode aan te roepen laten zien() om het eindelijk weer te geven. 

U kunt ook een toevoegen AdListener net zoals we deden voor de banneradvertentie. 

Test de advertentie

Op dit moment kunnen we de app uitvoeren en het resultaat bekijken. 

In de bovenstaande schermafbeelding kunt u zien dat onze test-interstitial-advertentie wordt weergegeven. 

3. Native Ads Express

Native Ads Express geeft u (de uitgever) de mogelijkheid om het uiterlijk van advertenties aan te passen zodat ze op een natuurlijke manier passen in uw app. Deze aanpassing wordt gedaan door CSS-sjablonen te definiëren waarin u uw eigen lettertypen, kleuren, grootten, etc. definieert vanuit uw AdMob-account. U kunt de afbeeldingen, beschrijvingen en titels echter niet wijzigen; deze worden ingesteld door de adverteerders. 

De aangepaste advertenties kunnen in uw app in a worden weergegeven NativeExpressAdView

omvatten NativeExpressAdView in uw lay-out

Hieronder nemen we de NativeExpressAdView, wat een is ViewGroup, in ons lay-outbestand. We definiëren ook de android: layout_height en android: layout_width zijn de inhoud verpakken. De advertenties: adSize zal zijn "320x300", en we gebruiken het door Google geleverde NativeExpress-advertentieblok-ID (alleen voor demo-doeleinden). 

    

Laad de advertentie

Vervolgens bouwen we onze AdRequest en begin dan met het laden van de advertentie die moet worden weergegeven. We voegen ook code toe om te reageren op de callbacks voor de activiteitslevenscyclus. U kunt ook een toevoegen AdListener als je wilt, net zoals we deden voor de banneradvertentie. 

import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.NativeExpressAdView; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class NativeExpressAdActivity breidt AppCompatActivity uit NativeExpressAdView mNativeExpressAdView; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_native_ad); mNativeExpressAdView = (NativeExpressAdView) findViewById (R.id.adView); AdRequest.Builder adRequestBuilder = new AdRequest.Builder (); adRequestBuilder.addTestDevice (AdRequest.DEVICE_ID_EMULATOR); mNativeExpressAdView.loadAd (adRequestBuilder.build ());  @Override public void onResume () super.onResume (); mNativeExpressAdView.resume ();  @Override public void onPause () mNativeExpressAdView.pause (); super.onPause ();  @Override public void onDestroy () mNativeExpressAdView.destroy (); super.onDestroy (); 

Test de advertentie

Dat is het! Nu kunt u de app uitvoeren en uw Native Express-advertentie in actie zien.

Maak uw eigen AdMob-account

Nu we hebben geleerd over de verschillende soorten advertenties, kunt u doorgaan en ze integreren in uw applicatie. Als u echte advertenties wilt weergeven en geld wilt verdienen, heeft u een AdMob-account nodig met id-id's van echte advertentieblokken die zijn gekoppeld aan echte advertenties van adverteerders. Ga naar de AdMob-website om u aan te melden! 

Conclusie

In deze zelfstudie hebt u geleerd over AdMob en hoe u verschillende AdMob-advertentie-indelingen zoals banner, interstitial en native express-advertenties op Android kunt integreren. 

Raadpleeg de officiële documentatie voor meer informatie over AdMob op Android. En bekijk in de tussentijd enkele van onze andere cursussen en zelfstudies over de ontwikkeling van Android-apps!