In diesem Lernprogramm erfahren Sie, wie Sie AdMob integrieren, damit Sie mit dieser fantastischen Android-App, die Sie geschrieben haben, Geld verdienen können. Wer möchte das nicht? AdMob gehört zu den größten mobilen Werbeplattformen auf dem Markt und ist im Besitz von Google.
Es gibt verschiedene Möglichkeiten, Apps in Android zu monetarisieren: kostenpflichtige Downloads, kostenpflichtige Abonnements, In-App-Käufe und Anzeigen. Sie können sie kombinieren, es wird jedoch empfohlen, ein einzelnes Modell auszuwählen. In diesem Lernprogramm erfahren Sie, wie Sie Ihre App durch Anzeigen von Anzeigen monetarisieren können.
Zu den Arten von Anzeigen, die Sie in diesem Lernprogramm erstellen, gehören Banner-, Interstitial- und native Express-Anzeigen. Ich erkläre jedes von ihnen und zeige Ihnen, wie Sie sie in Ihrer Anwendung implementieren können. Zuvor sollten Sie jedoch zunächst prüfen, wie Sie das Mobile Ads SDK integrieren und initialisieren können.
Erstellen Sie in Android Studio ein neues Projekt mit dem Namen Hauptaktivität
.
Um mit der Integration von AdMob in Ihre App zu beginnen, müssen Sie zunächst das Mobile Ads SDK in Ihr App-Modul aufnehmen build.gradle
Datei:
"com.google.android.gms: play-services-ads: 11.0.2" kompilieren
Wenn Sie Firebase in Ihre App integrieren möchten, sollten Sie das SDK verwenden, das Bestandteil von Firebase ist:
"com.google.firebase: firebase-ads: 11.0.2" kompilieren
In Envato Tuts + finden Sie einige unserer Firebase-Tutorials, wenn Sie Hilfe beim Einstieg in Firebase benötigen:
Stellen Sie sicher, dass Sie das Projekt synchronisieren, nachdem Sie die SDKs hinzugefügt haben, um die Bibliotheken aus dem Internet in Ihre Anwendung zu ziehen.
Sie müssen das Mobile Ads SDK initialisieren, bevor Sie Anzeigen in Ihre Android-App laden können. Machen Sie dies also so früh wie möglich. Wir schaffen eine Klasse, die das erweitert Anwendung
Klasse, und dann initialisieren wir die MobileAds
SDK in der onCreate ()
Methode dieser Klasse, da diese Methode nur einmal aufgerufen wird, wenn die App gestartet wird.
importieren Sie com.google.android.gms.ads.MobileAds; import android.app.Application; öffentliche Klasse App erweitert Anwendung @Override public void onCreate () super.onCreate (); MobileAds.initialize (dies "ca-app-pub-3940256099942544/6300978111");
Das zweite Argument für die statische Methode initialisieren()
des MobileAds
Diese Klasse sollte Ihre AdMob-Anwendungs-ID sein, die Sie bei der Anmeldung bei AdMob erhalten haben. In diesem Fall verwenden wir zu Demonstrationszwecken die von Google bereitgestellte öffentliche Anwendungs-ID.
Wir müssen die von uns erstellte Anwendungsklasse dem Attribut name des Anwendungsnamens in unserem hinzufügen AndroidManifest.xml Datei.
Stellen Sie in dieser Datei auch sicher, dass Sie die INTERNET
Erlaubnis, damit Google Mobile-Anzeigen geschaltet werden können.
Im folgenden Code-Snippet haben wir die AdActivity
zu unserer AndroidManifest.xmlDatei innerhalb des Anwendungs-Tags.
Diese Aktivität wird vom SDK bereitgestellt. In Banneranzeigen ist es nützlich, die Anzeige zu starten, die angezeigt wird, wenn der Nutzer auf die Anzeige klickt. Bei einer Interstitial-Anzeige wird sie verwendet, um die Anzeige anzuzeigen, wenn der Nutzer darauf klickt.
Werbebanner decken einen Teil des aktuell sichtbaren Bildschirms ab. Mit anderen Worten, alle Inhalte Ihrer App und der Anzeige werden zusammen auf dem Bildschirm angezeigt. Dies verbessert die Benutzererfahrung, da Ihre Nutzer Ihre App während der Schaltung der Anzeige weiter verwenden können (im Gegensatz zu einer Interstitial-Anzeige (halten Sie einfach an, wir werden dies in Kürze tun). Beachten Sie, dass eine Banneranzeige Text oder ein Bild sein kann.
Sehen wir uns an, wie eine Bannerwerbung implementiert wird.
AdView
ist ein Brauch ViewGroup
das wird die Werbebanner enthalten, also müssen wir unsere bearbeiten activity_banner_ad.xml Layoutdatei, um diese Ansicht einzuschließen.
Wir definieren das AdView
Größe mithilfe des Attributs ads: adSize
und setzen es auf BANNER
. Andere Alternativen stehen zur Verfügung LARGE_BANNER
, FULL_BANNER
, SMART_BANNER
, usw.
Das ads: adUnitId
AdView
Attribut wird auf einen von Google bereitgestellten Beispiel-Anzeigenblock gesetzt. Sie müssen dies mit einem mit Ihrem Konto verknüpften Anzeigenblock aktualisieren, wenn Sie mit Ihren Anzeigen tatsächlich Geld verdienen möchten!
Die Anzeigenblock-ID gibt eine Anzeigenplatzierung an. Diese finden Sie in der AdMob-Administrationskonsole. Diese ID teilt AdMob mit, welche Art von Anzeige in Ihrer App angezeigt wird, sowie das Anzeigeformat (Bild, Text oder Video)..
Damit wir die Anzeige endlich schalten können, müssen wir eine Anfrage machen und sie dann im anzeigen AdView
wir haben oben in der erstellt BannerAdActivity
Klasse.
import com.google.android.gms.ads.AdRequest; importieren Sie com.google.android.gms.ads.AdView; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class BannerAdActivity erweitert 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 = new AdRequest.Builder () .addTestDevice (AdRequest.DEVICE_ID_EMULATOR) .build (); mAdView.loadAd (adRequest);
Wir haben eine Anzeigenanfrage gemacht, indem wir mit dem Builder eine Instanz von AdRequest erstellt haben. Dann haben wir die Methode angewendet addTestDevice ()
, Übergeben einer Geräte-ID als Argument, um Testanzeigen an das Gerät zu übergeben, in unserem Fall der Emulator. Wir haben dann endlich die angerufen AdView
Methode loadAd ()
das nimmt das auf AdRequest
Instanz und lädt dann die Anzeige in einem Hintergrundthread (um den UI / Hauptthread nicht zu blockieren).
An diesem Punkt können wir unser Projekt ausführen und das Ergebnis sehen.
In der Abbildung oben sehen Sie, dass unsere Test-Banneranzeige unterhalb der Ansicht angezeigt wird. Jetzt können Sie mit der Anzeige interagieren, indem Sie darauf klicken.
Lassen Sie uns nun die Ereignisse oder Rückrufe untersuchen, die wir in einer Anzeige beobachten können. Dies sind die verfügbaren Veranstaltungen:
onAdLoaded ()
: Diese Methode wird ausgelöst, wenn die Anzeige abgerufen wird. onAdOpened ()
: Diese Methode wird beim Öffnen der Anzeige aufgerufen. onAdClosed ()
: Diese Methode wird ausgelöst, wenn die Anzeige geschlossen wird.onAdLeftApplication ()
: Diese Methode wird aufgerufen, wenn der Benutzer die Anwendung verlassen hat.onAdFailedToLoad (int errorCode)
: Dies wird ausgelöst, wenn eine Anfrage für die Anzeige fehlschlägt. Der Code kann einer von sein ERROR_CODE_NETWORK_ERROR
, ERROR_CODE_INVALID_REQUEST
, ERROR_CODE_NO_FILL
, oder ERROR_CODE_INTERNAL_ERROR
.//… @Override protected void onCreate (Bundle savedInstanceState) //… mAdView.setAdListener (neuer 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," onAdOpen () ", Toast.LENGTH_SHORT) .show (); @Override public void onAdClosed () super.onAdClosed (); Toast.makeText (MainActivity.this, "onAdClosed ()", Toast.LENGTH_SHORT) .show (); @Override public void onAdFailedToLoad (in i) über .onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show ();; dies "onAdLeftApplication ()", Toast.LENGTH_SHORT) .show ();); @Override public void onPause () // Diese Methode sollte in der onPause () - Methode der übergeordneten Activity aufgerufen werden. if (mAdView! = null) mAdView.pause (); super.onPause (); @Override public void onResume () super.onResume (); // Diese Methode sollte in der onResume () - Methode der übergeordneten Activity aufgerufen werden. if (mAdView! = null) mAdView.resume (); @Override public void onDestroy () // Diese Methode sollte in der onDestroy () - Methode der übergeordneten Aktivität aufgerufen werden. if (mAdView! = null) mAdView.destroy (); super.onDestroy ();
Führen Sie nach dem Hinzufügen des Listeners das Projekt erneut aus und interagieren Sie mit der Anzeige. Beobachten Sie die aufgerufenen Ereignisse, indem Sie die von uns erstellten Toasts beobachten.
Wir haben gesehen, wie einfach es ist, eine Banneranzeige zu schalten. Sehen wir uns nun an, wie Sie Interstitial-Anzeigen erstellen.
Interstitial-Anzeigen sind Anzeigen, die den gesamten Bildschirm Ihrer Anwendung abdecken und keinen Platz für andere Ansichten Ihrer App bieten (wie wir in Kürze sehen werden). Da dies den gesamten Bildschirm überdeckt und bei langsamen Netzwerken auch einige Zeit zum Laden benötigt, müssen Sie darauf achten, Ihre Benutzer nicht zu irritieren. Idealerweise sollten diese Interstitial-Anzeigen in natürlichen Pausen in Ihrer App angezeigt werden, z. zwischen den Levels eines Spiels und nicht, wenn sich Benutzer mitten in einer anderen Aufgabe befinden.
import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; importiere com.google.android.gms.ads.InterstitialAd; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; Öffentliche Klasse InterstitialAdActivity erweitert AppCompatActivity 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 (neuer AdListener () @Override public void onAdLoaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLoaded ()", Toast.LENGTH_SHORT) .now (); isLoaded ()) mInterstitialAd.show (); @Override public void onAdFailedToLoad (int i) super.onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad"), Toast.LANTach ();); AdRequest AdRequest = new AdRequest.Builder (). Build (); mInterstitialAd.loadAd (adRequest);
Im obigen Code haben wir eine Instanz der Klasse deklariert und initialisiert InterstitialAd
in dem InterstitialAdActivity
Klasse. Wir legen die Add-Unit-ID fest, indem wir das von Google bereitgestellte als einziges Argument an die Methode übergeben setAdUnitId ()
.
So wie wir es für die Bannerwerbung getan haben, möchten wir auf Ereignisse in der Anzeige achten. Wir stellen also einen Listener ein, der die überladenen Methoden auslöst onAdLoaded ()
und onAdFailedToLoad (int i)
. Wir machen eine Anzeigenanfrage, indem wir eine Instanz von erstellen AdRequest
Klasse mit seinem Builder und rufen dann die Methode auf loadAd ()
, Übergeben dieser Anforderung als Argument an die Methode. Wir benutzen die Methode isLoaded ()
Um festzustellen, wann die Anzeige geladen wurde, rufen Sie die Methode auf Show()
um es endlich anzuzeigen.
Sie können auch eine hinzufügen AdListener
genau wie wir es für die Werbebanner gemacht haben.
Jetzt können wir die App ausführen und das Ergebnis sehen.
Im obigen Screenshot sehen Sie, dass unsere Test-Interstitial-Anzeige jetzt angezeigt wird.
Mit Native Ads Express können Sie (der Publisher) das Erscheinungsbild von Anzeigen so anpassen, dass sie ganz natürlich in Ihre App passen. Diese Anpassung erfolgt durch die Definition von CSS-Vorlagen, in denen Sie eigene Schriftarten, Farben, Größen usw. in Ihrem AdMob-Konto definieren. Sie können die Bilder, Beschreibungen und Titel nicht ändern, diese werden jedoch von den Werbetreibenden festgelegt.
Die benutzerdefinierten Anzeigen können in Ihrer App in a angezeigt werden NativeExpressAdView
.
NativeExpressAdView
in Ihrem LayoutUnten schließen wir die NativeExpressAdView
, die ein ViewGroup
, in unserer Layoutdatei. Wir definieren auch die android: layout_height
und android: layout_width
sein wrap_content
. Das ads: adSize
wird sein "320x300"
, und wir verwenden die von Google bereitgestellte NativeExpress-Anzeigenblock-ID (nur zu Demonstrationszwecken)..
Als nächstes bauen wir unsere AdRequest
und beginnen Sie mit dem Laden der Anzeige, die angezeigt werden soll. Wir fügen auch Code hinzu, um auf die Aktivitäts-Lebenszyklus-Rückrufe zu reagieren. Sie können auch eine hinzufügen AdListener
Wenn Sie möchten, so wie wir es für die Bannerwerbung gemacht haben.
import com.google.android.gms.ads.AdRequest; importiere com.google.android.gms.ads.NativeExpressAdView; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class NativeExpressAdActivity erweitert 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 = 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 ();
Das ist es! Jetzt können Sie die App ausführen und Ihre Native Express-Anzeige in Aktion sehen.
Nachdem wir nun die verschiedenen Arten von Anzeigen kennen gelernt haben, können Sie diese in Ihre Anwendung integrieren. Um echte Anzeigen zu schalten und Geld zu verdienen, benötigen Sie ein AdMob-Konto mit echten Anzeigenblock-IDs, die mit echten Anzeigen von Werbetreibenden verknüpft sind. Besuchen Sie einfach die AdMob-Website, um sich anzumelden!
In diesem Lernprogramm haben Sie etwas über AdMob und die Integration verschiedener AdMob-Anzeigenformate wie Banner, Interstitial-Anzeigen und native Express-Anzeigen auf Android gelernt.
Weitere Informationen zu AdMob unter Android finden Sie in der offiziellen Dokumentation. In der Zwischenzeit können Sie einige unserer anderen Kurse und Tutorials zur Entwicklung von Android-Apps ausprobieren!