Så här kan du tjäna pengar på dina Android-appar med AdMob

I den här handledningen lär du dig information om hur du integrerar AdMob så att du kan tjäna pengar på den fantastiska Android-appen du skrev - kom igen, vem vill inte ha det? AdMob är en av de största mobila annonseringsplattformarna på marknaden, och ägs av Google.

Det finns några olika sätt att tjäna pengar på dina appar på Android: Betald nedladdningar, betalda prenumerationer, köp i app och genom att visa annonser. Du kan kombinera dem, men det rekommenderas att du väljer en enda modell. I den här handledningen lär du dig information om hur du kan tjäna pengar på din app genom att visa annonser. 

De typer av annonser som du skapar i den här handledningen är banner-, interstitial- och inhemska expressannonser. Jag förklarar var och en och visar hur du implementerar dem i din ansökan. Men före det, låt oss först och främst se hur du integrerar SDK för mobilannonser och initiera den. 

Skapa ett Android Studio-projekt

Skapa ett nytt projekt i namnet Android i Studio Huvudaktivitet.

Inkluder SDK för mobilannonser

För att börja integrera AdMob med din app måste du först inkludera SDK för mobilannonser i din appmodul build.gradle fil:

kompilera 'com.google.android.gms: play-services-ads: 11.0.2'

Om du ska integrera Firebase i din app ska du använda SDK som ingår i Firebase:

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

Kolla in några av våra Firebase-handledning här på Envato Tuts + om du behöver hjälp med att komma igång med Firebase:

Se till att du synkroniserar projektet efter att du har lagt till SDK: erna för att dra biblioteken från internet till din ansökan. 

Initiera MobileAds

Du måste initiera SDK för mobilannonser innan du kan ladda annonser på din Android-app, så gör det så tidigt som möjligt. Vi skapar en klass som utökar Ansökan klass, och sedan initierar vi MobileAds SDK i onCreate () metod för den klassen, eftersom den här metoden endast kallas en gång när appen startas. 

importera com.google.android.gms.ads.MobileAds; importera android.app.Application; public class App utökar Applikation @Override public void onCreate () super.onCreate (); MobileAds.initialize (detta, "ca-app-pub-3940256099942544/6300978111"); 

Det andra argumentet levereras till den statiska metoden initialisera () av MobileAds klassen ska vara ditt AdMob-program-ID som du fick när du registrerade dig för AdMob. I det här fallet använder vi det offentliga program-ID som tillhandahållits av Google för demoändamål. 

Ändra den ledigaste filen

Vi måste lägga till den applikationsklass vi skapade till attributnamnet för attributtaggen i vår AndroidManifest.xml fil. 

  

Även i den här filen, se till att även inkludera INTERNET tillåtelse så att Google-mobilannonser kan köras. 

  

I kodfliken nedan lade vi till AdActivity till vår AndroidManifest.xmlfilen i programtaggen. 

Denna aktivitet tillhandahålls av SDK. Det är användbart i bannerannonser att skjuta upp annonsen som ska visas när användaren klickar på annonsen medan den används för att visa annonsen när användaren klickar på den för en interstitialannons.

1. Bannerannonser

Bannerannonser täcker en del av den nuvarande skärmen. Med andra ord visas något innehåll i din app och annonsen tillsammans på skärmen. Det här förbättrar användarupplevelsen eftersom användarna kan fortsätta använda din app medan annonsen visas, till skillnad från en interstitialannons (bara hänga på, vi kommer snart). Observera att en bannerannons kan vara text eller en bild. 

Låt oss se hur du implementerar en bannerannons. 

Inkludera en bannerannons i din layout

AdView är en anpassning ViewGroup som kommer att innehålla bannerannonsen, så vi behöver redigera vår activity_banner_ad.xml layoutfilen för att inkludera denna vy. 

    

Vi definierar AdView storlek med hjälp av attributet Annonser: adSize och ställa in det BANER. Andra alternativ finns tillgängliga LARGE_BANNERFULL_BANNERSMART_BANNER, etc. 

De annonser: adUnitId AdView Attributet är inställt på en Google Analytics-annonsenhet. Du måste uppdatera detta med en annonsenhet som är kopplad till ditt konto om du faktiskt vill tjäna pengar från dina annonser! 

Annonsenhetens ID identifierar en annonsplacering, och du hittar den i AdMob-administratörskonsolen. Detta ID kommer att berätta för AdMob vilken typ av annons som ska visas på din app och även visningsformatet (bild, text eller video).

Ladda annonsen

För att vi äntligen ska visa annonsen måste vi göra en förfrågan och sedan visa den i AdView vi skapade ovan i BannerAdActivity klass. 

importera com.google.android.gms.ads.AdRequest; importera com.google.android.gms.ads.AdView; importera android.os.Bundle; importera android.support.v7.app.AppCompatActivity; allmän klass BannerAdActivity utökar AppCompatActivity 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 = ny AdRequest.Builder () .addTestDevice (AdRequest.DEVICE_ID_EMULATOR) .build (); mAdView.loadAd (adRequest);  

Vi gjorde en annonsbegäran genom att skapa en förekomst av AdRequest med hjälp av byggaren. Sedan använde vi metoden addTestDevice (), passerar i en ID-enhet som ett argument för att ta emot testannonser till enheten, vilket i vårt fall är emulatorn. Vi kallade då äntligen AdView metod loadAd () som tar in detta AdRequest instans och sedan laddar annonsen på en bakgrundsgänga (för att inte blockera UI / huvudtråden). 

Testa annonsen

Vid denna tidpunkt kan vi köra vårt projekt och se resultatet. 

Från skärmdumpen ovan kan vi se att vår testbannerannons visas under visningen. Interagera nu med annonsen genom att klicka på den. 

Lyssna på annonshändelser med AdListener

Låt oss nu utforska händelserna eller återuppringningarna vi kan observera i en annons. Dessa är tillgängliga händelser: 

  • onAdLoaded (): Den här metoden avfyras när annonsen hämtas. 
  • onAdOpened (): Den här metoden är påkallad när annonsen öppnas. 
  • onAdClosed (): Den här metoden avfyras när annonsen är stängd.
  • onAdLeftApplication (): Denna metod är påkallad när användaren har lämnat programmet.
  • onAdFailedToLoad (int errorCode): Detta avfyras när en begäran om annonsen misslyckas. Koden kan vara en av ERROR_CODE_NETWORK_ERRORERROR_CODE_INVALID_REQUESTERROR_CODE_NO_FILL, eller ERROR_CODE_INTERNAL_ERROR.
// ... @Override protected void onCreate (Bundle savedInstanceState) // ... mAdView.setAdListener (nya AdListener () @Override public void onAdLaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLaded ), 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 public void onAdFailedToLoad (int i) super .onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show (); @Override public void onAdLeftApplication () super.onAdLeftApplication (); Toast.makeText (MainActivity. detta, "onAdLifeApplication ()", Toast.LENGTH_SHORT) .show (););  @Override public void onPause () // Den här metoden ska kallas i parentesaktivitetens onPause () -metod. om (mAdView! = null) mAdView.pause ();  super.onPause ();  @Override public void onResume () super.onResume (); // Den här metoden ska kallas i den moderna aktivitetsmetoden onResume (). om (mAdView! = null) mAdView.resume ();  @Override public void onDestroy () // Denna metod ska kallas i förlagets Activity-metod onDestroy (). om (mAdView! = null) mAdView.destroy ();  super.onDestroy (); 

När du har lagt till lyssnaren kör du projektet igen och interagerar med annonsen. Observera händelserna som åberopas genom att titta på de skålar vi skapade. 

2. Interstitiella annonser

Vi har sett hur lätt det är att visa en bannerannons. Låt oss nu titta på hur man skapar interstitiella annonser. 

Interstitiella annonser är annonser som täcker hela skärmen för din ansökan, vilket inte ger utrymme för andra visningar av din app att visa (som vi ser snart). Eftersom detta tar över hela skärmen och tar lite tid att ladda om nätverket är långsamt, måste du vara försiktig så att du inte irriterar dina användare. Så idealiskt bör dessa interstitiella annonser visas under naturliga pauser i din app, t.ex. mellan nivåer i ett spel, och inte när användarna står i mitten av någon annan uppgift.

importera com.google.android.gms.ads.AdListener; importera com.google.android.gms.ads.AdRequest; importera com.google.android.gms.ads.InterstitialAd; importera android.os.Bundle; importera android.support.v7.app.AppCompatActivity; importera android.widget.Toast; offentlig klass InterstitialAdActivity utökar AppCompatActivity private InterstitialAd mInterstitialAd; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); loadInterstitialAd ();  privat tomtbeloppInterstitialAd () mInterstitialAd = ny interstitialAd (this); mInterstitialAd.setAdUnitId ( "ca-app-pub-3940256099942544/1033173712"); mInterstitialAd.setAdListener (new AdListener () @Override public void onAdLaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLaded ()", Toast.LENGTH_SHORT) .show (); om (mInterstitialAd. isLoaded ()) mInterstitialAd.show (); @Override public void onAdFailedToLoad (int i) super.onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT). ();); AdRequest adRequest = ny AdRequest.Builder (). Build (); mInterstitialAd.loadAd (adRequest); 

I koden ovan förklarade och initierade vi en instans av klassen InterstitialAd i InterstitialAdActivity klass. Vi sätter tilläggs-id-id genom att överföra Google-tillhandahållen som det enda argumentet till metoden setAdUnitId ()

Precis som vad vi gjorde för bannerannonsen vill vi lyssna på händelser i annonsen, så vi ställer in en lyssnare för att avfyra de överbelastade metoderna onAdLoaded () och onAdFailedToLoad (int i). Vi gör en annonsbegäran genom att skapa en instans av AdRequest klass med hjälp av sin byggare och sedan ringa metoden loadAd (), överför denna begäran som ett argument för metoden. Vi använder metoden isLoaded () för att bestämma när annonsen har laddats och sedan ringa metoden show() för att slutligen visa den. 

Du kan också lägga till en AdListener precis som vi gjorde för bannerannonsen. 

Testa annonsen

Nu kan vi köra appen och se resultatet. 

I skärmdumpen ovan kan du se att vår testinterstitialannons nu visas. 

3. Native Ads Express

Native Ads Express ger dig (utgivaren) möjlighet att anpassa utseendet på annonser så att de passar naturligt med din app. Denna anpassning görs genom att definiera CSS-mallar där du definierar dina egna teckensnitt, färger, storlekar etc. från ditt AdMob-konto. Du kan inte ändra bilderna, beskrivningarna och titlarna, men de anges av annonsörerna. 

De anpassade annonserna kan visas i din app i en NativeExpressAdView

Inkludera NativeExpressAdView i din layout

Nedan ingår vi NativeExpressAdView, Vilket är en ViewGroup, i vår layoutfil. Vi definierar också android: layout_height och android: layout_width att vara wrap_content. De Annonser: adSize kommer vara "320x300", och vi använder Google-tillhandahållna NativeExpress-annonsenhetens ID (endast för demo). 

    

Ladda annonsen

Därefter bygger vi vårt AdRequest och börja sedan ladda annonsen som ska visas. Vi lägger även till kod för att svara på återuppringning av aktivitetens livscykel. Du kan också lägga till en AdListener om du vill, precis som vi gjorde för bannerannonsen. 

importera com.google.android.gms.ads.AdRequest; importera com.google.android.gms.ads.NativeExpressAdView; importera android.os.Bundle; importera android.support.v7.app.AppCompatActivity; offentlig klass NativeExpressAdActivity utökar AppCompatActivity 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 = ny 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 (); 

Testa annonsen

Det är allt! Nu kan du köra appen och se din Native Express-annons i åtgärd.

Skapa ditt eget AdMob-konto

Nu när vi har lärt oss om olika typer av annonser kan du fortsätta och integrera dem i din ansökan. För att börja visa riktiga annonser och tjäna pengar behöver du ett AdMob-konto - med verkliga annonsenhetens innehåll som är kopplade till reella annonser från annonsörer. Besök bara AdMobs webbplats för att registrera dig! 

Slutsats

I den här handledningen lärde du dig om AdMob och hur du integrerar olika AdMob-annonsformat som banner-, interstitial- och inhemska expressannonser på Android. 

Mer information om AdMob på Android finns i den officiella dokumentationen. Och under tiden, kolla in några av våra andra kurser och handledning om Android App-utveckling!