Reklamy natywne to komponenty reklamowe, które są wyświetlane użytkownikom za pomocą komponentów interfejsu, które są natywne dla platformy. Są one wyświetlane w tych samych typach widoków, w których tworzysz już układy, i można je sformatować tak, aby pasowały do projektu graficznego aplikacji.
Gdy reklama natywna się wczyta, aplikacja otrzyma obiekt reklamy zawierający jej komponenty. Za wyświetlanie tych komponentów odpowiada wtedy aplikacja, a nie pakiet SDK do reklam mobilnych Google (beta).
Wprowadzenie reklam natywnych składa się z 2 etapów: ładowania reklamy za pomocą pakietu SDK, a następnie wyświetlania 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 przewodniku po reklamach 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
- Zapoznaj się z przewodnikiem dla początkujących.
- Pakiet SDK do reklam mobilnych Google (beta) w wersji 0.6.0-alpha01 lub nowszej.
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych zamiast reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej w przypadku 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 metodę NativeAdLoader.load()
, 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 onNativeAdLoaded
ustaw otrzymany NativeAd
z 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ć wiele reklam, wywołaj funkcję load()
z opcjonalnym parametrem numberOfAds
.
Maksymalna wartość, jaką możesz ustawić, to 5
, która reprezentuje liczbę reklam.
Pakiet SDK do reklam mobilnych Google (wersja beta) może nie zwracać 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 pakiet SDK do reklam mobilnych Google (wersja beta) są unikalne, ale reklamy z zarezerwowanych zasobów reklamowych lub od zewnętrznych kupujących mogą nie być unikalne.
Jeśli używasz zapośredniczenia, nie wywołuj metody load()
. Żądania wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem zapośredniczenia.
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych reguł.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie buforować listę reklam.
Podczas wstępnego buforowania reklam wyczyść pamięć podręczną i ponownie załaduj stronę po godzinie.
Ogranicz buforowanie reklam natywnych tylko do niezbędnych elementów. Na przykład podczas wstępnego buforowania buforuj tylko reklamy, które są od razu widoczne na ekranie. Reklamy natywne zajmują dużo pamięci, a ich buforowanie bez 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 były prawidłowo wyświetlane w widokach reklam natywnych, musi być włączona akceleracja sprzętowa.
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 aplikacja nie działa prawidłowo po włączeniu akceleracji sprzętowej w całym systemie, możesz też sterować nią w przypadku poszczególnych działań. Aby włączyć lub wyłączyć akcelerację sprzętową, użyj atrybutu android:hardwareAccelerated
w elementach <application>
i <activity>
w pliku AndroidManifest.xml
. W tym przykładzie włączamy akcelerację sprzętową w całej aplikacji, ale wyłączamy 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 po akceleracji sprzętowej. Uwaga: wyświetleń poszczególnych reklam nie można włączyć w przypadku akceleracji sprzętowej, jeśli aktywność jest wyłączona. Akceleracja sprzętowa musi być włączona w przypadku samej aktywności.
Wyświetlanie reklamy
Po wczytaniu reklamy wystarczy wyświetlić ją użytkownikom. Aby dowiedzieć się, jak to zrobić, zapoznaj się z naszym przewodnikiem po reklamach natywnych w wersji zaawansowanej.
Przykład
Pobierz i uruchom przykładową aplikację, która pokazuje, jak korzystać z pakietu SDK do reklam mobilnych Google (wersja beta).