Reklamy natywne to komponenty reklam, które są wyświetlane użytkownikom za pomocą komponentów interfejsu natywnych dla danej platformy. Są wyświetlane przy użyciu tych samych typów widoków, których używasz już do tworzenia układów, i można je sformatować tak, aby pasowały do wyglądu aplikacji.
Gdy reklama natywna się wczytuje, aplikacja otrzymuje obiekt reklamy zawierający jej komponenty i to aplikacja, a nie GMA Next-Gen SDK, odpowiada za ich wyświetlanie.
Ogólnie rzecz biorąc, skuteczne wdrożenie reklam natywnych składa się z 2 etapów: wczytania reklamy za pomocą pakietu SDK, a następnie wyświetlenia jej treści w aplikacji.
Na tej stronie dowiesz się, jak używać pakietu SDK do wczytywania reklam natywnych. Wskazówka: więcej informacji o reklamach natywnych znajdziesz w naszym poradniku dotyczącym reklam natywnych.
Przykłady są dostępne w językach Java i Kotlin.Możesz też zapoznać się z historiami sukcesu klientów: studium przypadku 1, studium przypadku 2.
Wymagania wstępne
- Skonfiguruj GMA Next-Gen SDK.
- GMA Next-Gen SDK w wersji
1.0.0lub nowszej.
Zawsze przeprowadzaj testy z użyciem reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby reklam natywnych:
| Format reklamy | Przykładowy identyfikator jednostki reklamowej |
|---|---|
| Rodzimy użytkownik | ca-app-pub-3940256099942544/2247696110 |
| Natywna wideo | ca-app-pub-3940256099942544/1044960115 |
Wczytywanie reklamy
Aby wczytać reklamę natywną, wywołaj metodę NativeAdLoader.load(), która przyjmuje parametry NativeAdRequest i NativeAdLoaderCallback.
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest
class NativeFragment : Fragment() {
private var nativeAd: NativeAd? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadAd()
}
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, adCallback)
}
companion object {
// Sample native ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
}
}
Konfigurowanie wywołania zwrotnego zdarzenia reklamy natywnej
Podczas obsługi onNativeAdLoaded ustaw otrzymany NativeAd za pomocą NativeAdEventCallback, aby zdefiniować funkcje do odbierania zdarzeń cyklu życia reklamy natywnej:
nativeAd.adEventCallback =
object : NativeAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Native ad showed full screen content.
}
override fun onAdDismissedFullScreenContent() {
// Native ad dismissed full screen content.
}
override fun onAdFailedToShowFullScreenContent {
// Native ad failed to show full screen content.
}
override fun onAdImpression() {
// Native ad recorded an impression.
}
override fun onAdClicked() {
// Native ad recorded a click.
}
}
Opcjonalnie: wczytywanie wielu reklam
Aby wczytać kilka reklam, wywołaj load() z opcjonalnym parametrem numberOfAds.
Maksymalna wartość, jaką możesz ustawić, to 5, co oznacza liczbę reklam.
GMA Next-Gen SDK może nie zwrócić dokładnie takiej liczby reklam, o jaką prosisz.
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
override fun onAdLoadingCompleted() {
// Called when all native ads have loaded.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, 3, adCallback)
}
Reklamy zwracane przez GMA Next-Gen SDK są unikalne, ale reklamy z zarezerwowanych zasobów reklamowych lub od zewnętrznych kupujących mogą nie być unikalne.
Jeśli korzystasz z zapośredniczenia, nie wywołuj metody load(). Żądania dotyczące wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych na potrzeby zapośredniczenia.
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych zasad.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie zapisać listę reklam w pamięci podręcznej.
Jeśli wstępnie buforujesz reklamy, po godzinie wyczyść pamięć podręczną i ponownie załaduj stronę.
Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego zapisywania w pamięci podręcznej zapisuj tylko te reklamy, które są od razu widoczne na ekranie. Reklamy natywne mają duże wykorzystanie pamięci, a buforowanie ich bez niszczenia powoduje nadmierne zużycie pamięci.
Usuwaj reklamy natywne, gdy nie są już używane.
Akceleracja sprzętowa w przypadku reklam wideo
Aby reklamy wideo wyświetlały się prawidłowo w widokach reklam natywnych, musisz włączyć akcelerację sprzętową.
Akceleracja sprzętowa jest domyślnie włączona, ale niektóre aplikacje mogą ją wyłączyć. Jeśli dotyczy to Twojej aplikacji, zalecamy włączenie akceleracji sprzętowej w przypadku klas Activity, które korzystają z reklam.
Włączanie akceleracji sprzętowej
Jeśli aplikacja nie działa prawidłowo z włączoną globalnie akceleracją sprzętową, możesz ją kontrolować również w przypadku poszczególnych działań. Aby włączyć lub wyłączyć akcelerację sprzętową, użyj atrybutu android:hardwareAccelerated dla elementów <application> i <activity> w pliku AndroidManifest.xml. W tym przykładzie akceleracja sprzętowa jest włączona w całej aplikacji, ale wyłączona w jednej aktywności:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Więcej informacji o opcjach kontrolowania akceleracji sprzętowej znajdziesz w przewodniku po akceleracji sprzętowej. Pamiętaj, że nie można włączyć akceleracji sprzętowej w przypadku wyświetleń pojedynczych reklam, jeśli aktywność jest wyłączona, więc aktywność musi mieć włączoną akcelerację sprzętową.
Wyświetlanie reklamy
Po wczytaniu reklamy wystarczy ją wyświetlić użytkownikom. Więcej informacji znajdziesz w artykule Zaawansowane reklamy natywne lub Pełnoekranowe reklamy natywne.
Przykład
Pobierz i uruchom przykładową aplikację, która pokazuje, jak używać GMA Next-Gen SDK.