Z tego przewodnika dowiesz się, jak przekazywać informacje o kierowaniu do pakietu SDK do reklam mobilnych Google.
Warunek wstępny
Zanim przejdziesz dalej, skonfiguruj GMA Next-Gen SDK.
RequestConfiguration
RequestConfiguration
zbiera informacje o kierowaniu stosowane globalnie do każdego żądania reklamy. Dostępne tagi kierowania znajdziesz w
RequestConfiguration.Builder
dokumentacji.
Utwórz obiekt RequestConfiguration z tagami kierowania, których potrzebujesz, używając
jego narzędzia do tworzenia, a następnie ustaw konfigurację, wywołując
MobileAds.setRequestConfiguration().
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Aby zastosować tagi kierowania z pierwszego żądania reklamy, podaj konfigurację żądania podczas inicjowania pakietu SDK:
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
CoroutineScope(Dispatchers.IO).launch {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(
this@MainActivity,
InitializationConfig
// Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
.Builder("SAMPLE_APP_ID")
.setRequestConfiguration(requestConfiguration)
.build()
) {
// Adapter initialization is complete.
}
// Other methods on MobileAds can now be called.
}
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
new Thread(
() -> {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(
this,
// Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
new InitializationConfig
.Builder("SAMPLE_APP_ID")
.setRequestConfiguration(requestConfiguration)
.build(),
initializationStatus -> {
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
Ustawienie dotyczące treści skierowanych do dzieci
Na potrzeby ustawy o ochronie prywatności dzieci w internecie (COPPA) istnieje ustawienie „Tagowanie treści jako skierowanych do dzieci”. Ustawiając ten tag, potwierdzasz, że to powiadomienie jest poprawne i że posiadasz uprawnienia do działania w imieniu właściciela aplikacji. Rozumiesz, że nadużywanie tego ustawienia może być przyczyną zamknięcia Twojego konta Google.
Deweloper aplikacji może wskazać w żądaniu reklamy, czy Google ma traktować treści w tej aplikacji jako skierowane do dzieci. Jeśli wskażesz, że chcesz, aby Google traktował Twoje treści jako skierowane do dzieci, podejmiemy działania, aby wyłączyć reklamy oparte na zainteresowaniach i reklamy remarketingowe w przypadku tego żądania reklamy.
Ustawienie dotyczące treści skierowanych do dzieci możesz zastosować za pomocą
setTagForChildDirectedTreatment():
Wywołaj
setTagForChildDirectedTreatmentz wartościąTAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE, aby wskazać, że chcesz, aby Twoje treści były traktowane jako skierowane do dzieci na potrzeby COPPA. Uniemożliwia to przesyłanie identyfikatora wyświetlania reklam Androida (AAID).Wywołaj
setTagForChildDirectedTreatmentz wartościąTAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE, aby wskazać, że nie chcesz, aby Twoje treści były traktowane jako skierowane do dzieci na potrzeby COPPA.Wywołaj
setTagForChildDirectedTreatmentz wartościąTAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED, jeśli nie chcesz wskazywać, jak mają być traktowane Twoje treści w żądaniach reklamy w odniesieniu do COPPA.
Poniższy przykład pokazuje, że chcesz, aby Twoje treści były traktowane jako skierowane do dzieci na potrzeby COPPA:
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Użytkownicy, którzy nie osiągnęli wieku świadomego wyrażenia zgody
Możesz oznaczyć swoje żądania reklamy, by były traktowane jako dotyczące użytkowników z Europejskiego Obszaru Gospodarczego (EOG), którzy nie osiągnęli wieku świadomego wyrażenia zgody. Dodaliśmy tę funkcję, by ułatwić spełnianie wymogów Ogólnego rozporządzenia o ochronie danych (RODO). Pamiętaj, że zgodnie z RODO możesz mieć także inne zobowiązania. Zapoznaj się ze wskazówkami Unii Europejskiej i skonsultuj ze swoim radcą prawnym. Pamiętaj, że narzędzia Google pomagają w przestrzeganiu przepisów, ale nie zwalniają żadnego wydawcy z jego zobowiązań wobec prawa. Więcej informacji o tym, jak RODO wpływa na działalność wydawców.
Jeśli użyjesz tej funkcji, do żądania reklamy dodamy parametr Tag For Users under the Age of Consent in Europe (TFUA – tag stosowany w przypadku użytkowników z Europy, którzy nie osiągnęli wieku świadomego wyrażenia zgody). Ten parametr wyłącza reklamy spersonalizowane, w tym remarketingowe, we wszystkich żądaniach reklamy. Uniemożliwia też przesyłanie żądań do zewnętrznych dostawców reklam – dotyczy to np. pikseli pomiaru skuteczności reklam lub serwerów reklamowych firm zewnętrznych.
Podobnie jak w przypadku ustawień dotyczących treści skierowanych do dzieci, w
RequestConfiguration.Builder znajduje się metoda ustawiania parametru TFUA:
setTagForUnderAgeOfConsent(),
z tymi opcjami:
Wywołaj
setTagForUnderAgeOfConsent()z wartościąTAG_FOR_UNDER_AGE_OF_CONSENT_TRUE, aby wskazać, że chcesz, aby żądanie reklamy było traktowane jako dotyczące użytkowników z Europejskiego Obszaru Gospodarczego (EOG), którzy nie osiągnęli wieku świadomego wyrażenia zgody. Uniemożliwia to też przesyłanie identyfikatora wyświetlania reklam Androida (AAID).Wywołaj
setTagForUnderAgeOfConsent()z wartościąTAG_FOR_UNDER_AGE_OF_CONSENT_FALSE, aby wskazać, że nie chcesz, aby żądanie reklamy było traktowane jako dotyczące użytkowników z Europejskiego Obszaru Gospodarczego (EOG), którzy nie osiągnęli wieku świadomego wyrażenia zgody.Wywołaj
setTagForUnderAgeOfConsent()z wartościąTAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED, aby wskazać, że nie określono, czy żądanie reklamy ma być traktowane jako dotyczące użytkowników z Europejskiego Obszaru Gospodarczego (EOG), którzy nie osiągnęli wieku świadomego wyrażenia zgody.
Poniższy przykład pokazuje, że chcesz, aby tag TFUA był uwzględniany w Twoich żądaniach reklamy:
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setTagForUnderAgeOfConsent(TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Tagi umożliwiające włączenie ustawienia dotyczącego treści skierowanych do dzieci i setTagForUnderAgeOfConsent() nie powinny mieć jednocześnie wartości true.
Jeśli jednak tak jest, ustawienie dotyczące treści skierowanych do dzieci ma pierwszeństwo.
Filtrowanie treści reklam
Aby zachować zgodność z zasadami Google Play dotyczącymi nieodpowiednich reklam , które obejmują powiązane oferty w reklamie, wszystkie reklamy i powiązane z nimi oferty wyświetlane w Twojej aplikacji muszą odpowiadać ocenie treści aplikacji nawet wtedy, gdy ich zawartość jest pod innymi względami zgodna z zasadami Google Play.
Narzędzia takie jak maksymalna ocena treści reklam pozwalają lepiej kontrolować zawartość reklam wyświetlanych użytkownikom. Aby zachować zgodność z zasadami platformy, możesz ustawić maksymalną ocenę treści.
Aplikacje mogą ustawić maksymalną ocenę treści reklam w swoich żądaniach reklamy za pomocą metody
setMaxAdContentRating. Reklamy AdMob zwracane po skonfigurowaniu tej opcji mają ocenę treści na tym poziomie lub niższą. Dostępne wartości tego dodatku do sieci są oparte na
klasyfikacjach etykiet treści cyfrowych i muszą być jednym z tych
ciągów:
MAX_AD_CONTENT_RATING_GMAX_AD_CONTENT_RATING_PGMAX_AD_CONTENT_RATING_TMAX_AD_CONTENT_RATING_MA
Ten kod konfiguruje obiekt RequestConfiguration, aby określić, że zwracane treści reklam powinny odpowiadać etykiecie treści cyfrowych nie wyższej niż G:
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
.setMaxAdContentRating(RequestConfiguration.MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Dowiedz się więcej o ustawianiu maksymalnej oceny treści dla każdego żądania reklamy.
Publisher Privacy Treatment API (beta)
Publisher Privacy Treatment(PPT) API to opcjonalne narzędzie, które umożliwia aplikacjom wskazywanie, czy wyłączyć personalizację reklam we wszystkich żądaniach reklamy za pomocą metody.setPublisherPrivacyPersonalizationState() Gdy używasz tej funkcji, parametr Publisher Privacy Treatment (PPT) jest uwzględniany we wszystkich przyszłych żądaniach reklamy do końca sesji.
Domyślnie żądania reklam wysyłane do Google powodują wyświetlanie reklam spersonalizowanych. Ten kod wyłącza personalizację reklam we wszystkich żądaniach reklamy:
Kotlin
val requestConfiguration = RequestConfiguration
.Builder()
.setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Java
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Żądanie reklamy
Obiekt AdRequest zbiera informacje o kierowaniu, które mają być wysyłane
z żądaniem reklamy.
Dodawanie dodatkowych informacji wysyłanych z żądaniem reklamy
Dodatki do sieci to dodatkowe informacje wysyłane z żądaniem reklamy, które są specyficzne dla danego źródła reklam.
Ten fragment kodu ustawia w Google dodatkowy parametr collapsible z wartością bottom:
Kotlin
val extras = Bundle()
extras.putString("collapsible", "bottom")
val adRequest =
NativeAdRequest.Builder("AD_UNIT_ID", listOf(NativeAd.NativeAdType.NATIVE))
.setGoogleExtrasBundle(extras)
.build()
NativeAdLoader.load(adRequest, adCallback)
Java
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
NativeAdRequest adRequest =
new NativeAdRequest.Builder("AD_UNIT_ID", Arrays.asList(NativeAd.NativeAdType.NATIVE))
.setGoogleExtrasBundle(extras)
.build();
NativeAdLoader.load(adRequest, adCallback);
Kierowanie niestandardowe
Możesz przekazywać niestandardowe pary klucz-wartość, aby kierować na kampanie (elementy zamówienia) w Google Ad Managerze. Ten przykład przekazuje niestandardową parę klucz-wartość w żądaniu reklamy:
Kotlin
// Example: Pass custom targeting "age=25".
val newRequest = AdRequest.Builder("AD_UNIT_ID")
.putCustomTargeting("age", "25")
.build()
Java
// Example: Pass custom targeting "age=25".
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
.putCustomTargeting("age", "25")
.build();
Możesz przekazywać wiele wartości klucza jako listę ciągów znaków. Na przykład, aby kierować na osoby w wieku 20–29 lat, a nie tylko na 25-latków.
Kotlin
.putCustomTargeting("age", listOf("24", "25", "26"))
Java
.putCustomTargeting("age", Arrays.asList("24", "25", "26"));
Wykluczenia kategorii
Aby dodać do żądania wykluczenie kategorii na poziomie boksu reklamowego, użyj metody
addCategoryExclusion():
Kotlin
// Example: Exclude "automobile" and "boat" categories.
val newRequest = AdRequest.Builder("AD_UNIT_ID")
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build()
Java
// Example: Exclude "automobile" and "boat" categories.
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build();
Przykład wykluczeń kategorii w Ad Managerze pokazuje, jak zaimplementować wykluczenia kategorii w aplikacji w wersji demonstracyjnej Android API.
Identyfikatory podawane przez wydawcę
Możesz ustawić identyfikator podawany przez wydawcę (PPID) do użycia na potrzeby ograniczenia liczby wyświetleń, segmentacji odbiorców, kierowania, sekwencyjnej rotacji reklam i innych funkcji sterujących wyświetlaniem reklam w zależności od odbiorców na różnych urządzeniach.
.Oto przykład ustawiania identyfikatora PPID:
Kotlin
val adRequest = AdRequest.Builder("AD_UNIT_ID")
.setPublisherProvidedId("AB123456789")
.build()
Java
AdRequest adRequest = new AdRequest.Builder("AD_UNIT_ID")
.setPublisherProvidedId("AB123456789")
.build();
Zobacz przykład identyfikatora PPID w Ad Managerze, aby dowiedzieć się, jak zaimplementować identyfikatory podawane przez wydawcę (PPID) w aplikacji w wersji demonstracyjnej Android API.
Sygnały dostarczane przez wydawcę
W żądaniach reklamy możesz wysyłać dane o odbiorcach i dane kontekstowe jako sygnały dostarczane przez wydawcę. Dzięki sygnałom dostarczanym przez wydawcę możesz używać danych użytkownika do zwiększania przychodów z reklam programowych, przekazując charakterystykę odbiorców licytującym we wszystkich typach transakcjiza pomocą standardowych taksonomii bez konieczności udostępniania identyfikatorów użytkowników. Charakterystyka odbiorców może obejmować dane behawioralne i dane o zainteresowaniach (taksonomia odbiorców IAB 1.1) oraz dane kontekstowe (taksonomia treści IAB 2.2).
Kotlin
val extras = Bundle()
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284))
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6))
val request = AdRequest.Builder("AD_UNIT_ID")
.setGoogleExtrasBundle(extras)
.build()
Java
Bundle extras = new Bundle();
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284));
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6));
AdRequest request = new AdRequest.Builder("AD_UNIT_ID")
.setGoogleExtrasBundle(extras)
.build();
URL treści
Aby podać URL treści na potrzeby reklam kierowanych na treści i bezpieczeństwa marki, dodaj te informacje:
Kotlin
val builder = AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com")
val request = builder.build()
Java
AdRequest.Builder builder = new AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com");
AdRequest request = builder.build();
Bezpieczeństwo marki (beta)
Aplikacje, które wyświetlają treści dynamiczne przeznaczone dla różnych odbiorców, mogą podać krótką listę adresów URL:
Kotlin
val urls = mutableListOf("https://www.mycontenturl1.com", "https://www.mycontenturl2.com",
"https://www.mycontenturl3.com", "https://www.mycontenturl4.com")
val requestWithContent = AdRequest.Builder("AD_UNIT_ID")
.setNeighboringContentUrls(urls)
.build()
Java
ArrayList<String> urls = new ArrayList<String>();
urls.add("https://www.mycontenturl1.com");
urls.add("https://www.mycontenturl2.com");
urls.add("https://www.mycontenturl3.com");
urls.add("https://www.mycontenturl4.com");
AdRequest requestWithContent = new AdRequest.Builder("AD_UNIT_ID")
.setNeighboringContentUrls(urls)
.build();
.setNeighboringContentUrls() różni się od .setContentUrl() tym, że jest używana tylko
na potrzeby bezpieczeństwa marki.