📖 PrzeglądOverview
Moduł GDPR integruje Google User Messaging Platform (UMP) do zarządzania
zgodami użytkowników na przetwarzanie danych i wyświetlanie reklam zgodnie z RODO/GDPR.The GDPR module integrates Google User Messaging Platform (UMP) for managing user consents for data processing and ad display in compliance with GDPR.
📚 API
requestAndShowIfRequired(activity, isUnderAge, debug?, onFinished)
Pobierz status i pokaż formularz jeśli wymagany.Get status and show form if required.
ParametryParameters:
activity: Activity- Activity do wyświetlenia formularzaActivity to display the formisUnderAge: Boolean- Czy użytkownik poniżej wieku zgody (COPPA)Whether the user is underage (COPPA)debug: DebugConfig?- Opcjonalna konfiguracja debugOptional debug configurationonFinished: (Result) -> Unit- Callback z wynikiemCallback with result
showPrivacyOptions(activity, onDismiss)
Pokaż ekran zarządzania zgodami (Privacy Options).Show consent management screen (Privacy Options).
canRequestAds(context): Boolean
Czy można pokazywać reklamy wg UMP.Whether ads can be shown per UMP.
consentStatus(context): Int
Surowy status z UMP (UNKNOWN, REQUIRED, NOT_REQUIRED, OBTAINED).Raw status from UMP (UNKNOWN, REQUIRED, NOT_REQUIRED, OBTAINED).
isConsentObtained(context): Boolean
Czy zgoda została uzyskana.Whether consent was obtained.
isPrivacyOptionsRequired(context): Boolean
Czy UMP wymaga pokazania opcji prywatności.Whether UMP requires showing privacy options.
💡 UżycieUsage
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Sprawdź i pokaż formularz zgód jeśli wymagany
ADict.GDPR.requestAndShowIfRequired(
activity = this,
isUnderAge = false
) { result ->
if (result.canRequestAds) {
// Można ładować reklamy
loadAds()
} else {
// Brak zgody - pokaż wersję bez reklam
showAdFreeContent()
}
result.error?.let { error ->
Log.e("GDPR", "Error: ${error.message}")
}
}
}
// Przycisk "Zarządzaj prywatnością" w ustawieniach
fun onPrivacySettingsClick() {
ADict.GDPR.showPrivacyOptions(this) { error ->
error?.let {
Toast.makeText(this, "Nie można otworzyć ustawień", Toast.LENGTH_SHORT).show()
}
}
}
}
// Tylko w debug!
if (BuildConfig.DEBUG) {
ADict.GDPR.requestAndShowIfRequired(
activity = this,
isUnderAge = false,
debug = GDPR.DebugConfig(
// Hash urządzenia (z logcat przy pierwszym uruchomieniu)
deviceHashedIds = listOf("ABCDEF0123456789"),
// Wymuś geografię EEA (gdzie GDPR obowiązuje)
forceGeographyEea = true
)
) { result ->
Log.d("GDPR", "Status: ${result.status}, canRequestAds: ${result.canRequestAds}")
}
}
📦 Klasy danychData Classes
data class Result
- statusIntStatus consentu (ConsentInformation.ConsentStatus)
- canRequestAdsBooleanCzy można żądać reklamWhether ads can be requested
- errorFormError?Błąd (jeśli wystąpił)Error (if occurred)
data class DebugConfig
- deviceHashedIdsList<String>Hash ID urządzeń testowychHashed IDs of test devices
- forceGeographyEeaBoolean?true=EEA, false=non-EEA, null=auto
🔗 IntegracjaIntegration z reklamami
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. Sprawdź GDPR consent
ADict.GDPR.requestAndShowIfRequired(this) { result ->
if (result.canRequestAds) {
// 2. Zainicjalizuj Mobile Ads SDK
MobileAds.initialize(this) {
// 3. Przejdź do głównej aktywności
startMainActivity()
}
} else {
// Przejdź bez reklam
startMainActivity()
}
}
}
}
// W innych miejscach aplikacji
fun shouldShowAds(): Boolean {
return ADict.GDPR.canRequestAds(context) && !isPremiumUser()
}
fun loadBannerAd() {
if (!ADict.GDPR.canRequestAds(context)) {
bannerContainer.visibility = View.GONE
return
}
// Załaduj reklamę...
}