I denne opplæringen lærer du om hvordan du integrerer AdMob, slik at du kan tjene penger på den fantastiske Android-appen du skrev - kom igjen, hvem vil ikke ha det? AdMob er blant de største mobile annonseringsplatformene i markedet, og eies av Google.
Det er noen forskjellige måter å tjene penger på appene dine i Android: betalte nedlastinger, betalte abonnementer, kjøp i apper og ved å vise annonser. Du kan kombinere dem, men det anbefales at du velger en enkelt modell. I denne opplæringen lærer du om hvordan du kan tjene penger på appen din ved å vise annonser.
Hvilke typer annonser du vil opprette i denne opplæringen, er banner-, interstitial- og innfødte ekspressannonser. Jeg vil forklare hver av dem og vise deg hvordan du implementerer dem i søknaden din. Men før det, la oss først og fremst se hvordan du integrerer SDK for mobilannonser og initialiser den.
I Android Studio, opprett et nytt prosjekt som heter Hoved aktivitet
.
For å begynne å integrere AdMob med appen din, må du først inkludere SDK for mobilannonser til appmodulen din build.gradle
fil:
kompilere 'com.google.android.gms: play-services-ads: 11.0.2'
Hvis du skal integrere Firebase i appen din, bør du bruke SDK som er en del av Firebase:
kompilere 'com.google.firebase: firebase-annonser: 11.0.2'
Ta en titt på noen av våre Firebase-opplæringsprogrammer her på Envato Tuts + hvis du trenger hjelp med å komme i gang med Firebase:
Sørg for at du synkroniserer prosjektet etter at du har lagt det til SDKene for å trekke bibliotekene fra internett til søknaden din.
Du må initialisere SDK for mobilannonser før du kan laste annonser på Android-appen din, så gjør dette så tidlig som mulig. Vi lager en klasse som utvider applikasjon
klasse, og så starter vi MobileAds
SDK i onCreate ()
metode for denne klassen, fordi denne metoden kalles bare én gang når appen er lansert.
importer com.google.android.gms.ads.MobileAds; importer android.app.Application; offentlig klasse App utvider søknad @Override public void onCreate () super.onCreate (); MobileAds.initialize (dette, "ca-app-pub-3940256099942544/6300978111");
Det andre argumentet ble levert til den statiske metoden initialize ()
av MobileAds
klassen bør være din AdMob-program-ID du fikk når du registrerte deg for AdMob. I dette tilfellet bruker vi den offentlige søknads-IDen som tilbys av Google for demoformål.
Vi må legge til applikasjonsklassen vi opprettet til attributt-taggenattributtet i vår AndroidManifest.xml fil.
Mens du er i denne filen, må du også sørge for å inkludere INTERNETT
tillatelse slik at Google mobilannonser kan kjøre.
I kodestykket under, la vi til AdActivity
til vår AndroidManifest.xmlfil i applikasjonsmerket.
Denne aktiviteten er gitt av SDK. Det er nyttig i bannerannonser å brann opp annonsen som skal vises når brukeren klikker på annonsen, mens for en interstitialannonse, blir den brukt til å vise annonsen når brukeren klikker på den.
Bannerannonser dekker en del av den nåværende synlige skjermen. Med andre ord, noe innhold i appen din og annonsen vises sammen på skjermen. Dette forbedrer brukeropplevelsen fordi brukerne dine kan fortsette å bruke appen din mens annonsen vises, i motsetning til en interstitialannonse (bare henger på, kommer vi til det snart). Legg merke til at en bannerannonse kan være tekst eller et bilde.
La oss se på hvordan du implementerer en bannerannonse.
annonsevisning
er en skikk ViewGroup
som vil inneholde bannerannonsen, så vi må redigere vår activity_banner_ad.xml layoutfil for å inkludere denne visningen.
Vi definerer annonsevisning
størrelse ved å bruke attributtet annonser: adSize
og sette den til BANNER
. Andre alternativer er tilgjengelige LARGE_BANNER
, FULL_BANNER
, SMART_BANNER
, etc.
De annonser: adUnitId
annonsevisning
Attributtet er satt til en prøveannonseenhet levert av Google. Du må oppdatere dette med en annonseenhet knyttet til kontoen din hvis du virkelig ønsker å tjene penger fra annonsene dine!
Annonseenhets-IDen identifiserer en annonseplassering, og du finner den i AdMob-administrasjonskonsollen. Denne IDen vil fortelle AdMob hvilken annonse som skal vises på appen din, og også visningsformatet (bilde, tekst eller video).
For at vi endelig skal vise annonsen, må vi gjøre en forespørsel og deretter vise den i annonsevisning
vi opprettet over i BannerAdActivity
klasse.
importer com.google.android.gms.ads.AdRequest; importer com.google.android.gms.ads.AdView; importere android.os.Bundle; importer android.support.v7.app.AppCompatActivity; offentlig klasse BannerAdActivity utvider 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 har gjort en annonseforespørsel ved å opprette en forekomst av AdRequest ved hjelp av byggeren. Så brukte vi metoden addTestDevice ()
, passerer inn i en ID-en som argument for å motta testannonser til enheten, som i vårt tilfelle er emulatoren. Vi ringte endelig til annonsevisning
metode loadAd ()
som tar inn dette AdRequest
eksempel og laster deretter annonsen på en bakgrunnstråd (for ikke å blokkere brukergrensesnittet / hovedtråden).
På dette tidspunktet kan vi kjøre prosjektet vårt og se resultatet.
Fra skjermbildet ovenfor kan vi se at vår testbannerannonse vises under visningen. Nå samhandle med annonsen ved å klikke på den.
La oss nå utforske hendelsene eller tilbakekallene vi kan observere i en annonse. Dette er hendelsene som er tilgjengelige:
onAdLoaded ()
: Denne metoden er avbrutt når annonsen hentes. onAdOpened ()
: Denne metoden påberopes når annonsen åpnes. onAdClosed ()
: Denne metoden slås av når annonsen er stengt.onAdLeftApplication ()
: Denne metoden er påkalt når brukeren har forlatt programmet.onAdFailedToLoad (int errorCode)
: dette er avbrutt når en forespørsel om annonsen mislykkes. Koden kan være en av ERROR_CODE_NETWORK_ERROR
, ERROR_CODE_INVALID_REQUEST
, ERROR_CODE_NO_FILL
, eller ERROR_CODE_INTERNAL_ERROR
.// ... @Override protected void onCreate (Bundle savedInstanceState) // ... mAdView.setAdListener (ny 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, "onAdpened ()", 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. dette, "onAdLifeApplication ()", Toast.LENGTH_SHORT) .show ();); @Override public void onPause () // Denne metoden skal kalles i parentes Activity's onPause () -metode. hvis (mAdView! = null) mAdView.pause (); super.onPause (); @Override public void onResume () super.onResume (); // Denne metoden bør kalles i parentes aktivitetens onResume () metode. hvis (mAdView! = null) mAdView.resume (); @Override public void onDestroy () // Denne metoden skal kalles i parentes aktivitetens onDestroy () metode. hvis (mAdView! = null) mAdView.destroy (); super.onDestroy ();
Etter at du har lagt til lytteren, kjør prosjektet igjen og samhandle med annonsen. Vær oppmerksom på hendelsene som påberopes ved å se de toastene vi opprettet.
Vi har sett hvor enkelt det er å vise en bannerannonse. La oss se på hvordan du lager interstitialannonser.
Interstitial-annonser er annonser som dekker hele skjermen i programmet, og gir ikke plass til andre visninger av appen din for å vise (som vi ser snart). Siden dette tar over hele skjermen og tar litt tid å laste om nettverket er sakte, må du være forsiktig så du ikke irriterer brukerne. Så ideelt bør disse interstitialannonsene vises under naturlige pauser i appen din, f.eks. mellom nivåer i et spill, og ikke når brukerne er midt i en annen oppgave.
importer com.google.android.gms.ads.AdListener; importer com.google.android.gms.ads.AdRequest; importer com.google.android.gms.ads.InterstitialAd; importere android.os.Bundle; importer android.support.v7.app.AppCompatActivity; importer android.widget.Toast; offentlig klasse InterstitialAdActivity utvider AppCompatActivity private InterstitialAd mInterstitialAd; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); loadInterstitialAd (); privat tomtlastInterstitialAd () mInterstitialAd = ny interstitialAd (denne); mInterstitialAd.setAdUnitId ( "ca-app-pub-3940256099942544/1033173712"); (Interaktiv isLoaded ()) mInterstitialAd.show (); @Override public void onAdFailedToLoad (int i) super.onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show ();); AdRequest adRequest = ny AdRequest.Builder (). Build (); mInterstitialAd.loadAd (adRequest);
I koden ovenfor erklærte og initierte vi en forekomst av klassen InterstitialAd
i InterstitialAdActivity
klasse. Vi angir tilleggs-ID-en ved å sende Google-gitt en som eneste argumentet i metoden setAdUnitId ()
.
På samme måte som det vi gjorde for bannerannonsen, vil vi lytte etter hendelser på annonsen, så vi satte en lytter til å brenne overbelastede metoder onAdLoaded ()
og onAdFailedToLoad (int i)
. Vi lager en annonseforespørsel ved å opprette en forekomst av AdRequest
klassen bruker sin byggmester og deretter ringe metoden loadAd ()
, sender denne forespørselen som et argument til metoden. Vi bruker metoden isLoaded ()
å bestemme når annonsen har blitt lastet og deretter ringe metoden vise fram()
å endelig vise det.
Du kan også legge til en AdListener
akkurat som vi gjorde for bannerannonsen.
På dette tidspunktet kan vi kjøre appen og se resultatet.
I skjermbildet ovenfor kan du se at vår testinterstitialannonse nå vises.
Native Ads Express gir deg (utgiveren) muligheten til å tilpasse utseendet på annonsene slik at de passer naturlig med appen din. Denne tilpasningen gjøres ved å definere CSS-maler der du definerer dine egne skrifter, farger, størrelser etc. fra AdMob-kontoen din. Du kan ikke endre bildene, beskrivelsene og titlene, selv om disse er angitt av annonsørene.
De tilpassede annonsene kan vises i appen din i en NativeExpressAdView
.
NativeExpressAdView
i din layoutNedenfor inkluderer vi NativeExpressAdView
, hvilken er en ViewGroup
, i vår layoutfil. Vi definerer også android: layout_height
og android: layout_width
å være wrap_content
. De annonser: adSize
vil være "320x300"
, og vi bruker Google-leverte NativeExpress-annonseenhets-ID (kun for demoformål).
Deretter bygger vi vår AdRequest
og deretter begynne å laste annonsen som skal vises. Vi legger også til kode for å svare på tilbakekallingen av aktivitetens livssyklus. Du kan også legge til en AdListener
hvis du vil, akkurat som vi gjorde for bannerannonsen.
importer com.google.android.gms.ads.AdRequest; importer com.google.android.gms.ads.NativeExpressAdView; importere android.os.Bundle; importer android.support.v7.app.AppCompatActivity; offentlig klasse NativeExpressAdActivity utvider 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 ();
Det er det! Nå kan du kjøre appen og se din Native Express-annonse i aksjon.
Nå som vi har lært om ulike typer annonser, kan du gå videre og integrere dem i søknaden din. For å begynne å vise virkelige annonser og tjene penger, trenger du en AdMob-konto - med ekte annonseenheter som er knyttet til ekte annonser fra annonsører. Bare besøk AdMobs nettsted for å registrere deg!
I denne opplæringen har du lært om AdMob og hvordan du integrerer forskjellige AdMob-annonseformater som banner-, interstitial- og innfødte ekspressannonser på Android.
Hvis du vil vite mer om AdMob på Android, kan du se den offisielle dokumentasjonen. Og i mellomtiden, sjekk ut noen av våre andre kurs og opplæringsprogrammer på Android app utvikling!