Implementacja AdSense dla wyszukiwania do aplikacji mobilnych (AFMA) na Androidzie

Wymagania wstępne

W tym przewodniku po implementacji zakładamy, że znasz te zagadnienia:

  • Implementacja reklam AdSense w wyszukiwarce niestandardowej (CSA) protokół
  • Tworzenie aplikacji na Androida
  • Powiązanie reklam mobilnych Google SDK na Androida (obecnie część Usług Google Play) za pomocą projektu Android Studio. Wymagana jest wersja 9.0.0 Usług Google Play.

Zajęcia

Aby wyświetlać w aplikacji reklamy AdSense dla wyszukiwaniaMA (nazywane też dynamicznymi reklamami na wysokości w wyszukiwarce): zastosuj następujące klasy:

SearchAdView

  • Ta klasa dziedziczy z klasy ViewGroup na Androidzie i wyświetla reklamy AdSense dla wyszukiwania. SearchAdView wysyła żądanie reklamy z tagiem DynamicHeightSearchAdRequest i wyrenderuje zwrócone reklamy. Element SearchAdView należy dodać do dowolnej z istniejących grup widoków aplikacji.
  • Wystąpienie SearchAdView musi być utworzone z kontekstem których używa SearchAdView, zwykle Activity.
  • Po utworzeniu wystąpienia SearchAdView musisz wywołać metodę setAdSize() za pomocą AdSize.SEARCH, aby wysyłać żądania reklam AdSense dla wyszukiwania. Inne wartości typu enum będą wysyłać żądania reklam niezgodnych z AdSense dla wyszukiwania do aplikacji mobilnych.
  • Wywołaj metodę setAdUnitId() w tym obiekcie za pomocą kodu właściwości.

DynamicHeightSearchAdRequest.Builder

  • Ta klasa zawiera parametry żądania reklamy. Jest to analogiczne do ustawiania parametrów w obiektach żądań reklamy JavaScript. (opcje strony, opcje jednostki) w AdSense dla wyszukiwania w przeglądarce na komputery i w przeglądarce mobilnej.
  • Ustaw parametry za pomocą odpowiednich ustawień (innymi słowy wywołaj setQuery(), by ustawić parametr zapytania).

Przykładowa implementacja

Poniższy przykład pokazuje użycie Activity do utworzenia SearchAdView. jako widok podrzędny ViewGroup. Aby prawidłowo wysyłać żądania reklam AdSense dla wyszukiwania, SearchAdView obiekt musi wywoływać metodę setAdSize() z AdSize.SEARCH.

//  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
...

W obrębie tego samego elementu Activity utwórz element DynamicHeightSearchAdRequest.Builder, który określa parametry reklamy, które będą renderowane w elemencie SearchAdView. Reklamy AdSense dla wyszukiwania nie są skonfigurowane tak samo jak reklamy AdSense dla wyszukiwania w wyszukiwarce niestandardowej. zobacz reklamy AdSense dla wyszukiwania Źródła wiedzy .

// 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);

Inne opcje dostosowania są dostępne po ustawieniu dodatkowych właściwości na DynamicHeightSearchAdRequest.Builder obiektu.

Aby wysłać żądanie reklamy, wywołaj metodę loadAd() z parametrem Obiekt DynamicHeightSearchAdRequest.Builder z obiektu SearchAdView:

searchAdView.loadAd(builder.build());

Opcje zaawansowane

Większość parametrów żądania reklamy można ustawić za pomocą metod ustawiania na obiekcie DynamicHeightSearchAdRequest.Builder. Wszystkie parametry, które nie mają metody ustawiającej w DynamicHeightSearchAdRequest.Builder można ustawić za pomocą par klucz-wartość z setAdvancedOptionValue(). . Zobacz reklamy AdSense dla wyszukiwania w wyszukiwarce niestandardowej Źródła wiedzy zawiera pełną listę ustawień, które można skonfigurować setAdvancedOptionValue().

Parametr klucza musi mieć prefiks „csa_” , aby zapewnić prawidłowe ustawienie właściwości.

// 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");

Jeśli użyjesz metody ustawiania parametru i ustawisz ją za pomocą setAdvancedOptionValue, drugie wywołanie zastąpi wartość z pierwszego wywołania.

Badanie błędów

SearchAdView (tutaj searchAdView) zawiera metodę setAdListener() aby ułatwić analizę błędów. W tym samym okresie (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);
    }
});

Stałe używane w metodzie wywołania zwrotnego onAdFailedToLoad() są opisane w interfejsie API odwołania.

Przygotowanie do wymagań Google Play dotyczących ujawniania danych

W maju 2021 roku w Google Play pojawiła się nowa sekcja Bezpieczeństwo danych z pochodzącymi od deweloperów informacjami dotyczącymi zbierania, udostępniania i zabezpieczania danych użytkowników przez aplikacje.

Ta strona pomoże Ci spełnić wymagania dotyczące ujawniania danych w odniesieniu do korzystania z natywnego pakietu SDK AdSense dla wyszukiwania (dotyczy to też AdSense dla Zakupów Google). Na tej stronie znajdziesz informacje o tym, czy nasze pakiety SDK obsługują dane użytkowników, a jeśli tak, to w jaki sposób.

Staramy się wspierać Twoją firmę w najbardziej przejrzysty sposób. Jednak jako deweloper aplikacji ponosisz wyłączną odpowiedzialność za podjęcie decyzji o sposobie odpowiedzi w formularzu sekcji Bezpieczeństwo danych w Google Play w odniesieniu do zbierania, udostępniania i zabezpieczania danych użytkowników przez Twoją aplikację.

Jak korzystać z informacji na tej stronie

Ta strona zawiera listę danych użytkowników, które są zbierane tylko przez najnowszą wersję pakietu SDK.

Aby uzupełnić informacje o zbieraniu danych, możesz skorzystać z przewodnika po typach danych na Androidzie, który pomoże Ci określić, który typ danych najlepiej opisuje zbierane dane. W oświadczeniu o korzystaniu z danych musisz uwzględnić sposób udostępniania i wykorzystywania zgromadzonych danych przez aplikację.

Pakiet SDK typu danych uzyskuje dostęp do danych i je zbiera

Pakiety:

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

com.google.ads.afsn

Dane zbierane automatycznie

Pakiet SDK AdSense dla wyszukiwania automatycznie zbiera poniższe dane. Wszystkie dane są przesyłane z urządzenia do Google na potrzeby wyświetlania reklam, a wszystkie dane są szyfrowane podczas przesyłania. Dane osobowe użytkownika nigdy nie są zbierane, chyba że Twoja aplikacja wysyła je w zapytaniu.

Dane Te dane są zbierane w następujących celach...
Adres IP Podsumowanie:
  • Zapobieganie oszustwom, bezpieczeństwo i zgodność z przepisami
  • Cele marketingowe
  • Określ przybliżoną lokalizację
. Szczegóły:
Adres IP jest używany do monitorowania oszustw i nadużyć oraz ustalania przybliżonej lokalizacji użytkownika.

Następnie używamy przybliżonej lokalizacji, aby mieć pewność, że wyświetlane reklamy są zgodne z lokalnymi przepisami, i wyświetlać reklamy dopasowane do przybliżonej lokalizacji geograficznej użytkownika.

Aktywność w aplikacjach
  • Wyświetlenia stron i kliknięcia w aplikacji
  • Historia wyszukiwania w aplikacji
Podsumowanie:
  • Analytics
  • Zapobieganie oszustwom, bezpieczeństwo i zgodność z przepisami
  • Cele marketingowe
  • Personalizacja
. Szczegóły:
Aplikacja przekazuje zapytanie użytkownika, co pozwala nam wyświetlać reklamy w wyszukiwarce odpowiednie do słowa kluczowego. Mierzymy wyświetlenia i zaangażowanie (kliknięcia) dla zwróconych reklam.
Diagnostyka Podsumowanie:
  • Analytics
. Szczegóły:
Pakiet SDK mierzy czas oczekiwania na renderowanie reklam, aby umożliwiać wdrażanie i mierzenie ulepszeń usługi. Wysyłamy też raporty o awariach i błędach, a w razie potrzeby dodajemy inne narzędzia, aby lepiej zrozumieć, w jaki sposób wydawcy korzystają z tych funkcji.
Identyfikatory urządzeń i inne Podsumowanie:
  • Zapobieganie oszustwom, bezpieczeństwo i zgodność z przepisami
  • Cele marketingowe
. Szczegóły:
Identyfikator urządzenia pomaga monitorować oszustwa i nadużycia, a także mierzyć skuteczność reklam.