Hoy vamos a aprender cómo podemos implementar el mensaje de consentimiento de GDPR con React Native.

Vamos a instalar la siguiente librería (https://www.npmjs.com/package/@ulangi/react-native-ad-consent)
npm install @ulangi/react-native-ad-consent --save
Ahora vamos a añadir esta clave en info.plist de iOS:
<key>GADDelayAppMeasurementInit</key> <true/>
Ahora abrimos AndroidManifest.xml en caso de Android. Y añadimos:
<meta-data android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT"
android:value="true"/>
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
Y ahora creamos nuestro componente llamado consentAdmob.ts
import RNAdConsent from 'ulangi/react-native-ad-consent';
async function obtenerConsentimientoUsuario(publisherId) {
const consentStatus = await RNAdConsent.requestConsentInfoUpdate({
publisherId,
});
if (consentStatus === RNAdConsent.UNKNOWN) {
const isInEeaOrUnknown = await RNAdConsent.isRequestLocationInEeaOrUnknown();
if (isInEeaOrUnknown) {
const adProviders = await RNAdConsent.getAdProviders();
// Puedes hacer algo con los proveedores de anuncios, por ejemplo, mostrar un modal personalizado
await RNAdConsent.setConsentStatus(RNAdConsent.PERSONALIZED);
}
}
}
async function mostrarAlertAdmobConsent(adAppId, publisherId) {
const consentStatus = await RNAdConsent.requestConsentInfoUpdate({
publisherId,
});
if (consentStatus === RNAdConsent.UNKNOWN) {
const formResponse = await RNAdConsent.showGoogleConsentForm({
privacyPolicyUrl: "https://your-privacy-link.com",
shouldOfferAdFree: true,
});
if (formResponse === RNAdConsent.PREFERS_AD_FREE) {
// Haz algo específico cuando el usuario prefiere una experiencia sin anuncios
} else {
await RNAdConsent.setConsentStatus(formResponse);
}
}
// Luego, inicializa AdMob
await adMob.initialize(adAppId);
}
Para usar las funciones que proporcionamos, deberías llamar a obtenerConsentimientoUsuario antes de mostrar el formulario de consentimiento y de inicializar AdMob con la función mostrarAlertAdmobConsent. Asegúrate de proporcionar los valores adecuados para adAppId y publisherId. Recuerda tambien añadir: «https://your-privacy-link.com» por la URL de política de privacidad de tu APP.
Aquí hay un ejemplo de cómo podrías usar estas funciones:
// Define tus valores de publisherId y adAppId const publisherId = "pub-1234567890"; const adAppId = "tu_admob_app_id"; // Llama a la función para obtener el consentimiento del usuario await obtenerConsentimientoUsuario(publisherId); // Llama a la función para mostrar el formulario de consentimiento y luego inicializar AdMob await mostrarAlertAdmobConsent(adAppId, publisherId);

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.