El código único del dispositivo GAID e IDFA en Unity se utilizan para el seguimiento de publicidad y las estadísticas de datos.

Actualmente, el dispositivo se puede identificar de forma única y la ID se puede utilizar para la recopilación de datos y las estadísticas del programa.

ANDROIDE:

extranjero:

GAID: la identificación de publicidad, a saber, la identificación de publicidad de Google (GAID), es una identificación de publicidad única que se puede restablecer proporcionada a los usuarios por el servicio Google Play y generalmente se usa como un identificador de dispositivo único para la recopilación de datos. Sin embargo, la identificación debe obtenerse solo cuando el servicio Google Play está instalado en el teléfono móvil del usuario y la red puede acceder a Google. (La identificación de publicidad también se conoce como AAID - Identificación de publicidad de Android). Dado que se puede restablecer, es un identificador no permanente .

PD: El "restablecer" aquí se refiere a restablecer el GAID del servicio de Google en la "Configuración" del sistema Android, y se generará un nuevo GAID después del restablecimiento. La reinstalación de una aplicación después de la desinstalación no cambiará el valor de GAID , y el GAID se restablecerá solo después de realizar la operación especificada en la configuración del sistema. El papel de GAID es rastrear las preferencias del usuario y luego enviar anuncios relacionados con las preferencias. Activar o desactivar el servicio no reducirá la cantidad de anuncios , pero los anuncios que se envían después de desactivarlo se seleccionan al azar, en lugar de los anuncios que envían contenido relevante según las preferencias del usuario.

Restablecer GAID:  "Configuración" -> "Anuncios"

    

¿Cómo obtener el GAID del dispositivo?

Hay dos maneras:

Una es consultar directamente en la configuración del teléfono móvil "Configuración -> Anuncios", como se muestra en la figura anterior.

Sin embargo, no hay servicio de Google para el sistema Android doméstico. Después de reinstalar el conjunto de tres piezas de Google, aún no puede encontrar la opción "Google" o "Anuncios" en la configuración del sistema. En este momento, no puede obtener directamente el GAID desde la configuración del teléfono. Debe usar un software de terceros para verlo. Aquí le recomendamos el "AAID" de Google Play Store:

El segundo se obtiene mediante código:

 1. Obtenga el estado de seguimiento de anuncios y GAID del dispositivo actual:

string GetAdvertisingId()
{
	string advertisingId = "DEFAULT";

	AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

	AndroidJavaClass jc2 = new AndroidJavaClass("com.google.android.gms.ads.identifier.AdvertisingIdClient");
	AndroidJavaObject jo2 = jc2.CallStatic<AndroidJavaObject>("getAdvertisingIdInfo", jo);
	if (jo2 != null)
	{
		//获取广告id:
		advertisingId = jo2.Call<string>("getId");
		if (string.IsNullOrEmpty(advertisingId))
			advertisingId = "none";

		//获取广告跟踪状态:当为false时,则无法根据用户行为定向推送广告,但看到的广告数量并不会减少
		adTrackLimited = jo2.Call<bool>("isLimitAdTrackingEnabled");
	}

	return advertisingId;
}

El resultado de la operación es el siguiente:

PD: "isLimitAdTrackingEnabled": si limitar el seguimiento del comportamiento del usuario para mostrar los anuncios correspondientes. Cuando es falso, los anuncios no se pueden mostrar de acuerdo con el comportamiento del usuario, pero la cantidad de anuncios vistos no disminuirá. El valor predeterminado es falso, lo que significa que se puede rastrear el comportamiento del usuario

Aviso:

1. Si solo desea obtener el GAID del dispositivo Android, no necesita importar ningún otro complemento, solo agregue la dependencia de mainTemplate.gradle después de la implementación personalizada: 'com.google.android.gms: play-services-ads -identifier:18.0.1' es suficiente

Prueba de proyecto real: use Unity2018.4.1f1 para crear un nuevo proyecto vacío y luego marque "Plantilla Gradle personalizada" en Configuración del reproductor -> Configuración de publicación:

Agregue la implementación 'com.google.android.gms:play-services-ads-identifier:18.0.1' al archivo recién generado "mainTemplate.gradle" para llamar correctamente al método de obtención de GAID. Código fuente del proyecto: Obtener dispositivo Android Id. de anuncios: GAID-Recurso de documento de Unity3D-Descarga de CSDN

2. La clase java "com.google.android.gms.ads.identifier.AdvertisingIdClient" utilizada en el método C# está en "com.google.android.gms:play-services-ads-identifier", no en "com .google .android.gms:play-services-ads", así que no complete las dependencias incorrectas.

La información y las dependencias relacionadas con cada Google se pueden encontrar en la Guía oficial: https://developers.google.com/android/guides/setup

2. Comprobar si el servicio Google Play está disponible en el dispositivo actual.

//该方法已验证,可以正常得到返回结果,用于获取当前设备的google play服务状态

int CheckGooglePlayServiceAvailable()
{
	AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

	AndroidJavaClass jc2 = new AndroidJavaClass("com.google.android.gms.common.GoogleApiAvailability");
	AndroidJavaObject jo2 = jc2.CallStatic<AndroidJavaObject>("getInstance");

	int code = jo2.Call<int>("isGooglePlayServicesAvailable", jo);
	return code;

	// result codes from https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult

	// 0 == success
	// 1 == service_missing
	// 2 == update service required
	// 3 == service disabled
	// 18 == service updating
	// 9 == service invalid
}

Nota: La clase java utilizada en el método anterior: "com.google.android.gms.common.GoogleApiAvailability" necesita importar el complemento de Google Play Games al proyecto antes de que pueda llamarse normalmente.

https://github.com/playgameservices/play-games-plugin-for-unity

Medición del proyecto: Unity2018.4.1f1, GooglePlayGamesPlugin-0.10.14.unitypackage

resultado de la operación:

 Código fuente del proyecto: Obtenga el estado del servicio de Google Play y GAID de dispositivos Android, y seguimiento de anuncios-Recursos de documentación de Unity3D-Descarga de CSDN

doméstico:

1. IMEI: Puede identificar un dispositivo de manera única y no se puede restablecer, es el código para que el operador identifique la información del dispositivo conectado a la red. Cada IMEI en el mundo es diferente. Como no se puede restablecer, es un identificador permanente.

Debido a la singularidad y estabilidad de IMEI, IMEI actualmente se usa ampliamente en China. Sin embargo, con la actualización de la versión de Android, después de Android 10, debido al fortalecimiento de la protección de la privacidad de Google, Android Q ya no puede obtener el código IMEI del dispositivo.

2. OAID: en vista del entorno especial en China, GAID no se puede usar, y con la popularización de Android 10, ya no es posible obtener IMEI, por lo que el OAID desarrollado recientemente por China Mobile Security Alliance - Identificador de dispositivo anónimo abierto , tiene un carácter estable y único, que se puede utilizar para identificar de forma única el dispositivo. Y la identificación también se puede usar para el seguimiento de publicidad y se puede restablecer, por lo que generalmente se usa para reemplazar el GAID extranjero para lograr el mismo efecto. Sin embargo, su uso no ha sido paulatino hasta después de Android 10. La siguiente imagen muestra los terminales domésticos actuales que soportan OAID:

IOS:

En consecuencia, en los dispositivos IOS, la identificación de publicidad es "IDFA", es decir, el identificador de publicidad, que es la identificación de publicidad única establecida por ios para cada usuario. Dado que los dispositivos IOS se pueden usar normalmente en el hogar y en el extranjero, todos los dispositivos IOS usan IDFA como identificador único.

Unity proporciona métodos para obtener ID de publicidad para IOS:

//该方法当前尚没有在IOS设备上得到直接验证
Application.RequestAdvertisingIdentifierAsync(
            (string advertisingId, bool trackingEnabled, string error) =>
            { Debug.Log("advertisingId " + advertisingId + " " + trackingEnabled + " " + error); }
        );

Nota: ventana ATT : para mejorar la privacidad del usuario, IOS14 presenta la ventana ATT: si los datos del usuario se recopilan con fines de seguimiento, se debe obtener la autorización del usuario antes de que se pueda obtener el IDFA del dispositivo IOS; de lo contrario, los datos IDFA obtenidos por el la aplicación estará vacía.

PD:

1. Informe un error después de importar el complemento GoogleMobileAds ( este proyecto no necesita importar el complemento, la razón por la que se encuentra este problema es porque ocurre durante el desarrollo, así que grabalo ):

Al importar el complemento Unity de Google Ads, se utilizará la última versión de forma predeterminada: GoogleMobileAds-v7.0.0.unitypackage. Sin embargo, para versiones anteriores de Unity, como Unity2018.4.1f1, no admite la dependencia de Timeline en el paquete, por lo que Unity2018.4.1f1 informará un error después de importar la última versión de "GoogleMobileAds-v7.0.0.unitypackage". :

Solución: actualice la versión de Unity, como Unity2019, o descargue una versión anterior de GoogleMobileAds, como

Después de la prueba, después de importar "GoogleMobileAds-v3.18.3.unitypackage" en Unity2018.4.1f1, no se informa ningún error como el anterior

2. No se pudieron resolver las dependencias: cuando se resuelven manualmente las dependencias, no hay respuesta después de hacer clic en "Resolver"

 Esto puede deberse a que: cuando se importa por primera vez el complemento GoogleMobileAds-v3.18.3.unitypackage, Unity resolverá automáticamente las dependencias, pero debido al tiempo prolongado, la ventana que muestra el progreso de la resolución se interrumpe artificialmente. Hacer clic en "Resolver" nuevamente más tarde no responde. En este momento, verifique "mainTemplate.gradle" y descubra que no hay cambios y que las dependencias no se han agregado, lo que indica que la resolución de las dependencias no se ha realizado correctamente.

Solución: haga clic en "Eliminar bibliotecas resueltas" en la captura de pantalla, luego cierre y vuelva a abrir el proyecto y haga clic en "Resolver" nuevamente para reiniciar el análisis de dependencias. Si aparece la siguiente ventana, significa que el análisis de dependencia es exitoso

Supongo que te gusta

Origin blog.csdn.net/m0_47975736/article/details/123482768
Recomendado
Clasificación