Reklamy natywne to komponenty reklamowe, które są prezentowane użytkownikom za pomocą komponentów interfejsu natywnych dla platformy. Wyświetlają się one w tych samych typach widoków, których używasz do tworzenia układów, i można je sformatować tak, aby pasowały do wyglądu aplikacji.
Gdy reklama natywna się wczyta, aplikacja otrzymuje obiekt reklamy zawierający jej komponenty, a za ich wyświetlanie odpowiada aplikacja, a nie GMA Next-Gen SDK.
Ogólnie rzecz biorąc, pomyślna implementacja reklam natywnych składa się z 2 części: wczytania reklamy za pomocą pakietu SDK i wyświetlenia treści reklamy 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 0.6.0-alpha01 lub nowszej.
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej testowej dla reklam natywnych:
| Format reklamy | Przykładowy identyfikator jednostki reklamowej |
|---|---|
| Natywna | ca-app-pub-3940256099942544/2247696110 |
| Natywna wideo | ca-app-pub-3940256099942544/1044960115 |
Wczytywanie reklamy
Aby wczytać reklamę natywną, wywołaj NativeAdLoader.load()
metodę, która przyjmuje argumenty 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"
}
}
Ustawianie wywołania zwrotnego zdarzenia reklamy natywnej
Podczas obsługi zdarzenia onNativeAdLoaded ustaw otrzymany obiekt 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 metodę load() z opcjonalnym parametrem numberOfAds.
Maksymalna wartość, jaką możesz ustawić, to 5, która oznacza liczbę reklam.
GMA Next-Gen SDK może nie zwrócić dokładnej liczby reklam, o którą 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 używasz mediacji, nie wywołuj metody load(). Żądania dotyczące wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem mediacji.
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych zasad.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie zapisywać w pamięci podręcznej listę reklam.
Podczas wstępnego zapisywania reklam w pamięci podręcznej wyczyść pamięć podręczną i przeładuj stronę po godzinie.
Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego zapisywania w pamięci podręcznej zapisuj tylko reklamy, które są od razu widoczne na ekranie. Reklamy natywne mają duże wykorzystanie pamięci, a buforowanie reklam natywnych bez ich niszczenia powoduje nadmierne zużycie pamięci.
Niszcz 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, akceleracja sprzętowa musi być włączona.
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 używają reklam.
Włączanie akceleracji sprzętowej
Jeśli Twoja aplikacja nie działa prawidłowo przy włączonej akceleracji sprzętowej, możesz ją kontrolować także w przypadku poszczególnych aktywności. Aby włączyć lub
wyłączyć akcelerację sprzętową, użyj atrybutu
android:hardwareAccelerateddla
<application>
i
<activity>
elementów w pliku AndroidManifest.xml. Poniższy przykład włącza akcelerację sprzętową w całej aplikacji, ale wyłącza ją w przypadku 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 sterowania akceleracją sprzętową znajdziesz w przewodniku dotyczącym akceleracji sprzętowej. Pamiętaj, że poszczególne widoki reklam nie mogą być włączone do akceleracji sprzętowej, jeśli aktywność jest wyłączona, więc sama aktywność musi mieć włączoną akcelerację sprzętową.
Wyświetlanie reklamy
Gdy reklama się wczyta, wystarczy ją wyświetlić użytkownikom. Aby dowiedzieć się, jak to zrobić, zapoznaj się z naszym przewodnikiem dotyczącym zaawansowanych reklam natywnych.
Przykład
Pobierz i uruchom przykładową aplikację , która pokazuje, jak używać GMA Next-Gen SDK.