Aprende como agregar los servicios de Google Play Services y Admob (Google Mobile Ads) a tu proyecto Android de Unity. Una combinación que en ocasiones trae algunos dolores de cabeza pero que aquí te indicaré cómo prevenirlos.

Introducción

Si mantienes actualizado algún proyecto Android en Unity, sabrás que es una tarea algo tediosa, ya que la mayoría de los servicios (como los mencionados: Google Play Services y Google Ads) y el propio motor Unity se actualizan con mucha frecuencia.

Agregar cualquiera de estos servicios a un proyecto Android en Unity es una tarea rápida y sencilla, hasta qué quieres tener ambos, y entonces comienza la guerra de incompatibilidades… A continuación voy a indicarte algunos consejos sobre cómo agregar ambos servicios y evitar errores de incompatibilidad por versiones (de gradle, de gpgs, sdk android, etc).

Incluir Google Play Services en proyecto Unity Android

Instalación

Lo primero es descargar el plugin de Google Play Services para Unity oficial (mantenido por Google) y que te permite acceder a la API de Google Play Games haciendo uso de la interfaz social de Unity.

Descomprime el paquete y accede al directorio current-build, en él se encuentra el package a importar en desde Unity.

Para instalarlo desde Unity selecciona Assets > Import Package > Custom Package, ahora selecciona el package del directorio current-build.

Configuración

Accede a Window > Google Play Games > Setup > Android Setup y aparecerá una ventana como la siguiente:

En la caja de texto grande Resources Definition pega el contenido proporcionado desde la web Google Play Developer Console > Servicios de juegos > «Tu proyecto» y desde ahí, en cualquiera de los apartados como Marcadores o Logros, abajo encontrarás un enlace «Obtener recursos«. Al pulsarlo aparecerá un popup con un xml listando todos los recursos creados. Este xml es el que debes copiar.

Haz click en «Setup» y se creará un fichero GPGSIds en tu directorio Assets. Este fichero es una clase C# que contiene todos los códigos de cada uno de los recursos creados desde la consola de google developer (marcadores, logros, etc) asignados en constantes para hacer uso de ellos en el código de forma más organizada.

Probar

Ahora que ya tienes instalado y configurado el servicio correctamente, ya puedes empezar a hacer uso de las funciones de Google Play Games. Para ello te recomiendo que le eches un ojo a esta guia de codelabs desde la que puedes ver como hacer uso del sistema de login, logros y marcadores paso por paso.

Incluir Google Mobile Ads en proyecto Unity Android

Instalación

Descarga el Plugin Google Mobile Ads para Unity desde el repositorio oficial de Google

Instalamos el plugin siguiendo el mismo proceso que en el caso anterior, pero ahora, en el paso de seleccionar los componentes a importar, desmarca el directorio «PlayServicesResolver«

Configuración

Al finalizar la importación unity indicará un error «Resolution failed«. Dirígete al directorio «PlayServicesResolver» (fue generado en tu proyecto por el plugin Google Play Services) y haz click derecho > Play Services Resolver > Android Resolver > Resolve

Conseguido! con esto ya tendrás ambos servicios instalados y funcionando correctamente en tu proyecto unity android.

Probar

Ya puedes comenzar a agregar anuncios a tu proyecto, para ello, te aconsejo seguir los pasos descritos en la documentación oficial de Google a partir del apartado «Configura tu ID de Aplicación de AdMob«.

Problemas comunes de incompatibilidad

FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':transformDexWithDexForRelease'. 
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. * Get more help at https://help.gradle.org 
CommandInvokationFailure: Unable to convert classes into dex format. 

El mensaje mostrado, es el error más común que se suele tener si estás intentando hacer uso de los servicios mencionados de forma conjunta. En caso de estar obteniendo este error al compilar, comprueba que hayas seguido los pasos de instalación tal como están descritos en este post.

Si el error persiste, prueba a instalar una versión anterior del plugin Google Mobile Ads. Fijate en las fechas de cada actualización, e intenta que sean lo más cercanas posibles, de esta forma las versiones requeridas de google play services deberían coincidir en ambos servicios y con ello solventar el problema.

Como siempre, cualquier problema que tengas, no dudes en comentar!

Comparte el post