Penerapan AFS untuk Aplikasi Seluler (AFSMA) untuk Android

Prasyarat

Panduan penerapan ini mengasumsikan bahwa Anda telah memahami hal-hal berikut:

  • Protokol penerapan Iklan Penelusuran Khusus (CSA) AFS
  • Pengembangan aplikasi Android
  • Mengaitkan Google Mobile Ads SDK untuk Android (kini bagian dari layanan Google Play) dengan project Android Studio. Layanan Google Play versi 9.0.0 wajib diisi.

Class

Untuk menayangkan iklan AFSMA (juga dikenal sebagai iklan penelusuran tinggi dinamis) di aplikasi Anda, terapkan kelas berikut:

SearchAdView

  • Class ini mewarisi dari class ViewGroup Android dan menampilkan iklan AFSMA. SearchAdView membuat permintaan untuk iklan dengan DynamicHeightSearchAdRequest dan merender iklan yang ditampilkan. SearchAdView harus ditambahkan ke salah satu kelompok tampilan yang ada di aplikasi.
  • SearchAdView harus dibuat instance-nya dengan konteks tempat SearchAdView berjalan, biasanya Activity.
  • Setelah instance SearchAdView dibuat, Anda harus memanggil metode setAdSize() dengan AdSize.SEARCH untuk meminta iklan AFSMA. Nilai enum lainnya akan meminta iklan yang tidak kompatibel dengan AFS untuk Aplikasi Seluler.
  • Panggil metode setAdUnitId() pada objek ini dengan kode properti Anda.

DynamicHeightSearchAdRequest.Builder

  • Class ini mengenkapsulasi parameter permintaan iklan. Hal ini serupa dengan penetapan parameter di objek permintaan iklan JavaScript (opsi halaman, opsi unit) untuk web seluler dan desktop AFS.
  • Tetapkan parameter dengan penyetel yang sesuai (dengan kata lain, panggil setQuery() untuk menetapkan parameter kueri).

Contoh implementasi

Contoh di bawah menunjukkan penggunaan Activity untuk membuat SearchAdView sebagai sub-tampilan dari ViewGroup. Untuk meminta iklan AFSMA dengan benar, objek SearchAdView harus memanggil metode setAdSize() dengan 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
...

Dalam Activity yang sama, buat DynamicHeightSearchAdRequest.Builder yang mendikte parameter iklan yang akan dirender dalam SearchAdView. Iklan AFSMA dikonfigurasi dengan cara yang sama seperti Iklan Penelusuran Khusus AFS. lihat Referensi Iklan Penelusuran Khusus AFS untuk mengetahui detailnya.

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

Opsi penyesuaian lainnya dapat dilakukan dengan menetapkan properti tambahan pada objek DynamicHeightSearchAdRequest.Builder.

Untuk membuat permintaan iklan, panggil metode loadAd() dengan objek DynamicHeightSearchAdRequest.Builder dari objek SearchAdView:

searchAdView.loadAd(builder.build());

Opsi lanjutan

Sebagian besar parameter permintaan iklan dapat ditetapkan melalui metode penyetel pada objek DynamicHeightSearchAdRequest.Builder. Setiap parameter yang tidak memiliki metode penyetel di DynamicHeightSearchAdRequest.Builder dapat ditetapkan menggunakan pasangan nilai kunci dengan metode setAdvancedOptionValue(). Lihat Referensi Iklan Penelusuran Khusus AFS untuk listingan lengkap setelan yang dapat ditetapkan dengan metode setAdvancedOptionValue().

Parameter kunci harus diawali dengan "csa_" agar properti dapat ditetapkan dengan benar.

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

Jika Anda menggunakan metode penyetel parameter dan menetapkannya menggunakan setAdvancedOptionValue, panggilan kedua akan mengganti nilai dari panggilan pertama.

Menyelidiki error

SearchAdView (searchAdView di sini) berisi metode setAdListener() untuk membantu Anda menyelidiki error. Dalam Activity yang sama:

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

Konstanta yang digunakan dalam metode callback onAdFailedToLoad() dijelaskan dalam referensi API.

Persiapan untuk persyaratan pengungkapan data Google Play

Pada Mei 2021, Google Play mengumumkan bagian Keamanan Data baru, yang merupakan pengungkapan praktik pengumpulan, berbagi, dan keamanan data aplikasi yang disediakan oleh developer.

Halaman ini dapat membantu Anda memenuhi persyaratan pengungkapan data ini terkait penggunaan Anda atas SDK Native AFS (juga berlaku untuk penggunaan AdSense untuk Shopping). Di halaman ini, Anda dapat menemukan informasi tentang apakah SDK kami menangani data pengguna akhir dan bagaimana caranya.

Kami berupaya bersikap setransparan mungkin dalam mendukung Anda. Namun, sebagai developer aplikasi, Anda sepenuhnya bertanggung jawab untuk memutuskan cara merespons formulir bagian Keamanan Data Google Play terkait praktik pengumpulan, pembagian, dan keamanan data pengguna akhir.

Cara menggunakan informasi di halaman ini

Halaman ini mencantumkan data pengguna akhir yang dikumpulkan hanya oleh SDK versi terbaru.

Untuk melengkapi pengungkapan data, Anda dapat menggunakan panduan tentang jenis data Android untuk membantu menentukan jenis data yang paling sesuai dengan data yang dikumpulkan. Dalam pengungkapan data, pastikan Anda juga memperhitungkan cara aplikasi tertentu membagikan dan menggunakan data yang dikumpulkan.

Jenis data yang diakses dan dikumpulkan oleh SDK

Paket:

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

com.google.ads.afsn

Data yang dikumpulkan secara otomatis

AFS SDK mengumpulkan data berikut secara otomatis. Semua data dikirim dari perangkat ke Google untuk tujuan penayangan iklan, dan semua data dienkripsi saat dalam pengiriman. Informasi pribadi pengguna tidak pernah dikumpulkan, kecuali jika dikirimkan dalam kueri pengguna oleh aplikasi Anda.

Data Data ini dikumpulkan untuk tujuan berikut...
IP address Ringkasan:
  • Pencegahan penipuan, keamanan, dan kepatuhan
  • Iklan atau pemasaran
  • Mendapatkan perkiraan lokasi
Detail:
Alamat IP digunakan dalam pemantauan penipuan dan penyalahgunaan, serta digunakan untuk mendapatkan perkiraan lokasi pengguna.

Perkiraan lokasi kemudian digunakan untuk memastikan iklan yang ditayangkan dapat sesuai dengan peraturan setempat, dan untuk memberikan iklan yang relevan dengan lokasi geografis umum pengguna.

Aktivitas aplikasi
  • Kunjungan halaman dan jumlah ketukan dalam aplikasi
  • Histori penelusuran dalam aplikasi
Ringkasan:
  • Analytics
  • Pencegahan penipuan, keamanan, dan kepatuhan
  • Iklan atau pemasaran
  • Personalisasi
Detail:
Aplikasi Anda memberikan kueri pengguna agar kami dapat menampilkan Iklan Penelusuran yang relevan dengan kata kunci. Kami mengukur penayangan dan keterlibatan (ketukan) dengan iklan yang dihasilkan.
Diagnostik Ringkasan:
  • Analytics
Detail:
SDK ini mengukur latensi rendering untuk iklan agar peningkatan produk dapat diterapkan dan diukur. Kami juga mengirimkan laporan kerusakan/error dan sesekali menambahkan instrumentasi lain sesuai kebutuhan untuk memahami cara penayang menggunakan fungsi.
ID perangkat atau lainnya Ringkasan:
  • Pencegahan penipuan, keamanan, dan kepatuhan
  • Iklan atau pemasaran
Detail:
ID perangkat digunakan untuk membantu pemantauan penipuan dan penyalahgunaan, serta pengukuran performa iklan.