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 reklamowy zawierający jej komponenty, od tego momentu to aplikacja, a nie GMA Next-Gen SDK—odpowiada za ich wyświetlanie.
Wdrożenie 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 wczytywać reklamy natywne za pomocą pakietu SDK. 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.
- Wersja GMA Next-Gen SDK
1.0.0lub nowsza.
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej do testowania 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 usuwania powoduje nadmierne wykorzystanie 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, 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 nie można włączyć akceleracji sprzętowej w przypadku poszczególnych widoków reklam, jeśli jest ona wyłączona w przypadku aktywności. Akceleracja sprzętowa musi być włączona w przypadku samej aktywności.
Wyświetlanie reklamy
Gdy wczytasz reklamę, 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.