Implementierung von AdSense für mobile Apps (AFSMA) für Android

Vorbereitung

In diesem Implementierungsleitfaden wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:

  • Implementierung von benutzerdefinierten Suchanzeigen (AFS) Protokoll
  • Android-App-Entwicklung
  • Google Mobile Anzeigen verknüpfen SDK für Android (jetzt Teil der Google Play-Dienste) mit einem Android Studio-Projekt verknüpfen. Version 9.0.0 der Google Play-Dienste ist erforderlich.

Klassen

Um AFSMA-Anzeigen (auch bekannt als Suchanzeigen mit dynamischer Höhe) in Ihrer App zu schalten, implementieren Sie die folgenden Klassen:

SearchAdView

  • Diese Klasse übernimmt die Android-Klasse ViewGroup und die AFSMA-Anzeigen. SearchAdView sendet die Anfrage für eine Anzeige mit einem DynamicHeightSearchAdRequest und rendert die zurückgegebenen Anzeigen. Das Element „SearchAdView“ sollte einer vorhandenen Datenansichtsgruppe der App hinzugefügt werden.
  • SearchAdView muss mit dem Kontext instanziiert werden in dem die SearchAdView ausgeführt wird, normalerweise ein Activity.
  • Sobald die SearchAdView instanziiert wurde, müssen Sie die setAdSize()-Methode aufrufen mit AdSize.SEARCH, um AFSMA-Anzeigen anzufordern. Bei anderen enum-Werten werden Anzeigen angefordert, die nicht mit AFS für mobile Apps kompatibel sind.
  • Rufen Sie die Methode setAdUnitId() für dieses Objekt mit Ihrem Property-Code auf.

DynamicHeightSearchAdRequest.Builder

  • Diese Klasse schließt die Anzeigenanfrageparameter ein. Dies erfolgt analog zum Festlegen von Parametern in den JavaScript-Anzeigenanfrageobjekten. (Seitenoptionen, Anzeigenblockoptionen) für AFS (Desktop- und mobiles Web).
  • Legen Sie Parameter mit den entsprechenden Settern fest (in anderen Worten: setQuery() aufrufen, um den Suchparameter festzulegen.

Beispielimplementierung

Das folgende Beispiel zeigt, wie ein Activity zum Erstellen eines SearchAdView verwendet wird. als Unteransicht von ViewGroup. Damit AFSMA-Anzeigen ordnungsgemäß angefordert werden, muss die SearchAdView -Objekt die setAdSize()-Methode mit AdSize.SEARCH aufrufen muss.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

Erstellen Sie im selben Activity einen DynamicHeightSearchAdRequest.Builder, der legt die Parameter der Anzeige fest, die im SearchAdView gerendert wird. AFSMA-Anzeigen werden genauso konfiguriert wie benutzerdefinierte AFSMA-Anzeigen für Suchergebnisseiten. Benutzerdefinierte AFS-Suchanzeigen aufrufen Referenz .

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

Weitere Anpassungsoptionen sind möglich, wenn Sie zusätzliche Eigenschaften auf der DynamicHeightSearchAdRequest.Builder -Objekt enthält.

Um eine Anzeigenanfrage zu stellen, rufen Sie die Methode loadAd() mit dem Parameter DynamicHeightSearchAdRequest.Builder-Objekt vom SearchAdView-Objekt:

searchAdView.loadAd(builder.build());

Erweiterte Optionen

Die meisten Parameter für Anzeigenanfragen können über Setter-Methoden festgelegt werden. für das DynamicHeightSearchAdRequest.Builder-Objekt. Alle Parameter, die keine Setter-Methode in DynamicHeightSearchAdRequest.Builder kann mithilfe von Schlüssel/Wert-Paaren mit der Methode setAdvancedOptionValue() . Benutzerdefinierte AFS-Suchanzeigen aufrufen Referenz finden Sie eine vollständige Liste der Einstellungen, die mit dem setAdvancedOptionValue()-Methode.

Dem Schlüsselparameter muss das Präfix „csa_“ vorangestellt werden damit die Eigenschaft richtig festgelegt ist.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

Wenn Sie die Setter-Methode eines Parameters verwenden und sie mit setAdvancedOptionValue festlegen, überschreibt den Wert aus dem ersten Aufruf.

Fehler untersuchen

Die SearchAdView (searchAdView hier) enthält eine setAdListener()-Methode um Fehler zu untersuchen. Innerhalb derselben Activity:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

In der Callback-Methode onAdFailedToLoad() verwendete Konstanten sind in der API Referenz.

Auf die Offenlegungspflichten für Daten bei Google Play vorbereiten

Im Mai 2021 haben wir den neuen Abschnitt zur Datensicherheit in Google Play angekündigt. In diesem Abschnitt werden die Verfahren der Entwickler zur Erhebung, Weitergabe und Sicherheit von Daten in einer App beschrieben.

Auf dieser Seite finden Sie Informationen zur Offenlegung der Daten in Bezug auf die Nutzung des AFS Native SDK (gilt auch für AdSense für Shopping). Auf dieser Seite finden Sie Informationen dazu, ob und wie unsere SDKs mit Endnutzerdaten umgehen.

Wir möchten Sie so transparent wie möglich unterstützen. Sie als App-Entwickler entscheiden jedoch selbst, wie Sie das Formular für den Abschnitt zur Datensicherheit von Google Play in Bezug auf die Erhebung, Weitergabe und den Schutz Ihrer Daten durch Ihre App ausfüllen.

So verwenden Sie die Informationen auf dieser Seite

Auf dieser Seite werden die Endnutzerdaten aufgeführt, die nur von der neuesten SDK-Version erhoben werden.

Im Android-Leitfaden zu Datentypen können Sie nachlesen, welcher Datentyp am ehesten auf die erhobenen Daten zutrifft. Geben Sie außerdem an, wie in Ihrer App die erhobenen Daten weitergegeben und verwendet werden.

Datentyp, auf den das SDK zugreift und den es erhebt

Pakete:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

Automatisch erfasste Daten

Das AFS SDK erfasst die folgenden Daten automatisch. Alle Daten werden zum Schalten von Anzeigen vom Gerät an Google übertragen und alle Daten werden bei der Übertragung verschlüsselt. Personenbezogene Daten des Nutzers werden niemals erhoben, es sei denn, sie werden im Rahmen einer Nutzeranfrage von Ihrer App gesendet.

Daten Diese Daten werden für folgende Zwecke erhoben...
IP-Adresse <ph type="x-smartling-placeholder"></ph> Zusammenfassung: <ph type="x-smartling-placeholder">
    </ph>
  • Betrugsprävention, Sicherheit und Compliance
  • Werbung oder Marketing
  • Ungefähren Standort ableiten
<ph type="x-smartling-placeholder"></ph> Details:
Die IP-Adresse wird zur Überwachung von Betrug und Missbrauch sowie zur Ermittlung des ungefähren Standorts des Nutzers verwendet.

Der ungefähre Standort wird dann verwendet, um sicherzustellen, dass die Anzeigenbereitstellung den lokalen Vorschriften entspricht, und um Anzeigen auszuliefern, die für den ungefähren geografischen Standort eines Nutzers relevant sind.

App-Aktivitäten <ph type="x-smartling-placeholder">
    </ph>
  • Seitenaufrufe und Tippaktivitäten in der App
  • In-App-Suchverlauf
<ph type="x-smartling-placeholder"></ph> Zusammenfassung: <ph type="x-smartling-placeholder">
    </ph>
  • Analytics
  • Betrugsprävention, Sicherheit und Compliance
  • Werbung oder Marketing
  • Personalisierung
<ph type="x-smartling-placeholder"></ph> Details:
Ihre App übermittelt uns die Suchanfrage des Nutzers, damit wir Suchanzeigen zurückgeben können, die für das Keyword relevant sind. Wir messen die Aufrufe und das Engagement (Tippen) mit den zurückgegebenen Anzeigen.
Diagnose <ph type="x-smartling-placeholder"></ph> Zusammenfassung: <ph type="x-smartling-placeholder">
    </ph>
  • Analytics
<ph type="x-smartling-placeholder"></ph> Details:
Mit dem SDK wird die Rendering-Latenz für Anzeigen gemessen, damit Produktverbesserungen implementiert und gemessen werden können. Außerdem senden wir Absturzberichte und fügen gelegentlich weitere Instrumente hinzu, um zu verstehen, wie die Funktionen von Publishern verwendet werden.
Geräte-ID oder andere Kennungen <ph type="x-smartling-placeholder"></ph> Zusammenfassung: <ph type="x-smartling-placeholder">
    </ph>
  • Betrugsprävention, Sicherheit und Compliance
  • Werbung oder Marketing
<ph type="x-smartling-placeholder"></ph> Details:
Die Geräte-ID wird zur Überwachung von Betrug und Missbrauch sowie zur Messung der Anzeigenleistung verwendet.