Publicado por Clayton Wilkinson, ingeniero de plataformas para desarrolladores

A principios de 2017, se producirán cambios en Google Play Games Services:

Cambios en la creación de clientes de Google API


Publicado por Clayton Wilkinson, ingeniero de plataformas para desarrolladores

A principios de 2017, se producirán cambios en Google Play Games Services:

Cambios en la creación de clientes de Google API


En noviembre, anunciamos una actualización para la Google Sign-In API. Google Play Game Services recibirá una actualización con el propósito de implementar la Google Sign-In API para la autenticación. Ventajas:
  • juegos e inicio de sesión en la misma conexión de cliente;
  • API única para la obtención del código de autenticación que se envía a los servidores backend.

Con este cambio, se unifican el inicio de sesión de Google y el de la Games API. Por ello, existen actualizaciones relacionadas con la creación del cliente de Google API:
// Defaults to Games Lite scope, no server component
  GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build();

// OR for apps with a server component
   GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
         .requestServerAuthCode(SERVER_CLIENT_ID)
         .build();

// OR for developers who need real user Identity
  GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
         .requestEmail()
         .build();

// Build the api client.
     mApiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .addConnectionCallbacks(this)
                .build();
    }

 @Override
    public void onConnected(Bundle connectionHint) {
        if (mApiClient.hasConnectedApi(Games.API)) {
            Auth.GoogleSignInApi.silentSignIn(mApiClient).setResultCallback(
                   new ResultCallback() {
                       @Override
                       public void onResult(GoogleSignInResult googleSignInResult) {
                           // In this case, we are sure the result is a success.
                           GoogleSignInAccount acct = 
                              googleSignInResult.getGoogleSignInAccount());
 
                          // For Games with a server, send the auth code to your server.
                          String serverAuthCode = signInAccount.getServerAuthCode();
 
                         // Use the API client as normal.
                        Player player = Games.API.getCurrentPlayer(mApiClient);
                       }
                   }
            );
        } else {
            onSignedOut();
        }
    }

Se discontinuó la compatibilidad con la creación de cuentas dentro de iOS

  • Actualmente, no se admite la creación de cuentas de Google Play Games en iOS por parte de nuevos jugadores. A su vez, se eliminó la integración de Google+ de iOS. Como resultado, las API “sociales” mostrarán códigos de resultados con indicios de éxito, pero las listas estarán vacías. Esto incluye las IU “estándares” para tablas de posiciones e invitaciones de modalidad multijugador.

Se discontinuó la integración de Google+

  • Conforme al anuncio realizado el año pasado, Google Play Games se desvinculará de Google+ durante esta transición. Como resultado, las API públicas para la obtención de jugadores conectados a través de círculos dejaron de funcionar, pero las IU estándares para invitaciones de modalidad multijugador y tablas de posiciones continuó funcionando. A partir de febrero de 2017, las IU estándares tampoco mostrarán los resultados de gráficos sociales debido a que no se podrá acceder a datos de Google+. Por esto, se verán afectadas las partidas de multijugador, las tablas sociales y la Gifts API en Android. Como resultado, estas API mostrarán resultados con éxito, aunque con listas de jugadores vacías.

Lista de API que dejaron de estar disponibles tras la eliminación de la integración de Google+ (y sus equivalentes en C++):
  1. Games.Players.getPlayerSearchIntent();
  2. Games.Players.loadConnectedPlayers();
  3. Games.Players.loadInvitablePlayers();
  4. el valor LeaderboardVariant.COLLECTION_SOCIAL;
  5. Invitations.loadInvitations();
  6. RealtimeMultiplayer.getSelectOpponentsIntent();
  7. RealtimeMultiplayer.getSelectOpponentsIntent();
  8. todos los métodos del paquete de solicitudes.

Somos conscientes de que este es un cambio amplio; sin embargo, en virtud de las proyecciones futuras, Google Play Game Services se alineará mucho mejor con el resto de la plataforma móvil de Mobile de Google y proporcionará una mejor experiencia para los desarrolladores de juegos de Android.

Publicado por Kacey Fahey, administradora de programas de marketing, Google Play

Al trabajar en Google Play, desde la primera línea observamos el proceso por el cual los desarrolladores crean, optimizan y lanzan los productos con los que sueñan para que millones de usuarios los experimenten. Si bien es emocionante formar parte de un ámbito que propicia tanta creatividad, a menudo nos piden indicaciones sobre la manera en que una pequeña empresa emergente puede destacarse en un campo tan competitivo. Hace poco, Josh Elman y Sarah Tavel, de Greylock Partners, hablaron en nuestros eventos y compartieron sus experiencias de trabajo en materia de marketing y diseño de productos para empresas tecnológicas preponderantes, como Twitter, Facebook y Pinterest. A continuación, se ofrecen cuatro consejos para dar los primeros pasos rápidamente y crear una empresa ideada para alcanzar el éxito.
 Publicado por Kacey Fahey, administradora de programas de marketing, Google Play

Al trabajar en Google Play, desde la primera línea observamos el proceso por el cual los desarrolladores crean, optimizan y lanzan los productos con los que sueñan para que millones de usuarios los experimenten. Si bien es emocionante formar parte de un ámbito que propicia tanta creatividad, a menudo nos piden indicaciones sobre la manera en que una pequeña empresa emergente puede destacarse en un campo tan competitivo. Hace poco, Josh Elman y Sarah Tavel, de Greylock Partners, hablaron en nuestros eventos y compartieron sus experiencias de trabajo en materia de marketing y diseño de productos para empresas tecnológicas preponderantes, como Twitter, Facebook y Pinterest. A continuación, se ofrecen cuatro consejos para dar los primeros pasos rápidamente y crear una empresa ideada para alcanzar el éxito.

Establece objetivos, tanto grandes como pequeños


Todas las empresas emergentes tienen un objetivo máximo, pero no debes olvidar los pequeños. Dividir tu objetivo mayor en hitos más pequeños genera puntos de control que te permitirán revisar el progreso y asegurarte de avanzar en la dirección indicada. Esto también proporcionará flexibilidad si los equipos deben corregir el rumbo sobre la marcha, por no mencionar los pequeños logros que podrán celebrarse.

Fomenta la permanencia


El primer nivel de la jerarquía de captación de Sarah se centra en identificar la acción principal que los usuarios deben realizar en tu app. Una vez que logras la captación con esta acción principal, en el nivel 2 se busca impulsar la retención al intentar que los usuarios repitan cada vez más la acción principal. El objetivo principal es contener a los usuarios a través de tu app mediante la creación de beneficios acumulables. De esta manera, una participación más profunda y frecuente genera hábitos y dependencias respecto del producto.




“A medida que las empresas avanzan en la jerarquía, sus productos mejoran, se vuelven más difíciles de abandonar y finalmente generan círculos virtuosos que garantizan su propia perpetuidad”. –Sarah Tavel, socia de Greylock.

Ejemplo: para quienes deseen mejorar sus capacidades organizativas, Evernote puede ser la solución. Cuantas más listas cree un usuario, mayor será su confianza en el producto. Evernote se convierte en un hábito tan arraigado que trasciende de manera natural el ámbito personal y el profesional.


Busca la difusión masiva


Al lanzar una nueva app, existen dos formas de alcanzar la difusión masiva. Encuentra elementos vinculantes que atraigan mucho a los usuarios hacia tu app y esfuérzate por lograr que esta forme parte de sus hábitos regulares. Ten en cuenta, no obstante, que no todas las clases de difusión masiva reciben el mismo tratamiento.

“Al pensar en la concepción de la difusión masiva, debes asegurarte de apuntar hacia las personas adecuadas, generar en ellas interés por motivos alineados con el valor intrínseco de tu producto y guiarlas hacia las acciones correctas”. –Josh Elman, socio de Greylock Ejemplo: independientemente de que tengas la suerte de convertir a usuarios felices en promotores del producto o de lograr una gran popularidad en las redes sociales, la difusión masiva por propagación ha generado un enorme éxito para apps como Pokémon GO y Prisma.

Mide cohortes


Aunque el control de métricas tradicionales como las de instalaciones y usuarios activos por día (DAU) proporcionan muy buena información general sobre el rendimiento de una app, el análisis de cohortes es fundamental para comprender el comportamiento de los usuarios y optimizar el crecimiento. Al implementar cambios en tu app, asegúrate de realizar un seguimiento de las cohortes durante un tiempo prolongado. Los resultados iniciales pueden indicar algo el día 7, pero ten paciencia: puede haber mejorías para el día 15 o incluso después. Dales tiempo a los usuarios para adaptarse y sentirse a gusto con los cambios antes de tomar decisiones finales relacionadas con el producto.

A través de la app Playbook for Developers podrás obtener más información sobre la manera de alcanzar el éxito con tu empresa emergente de apps o juegos.



Publicado por: Amy McDonald Sandjideh, administradora de programas técnicos, TensorFlow

Solo en su primer año, TensorFlow ha ayudado a investigadores, ingenieros, artistas, estudiantes y muchos otros profesionales a lograr avances en toda clase de ámbitos, desde la ...
 Publicado por: Amy McDonald Sandjideh, administradora de programas técnicos, TensorFlow

Solo en su primer año, TensorFlow ha ayudado a investigadores, ingenieros, artistas, estudiantes y muchos otros profesionales a lograr avances en toda clase de ámbitos, desde la traducción de idiomas hasta la detección temprana de cáncer de piel y la prevención de la ceguera en el tratamiento de la diabetes. Nos entusiasma ver a las personas usar TensorFlow en más de 6000 repositorios en línea.


Hoy, como parte de la primera Cumbre Anual de Desarrolladores de TensorFlow realizada en Mountain View y transmitida en vivo para todo el mundo, anunciaremos TensorFlow 1.0:


Más rápido: TensorFlow 1.0 es asombrosamente rápido. XLA prepara el terreno para aun más mejoras de rendimiento en el futuro y tensorflow.org ahora incluye consejos y trucos para optimizar tus modelos a fin de lograr la máxima velocidad. Pronto publicaremos implementaciones actualizadas de varios modelos populares para mostrar la forma de aprovechar TensorFlow 1.0 al máximo. Se incluyen una velocidad 7,3 veces mayor en 8 GPU para Inception v3 y una velocidad 58 veces mayor para capacitación de Inception v3 distribuida en 64 GPU.


Más flexible: TensorFlow 1.0 presenta una API de alto nivel para TensorFlow, con módulos tf.layers, tf.metrics y tf.losses. También hemos anunciado la inclusión de un módulo nuevo, tf.keras, que proporciona compatibilidad total con Keras, otra popular biblioteca de redes neuronales de alto nivel.


Más preparado que nunca para la producción: TensorFlow 1.0 garantiza estabilidad para la Python API (más información aquí), lo cual permite obtener nuevas funciones con mayor facilidad y sin preocuparse por posibles daños en el código existente.

Otros aspectos destacados de TensorFlow 1.0:

  • Las Python API se modificaron para asemejarse más a NumPy. Para este y otros cambios no compatibles con versiones anteriores, realizados a fin de lograr estabilidad para las API en el futuro, consulta nuestra guía de migración y nuestra secuencia de comandos de conversión útiles.
  • Se agregaron API experimentales para Java y Go.
  • Los módulos de API de nivel más elevado tf.layers, tf.metrics y tf.losses se incorporaron de tf.contrib.learn después de agregar skflow y TF Slim.
  • Se realizó el lanzamiento experimental de XLA, un compilador específico de dominio para gráficos de TensorFlow destinado a CPU y GPU. XLA evoluciona rápidamente. Verás más avances en versiones futuras.
  • Se introdujo el depurador de TensorFlow (tfdbg), una interfaz y API de línea de comandos para depurar programas de TensorFlow.
  • Se crearon nuevas demostraciones de Android para la detección y localización de objetos, y la aplicación de estilo a imágenes de cámaras.
  • Se realizaron mejoras en la instalación: Se agregaron imágenes Docker de Python 3 y los paquetes pip de TensorFlow ahora cumplen con los requisitos de PyPI. Esto significa que ahora es posible instalar TensorFlow con solo invocar a pip install tensorflow.

Nos entusiasma enormemente ver el ritmo de desarrollo de la comunidad de TensorFlow en todo el mundo. Para obtener más información sobre TensorFlow 1.0 y la manera en que se usa, puedes ver las charlas de la Cumbre Anual de Desarrolladores de TensorFlow en YouTube. En ellas, se abarcan temas que van desde las actualizaciones recientes de API de nivel más alto para TensorFlow en dispositivos móviles hasta nuestro nuevo compilador XLA, además de las fabulosas aplicaciones actuales de TensorFlow:





Haz clic aquí para acceder a un vínculo a la transmisión en vivo y la lista de reproducción de video (se publicarán las charlas separadas posteriormente, durante el día).


El ecosistema de TensorFlow continúa expandiéndose gracias a nuevas técnicas como Fold (para procesamiento dinámico por lotes), herramientas como el proyector de inserción y actualizaciones en herramientas existentes, como TensorFlow Serving. Estamos enormemente agradecidos con la comunidad de contribuidores, educadores e investigadores que han procurado la disponibilidad de avances de aprendizaje profundo para todos. Esperamos trabajar contigo en foros como los de errores de GitHub, Stack Overflow y @TensorFlow, en el grupo discuss@tensorflow.org y en futuros eventos.




El viernes 21 de octubre, notificamos a Adobe y Microsoft sobre vulnerabilidades de día cero (antes desconocidas por el público). Adobe implementó una actualización de Flash ...

El viernes 21 de octubre, notificamos a Adobe y Microsoft sobre vulnerabilidades de día cero (antes desconocidas por el público). Adobe implementó una actualización de Flash el 26 de octubre para corregir la vulnerabilidad CVE-2016-7855; esta actualización se encuentra disponible a través del actualizador de Adobe y de la actualización automática de Chrome.

Siete días después, en cumplimiento de nuestra política publicada para vulnerabilidades críticas activamente explotadas, damos a conocer hoy la existencia de una vulnerabilidad crítica restante en Windows para la cual aún no se han publicado avisos ni correcciones. Esta vulnerabilidad es de particular seriedad, ya que tenemos conocimiento de su explotación activa.

Consiste en un escalamiento de privilegio local en el kernel de Windows que puede usarse como medio de escape de espacio aislado de seguridad. Puede desencadenarse a través del método NtSetWindowLongPtr() de llamada al sistema win32k.sys para el GWLP_ID de índice en un identificador de ventana con GWL_STYLE fijado en WS_CHILD. El espacio aislado de Chrome bloquea las llamadas al sistema win32k.sys mediante la mitigación de bloqueo Win32k en Windows 10, que evita el aprovechamiento de esta vulnerabilidad de escape de espacio aislado.

Alentamos a los usuarios a verificar que los actualizadores automáticos hayan actualizado Flash (y a hacerlo manualmente esto no ha sucedido) y a aplicar revisiones de Microsoft para Windows cuando se encuentren disponibles, a fin de corregir la vulnerabilidad relacionada con este sistema operativo.



Firebase proporciona varias funciones que pueden usarse juntas en tu app y que se ofrecen en proyectos creados en la consola de Firebase. Normalmente, basta con que un solo proyecto proporcione todos los recursos de tu app. Sin embargo, hay casos en los cuales te convendrá que una sola app tenga acceso a datos de varios proyectos. Por ejemplo, es posible que necesites acceder a datos de dos bases de datos diferentes y tener la capacidad de autenticar usuarios para el acceso a cada una de ellas. En esta entrada del blog, te mostraré la manera de hacerlo.


Firebase proporciona varias funciones que pueden usarse juntas en tu app y que se ofrecen en proyectos creados en la consola de Firebase. Normalmente, basta con que un solo proyecto proporcione todos los recursos de tu app. Sin embargo, hay casos en los cuales te convendrá que una sola app tenga acceso a datos de varios proyectos. Por ejemplo, es posible que necesites acceder a datos de dos bases de datos diferentes y tener la capacidad de autenticar usuarios para el acceso a cada una de ellas. En esta entrada del blog, te mostraré la manera de hacerlo.
Primero, veamos algo de terminología:
Proyecto heredado de Firebase.com Proyecto creado en la consola heredada, asociada con una base de datos de Firebase que no se ha actualizado a la nueva consola.
Proyecto de Google API Proyecto empleado para acceder a Google API, generalmente desde https://console.developers.google.com o https://console.cloud.google.com
Proyecto de Firebase Proyecto creado en la nueva consola de Firebase. Cada proyecto de Firebase también contiene un proyecto de Google API subyacente.
App Cliente para una plataforma específica. Cada proyecto puede tener asociadas varias apps...

Se actualizaron el proyecto heredado de Firebase.com y el proyecto de Google API existente

Existe una situación particular en el caso de los desarrolladores que desean actualizar su base de datos existente de Firebase.com a un nuevo proyecto de Firebase y, al mismo tiempo, tener la posibilidad de usar servicios de otro proyecto de Google API. El proyecto heredado actualizado se convierte en un proyecto de Firebase nuevo, y esto debe aplicarse en combinación con el proyecto de Google API que proporciona autenticación de inicio de sesión de Google para usuarios existentes.
El desafío aquí es el siguiente: para que el componente de inicio de sesión de Google funcione en Android, necesita un SHA-1 (huella digital de la clave que se usa para firmar el APK) y un nombre de paquete (p. ej., com.foo.bar) que permitan el registro para la app. Esta combinación permite que el inicio de sesión de Google determine el proyecto de Google API en uso a través de una app en particular. Un par de SHA1 y nombre de paquete es exclusivo en términos generales dentro de Google (y proyectos de Firebase). Por lo tanto, si intentas agregar el mismo par de SHA-1 y nombre de paquete a un proyecto actualizado de Firebase recibirás un mensaje de error en el cual se indicará que el cliente OAuth2 ya existe (en el proyecto de Google API):
Advertencia: Si ves esto, no borres tu ID de cliente existente para apps que estén en producción. Esto ocasionará fallas en tu app para los clientes existentes. La opción correcta es crear una nueva app con el mismo nombre de paquete en la consola de Firebase para el proyecto actualizado sin incluir un SHA1.
Luego, implementa el inicio de sesión de Google con autenticación de Firebase de manera normal. En un punto determinado, deberás configurar tu objeto de opciones de inicio de sesión de Google:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
              .requestIdToken(getString(R.string.default_web_client_id))
              .requestEmail()
              .build();
Aquí, la string default_web_client_id se usa para configurar el campo de público del token de ID. El valor proviene del archivo google-services.json, que corresponde al proyecto de Firebase y no al de Google. Deberás reemplazarlo por un ID de cliente del proyecto de Google. Podrás usar cualquier ID de cliente web o crear uno nuevo:
A continuación, en el proyecto de Firebase, incluye en la lista blanca el ID de cliente que acabas de configurar para GoogleSignInOptions en la sección Auth > Sign In Providers > Google de la consola de Firebase.
Asegúrate de descargar el archivo google-services.json y agregarlo a tu app de Android. En este punto, tu proyecto de Firebase aceptará tokens de Google ID generados por tu proyecto de Google. De esta manera, tu app de Android iniciará sesión en Google sin problemas usando el proyecto de Google y luego realizará la autenticación con tu proyecto de Firebase usando el token de ID de Google aplicando el enfoque normal. Podrás realizar llamadas autenticadas a Google API asociadas con el proyecto de Google API; también a Firebase API, con el proyecto de Firebase.

Cómo acceder a las bases de datos desde dos proyectos de Firebase diferentes

En la situación anterior, había un solo proyecto de Firebase que también debía acceder a un proyecto de Google. Esto funciona debido a que las API son independientes. Sin embargo, a veces es necesario acceder a diferentes proyectos usando las mismas API (por ejemplo, accediendo a varias instancias de bases de datos).
En el caso de las apps de Android que usen Firebase, hay un objeto FirebaseApp central que administra la configuración para todas las Firebase API. Se inicializa de manera automática a través de un proveedor de contenido cuando se lanza tu app y normalmente no es necesario que interactúes con él. Sin embargo, cuando desees acceder a varios proyectos desde una sola app, necesitarás un FirebaseApp diferente para hacer referencia a cada uno de manera individual. Depende de ti inicializar las instancias que no sean las predeterminadas, de cuya creación se encarga Firebase.
Por ejemplo, para establecer una conexión con la instancia de la base de datos de Firebase, se usa de manera implícita la app de Firebase predeterminada:
FirebaseDatabase database = FirebaseDatabase.getInstance();
Para establecer una conexión con otra base de datos en tiempo real de Firebase desde otro proyecto, primero debes inicializar una instancia de FirebaseApp para ese otro proyecto de Firebase y proporcionarle un identificador. En este caso, "secondary":

FirebaseOptions options = new FirebaseOptions.Builder()
       .setApplicationId("1:530266078999:android:481c4ecf3253701e") // Required for Analytics.
       .setApiKey("AIzaSyBRxOyIj5dJkKgAVPXRLYFkdZwh2Xxq51k") // Required for Auth.
       .setDatabaseUrl("https://project-1765055333176374514.firebaseio.com/") // Required for RTDB.
       .build();
FirebaseApp.initializeApp(this /* Context */, options, "secondary");

Luego, puedes acceder a la base de datos usando las mismas API de cliente, pero esta vez debes especificar el proyecto al que deseas acceder pasando el FirebaseApp correspondiente a FirebaseDatabase.getInstance():
// Retrieve my other app.
FirebaseApp app = FirebaseApp.getInstance("secondary");
// Get the database for the other app.
FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(app);

Cómo realizar la autenticación en dos bases de datos de Firebase diferentes

Se pueden combinar las dos técnicas anteriores para permitir el uso compartido de datos de autenticación entre proyectos de Firebase cuando se dispone de un ID externo para la incorporación.
Por ejemplo, si tu app permite el acceso con el inicio de sesión de Google, y las reglas de bases de datos de los proyectos predeterminado y secundario se configuran para requerir la autenticación, se puede usar la misma credencial de Google para iniciar sesión en ambos sistemas.
Primero, se debe configurar la app para el inicio de sesión de Google en el proyecto predeterminado de manera normal. Luego se debe obtener el ID de cliente subyacente del proyecto predeterminado. Un ID de cliente es simplemente un identificador de un cliente de app determinado (web, de Android o de iOS) que generalmente se encuentra dentro del propio cliente. Un proyecto puede tener varios ID de cliente, pero el que se debe incluir en la lista blanca es el que se especifica en la llamada de requestIdToken al generador GoogleSignInOptions:
.requestIdToken(getString(R.string.default_web_client_id))
Generalmente, puedes hallarlo como el primer client_id de tipo “3” en el archivo google-services.json. Mi caso:
{
 "client_id": "56865680640-e8mr503bun5eaevqctn4u807q4hpi44s.apps.googleusercontent.com",
 "client_type": 3
},
Una vez obtenido esto, se debe acceder al panel de Google de la sección Auth > Sign In Providers del proyecto secundario, donde se puede incluir en la lista blanca el ID de cliente.

Ahora se puede tomar el mismo objeto GoogleSignInAccount del resultado del inicio de sesión de Google y realizar la autenticación en las apps predeterminada y secundaria:
AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
FirebaseAuth.getInstance().signInWithCredential(credential);

FirebaseApp app = FirebaseApp.getInstance("secondary");
FirebaseAuth.getInstance(app).signInWithCredential(credential);
Con un inicio de sesión del usuario, se autentican en ambos proyectos.

Uso compartido de UID entre proyectos

Un aspecto que plantea un desafío en este caso es el hecho de que los ID de usuario de Firebase de cada proyecto serán diferentes. Por ejemplo, usando la misma credencial de Google obtengo los dos UID siguientes:
Default Auth UID: 0960868722032022577213DA4EA8B7A1683D92B405DD
Secondary Auth UID: 7h6XOeSxmkNsSseFJ1jU31WZHDP2
Si la app no ofrece vinculación de cuentas, se puede usar el ID de usuario de Google (o el de Facebook o Twitter, entre otros) para elementos como estructuras de bases de datos y reglas de seguridad. Sin embargo, si se necesita el mismo ID de usuario en cada proyecto, o si se usa autenticación mediante correo electrónico o contraseña, o como usuario anónimo, la situación es un poco más compleja.
Afortunadamente, esto puede resolverse usando recursos de autenticación personalizados, combinados con código en el servidor, ya que los tokens de autenticación personalizados especifican sus propios UID.
En este caso, no se incluye en la lista blanca ningún elemento del proyecto secundario, pero se descarga la cuenta de servicio tanto para este como para nuestros proyectos predeterminados. En el cliente de Android, primero se debe iniciar sesión y tomar el token de ID de Firebase del cliente de FirebaseAuth:
Nota: Se puede usar cualquier proveedor de inicio de sesión. Se usará el token personalizado para vincular los ID de usuario en los proyectos.
firebaseAuth.getCurrentUser().getToken(false /* forceRefresh */)
       .addOnCompleteListener(new OnCompleteListener() {
   @Override
   public void onComplete(@NonNull Task task) {
       String token = task.getResult().getToken(); // Send this to the server.
   }
});
Esto se envía al servidor, donde se usa para crear un token personalizado de Firebase. Al igual que en Android, se debe inicializar cada una de las apps. aunque se usan cuentas de servicio debido al posicionamiento en el servidor (en este caso se usa el SDK del servidor de Java, pero se puede usar NodeJS de la misma manera).
FirebaseOptions options = new FirebaseOptions.Builder()
  .setServiceAccount(new FileInputStream("default-service-account.json"))
  .build();
FirebaseApp.initializeApp(options);


FirebaseOptions secondaryOptions = new FirebaseOptions.Builder()
  .setServiceAccount(new FileInputStream("secondary-service-account.json"))
  .build();
FirebaseApp.initializeApp(secondaryOptions, "secondary");
La app principal se usa para verificar el token que proviene del cliente y la secundaria para crear el token de autenticación personalizado con el conjunto de UID correspondiente:
// Verify the ID token using the default app.
FirebaseAuth.getInstance().verifyIdToken(idToken)
  .addOnSuccessListener(new OnSuccessListener() {
    @Override
    public void onSuccess(FirebaseToken decodedToken) {
      String uid = decodedToken.getUid();
      System.out.println("User " + uid + " verified");
      FirebaseApp app = FirebaseApp.getInstance("secondary");
      String customToken = FirebaseAuth.getInstance(app).createCustomToken(uid);
      // TODO: Send the token back to the client!
    }
});
En la app de Android, se toma el token personalizado del servidor y se usa para la autenticación en el proyecto secundario.
FirebaseApp app = FirebaseApp.getInstance("secondary");
FirebaseAuth.getInstance(app).signInWithCustomToken(token);
Con esto, el UID de Firebase de ambos proyectos coincidirá.
Default Auth UID: 0960868722032022577213DA4EA8B7A1683D92B405DD
Secondary Auth UID: 0960868722032022577213DA4EA8B7A1683D92B405DD

También para iOS y la Web

Se espera que esto permita ofrecer opciones para el manejo de varios proyectos de Firebase desde una sola app. En caso de que te preguntes si lo mismo funciona en iOS y la Web, la respuesta es afirmativa. Solo debes usar el equivalente de FirebaseApp de Android para crear una referencia al proyecto secundario.
Con JavaScript, debe usarse firebase.app:
var config = {
    apiKey: "",
    authDomain: ".firebaseapp.com",
    databaseURL: "https://.firebaseio.com",
    storageBucket: ".appspot.com",
    messagingSenderId: "",
  };

var secondary = firebase.initializeApp(otherAppConfig, "secondary");
var secondaryDatabase = secondary.database();
Con iOS, FIRApp:
// Alt: load from plist using |FIROptions(contentsOfFile:)|
let options =  FIROptions(googleAppID: googleAppID, bundleID: bundleID, GCMSenderID: GCMSenderID, APIKey: nil, clientID: nil, trackingID: nil, androidClientID: nil, databaseURL: databaseURL, storageBucket: nil, deepLinkURLScheme: nil)

FIRApp.configure(withName: "secondary", options: fileopts)
guard let secondary = FIRApp.init(named: "secondary")
      else { assert(false, "Could not retrieve secondary app") }

let secondaryDatabase = FIRDatabase.database(app: secondary);
Para obtener más información y acceder a enlaces, visita la nueva página relacionada con la configuración de un proyecto de Firebase, en la documentación de Firebase.


Hoy lanzamos el nuevo libro electrónico llamado “Guía práctica de Native Ads”, la más reciente de nuestra serie práctica. Esta guía está diseñada para proporcionar información general sobre anuncios nativos, y compartir consejos útiles y prácticas recomendadas para implementar anuncios nativos en tu app.

Hoy lanzamos el nuevo libro electrónico llamado “Guía práctica de Native Ads”, la más reciente de nuestra serie práctica. Esta guía está diseñada para proporcionar información general sobre anuncios nativos, y compartir consejos útiles y prácticas recomendadas para implementar anuncios nativos en tu app.

Durante los últimos años, las expectativas de los usuarios de apps respecto del acceso a una experiencia de alta calidad han ido en aumento. Para el cumplimiento de estas expectativas, los formatos de los anuncios han evolucionado a la par. El nuevo formato, el más adecuado y que más se adapta a estas expectativas mayores, es el de los anuncios nativos. Se trata de anuncios que se amoldan al aspecto del contenido adyacente de la app. A su vez, debido al crecimiento previsto de USD 21 mil millones para 2018 en materia de gastos en estos anuncios, la oportunidad que los publicadores tienen de mejorar la experiencia del usuario y lograr nuevos ingresos es enorme.

A través del libro electrónico, accederás a lo siguiente:
  • Principios orientativos de diseño que te ayudarán a implementar anuncios nativos de manera más eficiente. 
  • Consejos útiles y prácticas recomendadas para implementar anuncios nativos con muchísimos ejemplos. 
  • Consejos sobre la manera de configurar una prueba A/B para comenzar a probar anuncios nativos. 
  • Métodos a través de los cuales AdMob puede ayudarte a implementar anuncios nativos.

Descarga tu copia aquí:

Vishal Kumar, administrador de producto sénior, AdMob




Publicado por Niko Schröer, desarrollo comercial, Google Play

Impulsar las instalaciones es importante para hacer crecer una base de usuarios, aunque no tiene mucho sentido si tu app se usa poco en los dispositivos de los usuarios. En un ámbito de desarrollo de apps en el que impera la competitividad, cada vez resulta más importante captar y retener usuarios a largo plazo para que una empresa sea exitosa. Los usuarios que más usen tu app proporcionarán un mayor valor a largo plazo, y las posibilidades de que la compartan serán más altas. Mira mi sesión de Playtime, a continuación, para obtener información sobre las herramientas y funciones que usan otros desarrolladores para aumentar la captación a través de apps. Debajo de la sesión, también podrás leer un resumen de mis consejos principales.


1. Crea una app de alta calidad para captar usuarios de Android,
Crear una app de alta calidad es el paso principal para ofrecer una experiencia del usuario excelente en Android. Cuanto mejor sea la experiencia del usuario de tu app, mayor será el efecto de la captación sobre tus usuarios. La aplicación de optimizaciones para material design, por ejemplo, puede mejorar considerablemente la captación de usuarios; lo mismo se aplica a las compilaciones vinculadas con Android Wear, Auto o TV, cuando tenga sentido según tu propuesta de valor.

Si deseas obtener resultados de alta calidad, te recomendamos ver las funciones, los consejos y las prácticas recomendadas más recientes para Android en nuestro Playbook for Developers.

Los desarrolladores de la app de golf Hole19 adecuaron meticulosamente la experiencia del usuario de esta para Android Wear y, como resultado, lograron un aumento del 40% en la captación de usuarios en comparación con los usuarios que no usan wearables. Mira un video sobre el éxito de Hole19.

2. Haz que los usuarios se sientan cómodos
Una buena manera de establecer una relación duradera es personalizar la experiencia de usuario de tu app para que los usuarios se sientan cómodos. La incorporación de nuevos usuarios es un paso crucial en este proceso. La incorporación debe ser rápida y fluida, y demandar una intervención mínima por parte de los usuarios. En definitiva, estos desean comenzar a usar tu app lo más rápido posible. A su vez, la incorporación debe ser un elemento central de la experiencia de usuario en general. Usa imágenes y expresiones que transmitan el verdadero espíritu de tu producto y solicita la intervención del usuario solo cuando sea necesaria, a fin de reducir el desgaste y evitar perder usuarios.

Los desarrolladores de la app de actividad física Freeletics crearon un atractivo flujo de incorporación de usuarios en el que adaptaron imágenes y texto a usuarios de sexo femenino y masculino respectivamente. También desplazaron el paso del registro a una etapa posterior del proceso para reducir el desgaste. El flujo de incorporación mejorado aumentó la actividad de los usuarios en un 58% en los primeros 7 días. Además, se implementó Google Smart Lock para agilizar el inicio de sesión de los usuarios que vuelven a abrir la app.

3. Optimiza los lanzamientos de funciones para aumentar la captación de usuarios
Introducir nuevas funciones es esencial para anticiparse a la competencia y conservar una posición importante frente a los usuarios, a fin de garantizar que continúen usando tu app. Para que los lanzamientos de funciones sean herramientas exitosas de captación de usuarios, sigue estos pasos simples:
  • Define un objetivo claro para cada lanzamiento a fin de medir el impacto; p. ej., aumentar al menos en un 10% el número de usuarios que editen una foto.
  • Usa pruebas Beta para reunir comentarios de los usuarios e itera una función antes de implementarla para todos ellos.
  • Habilita el informe previo al lanzamiento de la Google Play Developer Console para detectar posibles fallas y garantizar la estabilidad técnica de las versiones Alfa y Beta de tus apps.
  • Guía a los usuarios hacia cada función nueva como si se tratara de una experiencia de incorporación simple. Destaca visualmente las novedades y explica brevemente la razón por la que los usuarios deben interesarse.
  • Mide el rendimiento con análisis para ver si la función nueva genera captación (uno de los objetivos que definiste).
4. Usa las notificaciones de manera racional
Las notificaciones de aplicación son, con justa razón, una herramienta de captación popular. Sin embargo, existe una delgada línea entre generar captación y disgustar a los usuarios (quienes podrían desinstalar tu app). Sigue estas pautas para garantizar que tus notificaciones se encuentren del lado correcto de la línea:
  • Concéntrate en los aspectos relevantes y envía únicamente mensajes que sean importantes para el usuario dentro del contexto. Sé creativo y transparente respecto de tu producto, habla el lenguaje de tus usuarios y usa un tono auténtico.
  • Haz que los usuarios puedan interactuar con las notificaciones y, para ahorrarles tiempo, no olvides establecer vínculos directos con el contenido cuando corresponda.
  • Recuerda que no todos tus usuarios son iguales; personaliza tu mensaje para diferentes cohortes de usuarios con Notificaciones de Firebase.
  • Contempla la puntualidad de tus mensajes, de modo que los usuarios reciban las notificaciones correspondientes en el momento correcto y con la frecuencia adecuada. Por ejemplo, podría tener mejor resultado enviar una notificación acerca de una lectura interesante en un momento en que el usuario deje de usar su teléfono (por citar un caso, durante su viaje cotidiano) en lugar de hacerlo a mitad de la jornada, cuando pueda estar ocupado y descartar una notificación nueva.
  • Por último, permite que los usuarios controlen las notificaciones que reciben para que puedan aceptarlas o rechazarlas según les interesen o no. Si determinadas notificaciones disgustan a los usuarios y estos no tienen la posibilidad de inhabilitarlas, es posible que desinstalen tu app.
Los desarrolladores de la app de noticias Aftenposten implementaron un nuevo flujo de incorporación que aportó claridad respecto de las notificaciones disponibles. Esto permitió a los lectores administrar sus preferencias. Esto redujo las desinstalaciones en un 9,2% en 60 días y disminuyó en un 28% el número de usuarios que inhabilitaron por completo las notificaciones. Más información sobre el éxito de Aftenposten

5. Premia a los usuarios que más se involucren
Por último (aunque no por ello sea menos importante), debes encontrar maneras de premiar a tus usuarios más leales para retenerlos en el largo plazo, y para que los usuarios menos involucrados deseen interactuar más. Estas recompensas pueden adquirir muchas formas. Comienza aplicando conceptos sencillos, y asegúrate de que las recompensas brinden valor real al usuario y se adecuen al ecosistema de tu app. Puedes lograr esto:
  • ofreciendo vistas rápidas de funciones nuevas a través de invitaciones para que los usuarios participen de un grupo Beta;
  • disponiendo insignias a modo de decoración en las cuentas de los usuarios según su comportamiento;
  • ofreciendo descuentos o códigos promocionales exclusivos que solo puedan canjearse en tu app.
En general, cuanto más personalices la recompensa, mejores serán sus resultados.

Alcanza el éxito a través de la experimentación constante
Para ser excelente, una app de Android debe brindar a los desarrolladores la oportunidad única de establecer una relación duradera con los usuarios y de crear un negocio sostenible que satisfaga a los clientes. Por lo tanto, la táctica de optimizar apps con el propósito de captar y retener a tus usuarios a través de estos 5 consejos debe ocupar un lugar central en tus objetivos de desarrollo y tu estrategia empresarial. Encuentra más consejos y prácticas recomendadas en las sesiones de los eventos de Playtime de este año.




Muchos desarrolladores de juegos usan otros títulos que han tenido éxito (así sean propios o de otros) como ejemplos para diseñar mejor un juego o aplicar monetización. Esta puede ser una opción inteligente, en especial cuando se trata de elementos de la interfaz de usuario, como el esquema de control, el progreso del jugador y la economía monetaria. Sin embargo, a la hora de conocer la mejor manera de monetizar tu app, copiar aspectos de otras apps puede hacer que pierdas dinero.
 Muchos desarrolladores de juegos usan otros títulos que han tenido éxito (así sean propios o de otros) como ejemplos para diseñar mejor un juego o aplicar monetización. Esta puede ser una opción inteligente, en especial cuando se trata de elementos de la interfaz de usuario, como el esquema de control, el progreso del jugador y la economía monetaria. Sin embargo, a la hora de conocer la mejor manera de monetizar tu app, copiar aspectos de otras apps puede hacer que pierdas dinero.
Resulta tentador observar la forma en que los títulos exitosos del mercado de apps generan ganancias e imitarlos. Uno podría afirmar que si la fórmula funciona tan bien para esos juegos lo mismo debería suceder para un juego propio. Aunque esto es cierto en algunos casos, no todos los títulos pueden basarse en el mismo ritmo de compras directas desde la aplicación y en una cuota de anuncios de video con retribución económica para alcanzar sus objetivos.
¿Qué se puede hacer, entonces? Concéntrate en los aspectos distintivos de tu juego (desde el diseño artístico hasta los niveles), y experimenta con compras directas desde la aplicación y anuncios pertinentes para amplificar la experiencia. En este punto, las ideas originales pueden servir. Los formatos de anuncios novedosos pueden ser muy eficaces para captar la atención del usuario sin afectar la esencia.  Asegúrate de probar el funcionamiento de estos aspectos en tu juego; podrían brindar un nivel totalmente nuevo en términos de ingresos por anuncios, e incluso hacer que aumente el suspenso en la experiencia del jugador.
Mundos de fantasía, soluciones reales: 4 pasos para empezar
Viajemos a una dimensión paralela, un lugar en el que a un juego de estrategia llamado Collision of Tribes no está dando resultados tan buenos desde el punto de vista de la monetización. De hecho, no se destaca entre las apps de la tienda. Su mecánica básica tiene un excelente equilibrio y mantiene atraída a su base de usuarios, pero por algún motivo los ingresos no responden a esto. A continuación, se ofrecen algunos pasos que deben tenerse en cuenta respecto de la manera en que se puede lograr un aumento en los ingresos a través de AdMob:

  • Considera usar nuevos formatos de anuncios: el punto de transición entre las pantallas de informes de batallas y administración de ciudades es un espacio perfecto para usar anuncios intersticiales. Una opción aún mejor consistiría en orientarse únicamente hacia usuarios que hayan tenido éxito en sus campañas. La efectividad de un anuncio aumentará al combinarlo con una experiencia positiva en el juego.
  • Haz la prueba: no es necesario aplicar la nueva función de anuncios para todos los usuarios. Los desarrolladores pueden seleccionar un segmento pequeño de su base de usuarios (por ejemplo, un 10%) para asegurarse de que el efecto en los ingresos sea positivo. 
  • Mide la respuesta del usuario: así como lo harías al modificar la mecánica de un juego o implementar una nueva, observa tus métricas de captación para ver si existen efectos deseados o no deseados. Leer reseñas de la tienda te aportará un nivel de comprensión más personalizado de la forma en que los usuarios perciben el cambio.
  • Realiza retoques: aún cuando los resultados sean buenos, siempre se pueden lograr mejoras. Usa los datos que estén a tu disposición para equilibrar y volver a equilibrar la limitación de frecuencia, los precios piso y la disposición. Por otra parte, si los anuncios intersticiales no generan los resultados que se esperan, prueba anuncios nativos u otros formatos como alternativa.

La aplicación de los pasos detallados no solo puede resultar útil para los desarrolladores de Collision of Tribes, sino también para ti. Si reproducir lo que hacen los líderes del segmento no te ha permitido avanzar de cierto punto, prueba con algo nuevo para dar un paso más adelante.

AdMob by Google es una de las principales plataformas de anuncios para dispositivos móviles, en la que confían más de 650.000 aplicaciones en todo el mundo. Si deseas conocer más acerca de AdMob, visita este enlace .

Publicado por Lily Sheringham, marketing para desarrolladores, Google Play


 Publicado por Lily Sheringham, marketing para desarrolladores, Google Play



Con solo unos clics, puedes publicar una app en Google Play y acceder a un público de más de 1000 millones de usuarios activos durante 30 días en el mundo. Alcanzar el éxito en los mercados mundiales implica contemplar las diferencias de cada mercado, realizar planificaciones para lograr una localización de alta calidad y adaptar tu actividad a los públicos locales. En el nuevo The Global Playbook (manual para la expansión global) se pueden hallar prácticas recomendadas y consejos, y se ofrece asesoramiento aportado por desarrolladores que han logrado llevar su producto con éxito a todo el mundo.

En esta guía, se incluyen consejos para que puedas planificar tu enfoque hacia la expansión global, preparar tu app para nuevos mercados y presentarla en ellos, y también incluir datos y estadísticas para países claves, además de otros recursos útiles.

Este libro electrónico se suma a otros que hemos publicado recientemente, como The Building for Billions Playbook (manual de compilación para miles de millones de usuarios) y The News Publisher Playbook (manual para el editor de noticias). Todos nuestros libros electrónicos se promocionan en la app Playbook for Developers, con la cual puedes mantenerte al tanto de todas las novedades y prácticas recomendadas que necesitas para alcanzar el éxito en Google Play.


¡El episodio 10 de Mobile Ads Garage está disponible en YouTube! En caso de que aún no la hayas visto, Mobile Ads Garage es una serie de tutoriales de video en la que se describe la manera de usar el Mobile Ads SDK para mostrar anuncios de AdMob y DoubleClick for Publishers. En cada episodio, se abarca un aspecto del SDK, se ofrece un desglose de una función y se muestran capturas de pantalla de implementaciones reales en Android e iOS; todo ello, en un formato simple.

¡El episodio 10 de Mobile Ads Garage está disponible en YouTube! En caso de que aún no la hayas visto, Mobile Ads Garage es una serie de tutoriales de video en la que se describe la manera de usar el Mobile Ads SDK para mostrar anuncios de AdMob y DoubleClick for Publishers. En cada episodio, se abarca un aspecto del SDK, se ofrece un desglose de una función y se muestran capturas de pantalla de implementaciones reales en Android e iOS; todo ello, en un formato simple.

Tener conocimiento de lo que sucede en tus anuncios es un aspecto muy importante para procurar una excelente experiencia de usuario. En el último episodio de Mobile Ads Garage, verás la manera de aprovechar el ciclo de vida de los anuncios para que tu app registre cargas, clics y otros eventos claves. También accederás a un desglose de los pasos del ciclo de vida de un anuncio, información sobre las clases y los callbacks que deben usarse para tareas comunes, como las de pausar motores de juegos y desactivar el sonido, y un ejemplo real en el que todo esto se combina.



Si te gusta el video, guarda la lista de reproducción de Mobile Ads Garage en tu colección de listas de reproducción de YouTube para no perderte ni un episodio.

Recibiremos con gusto comentarios relacionados con las funciones de AdMob sobre las que desearías recibir más información. Las secciones de comentarios de los videos son abiertas y te invitamos a sugerir ideas para desarrollar nuevos episodios y ejemplos que desearías ver. Si tienes preguntas técnicas relacionadas con algún aspecto tratado en uno de los episodios, puedes presentarlas en nuestro foro de asistencia.

AdMob by Google es una de las principales plataformas de anuncios para dispositivos móviles, en la que confían más de 650.000 aplicaciones en todo el mundo. Si deseas conocer más acerca de AdMob, visita este enlace .


¿Eres el desarrollador que creará la próxima gran app? ¿Desearías poder analizar mejor tu app y a sus usuarios, y así poder aplicar monetización sin comprometer la experiencia del usuario en general? Si la respuesta es positiva, este es el artículo indicado para ti.

¿Eres el desarrollador que creará la próxima gran app? ¿Desearías poder analizar mejor tu app y a sus usuarios, y así poder aplicar monetización sin comprometer la experiencia del usuario en general? Si la respuesta es positiva, este es el artículo indicado para ti.

No solo es posible responder estas preguntas al mismo tiempo. La solución ya existe: Firebase. Firebase puede ayudarte a crear tu app, conocer y hacer crecer tu base de usuarios, y establecer un vínculo con AdMob para lograr una mejor monetización.





Cómo desarrollar tu app

Firebase puede proporcionar una base de datos en tiempo real, autenticación, envío de mensajes a través de la nube, almacenamiento, hosting e informes de fallos para ayudarte a desarrollar tu app. Olvídate de la infraestructura; puedes concentrarte en concretar tu gran creación y dejar que Firebase se encargue de las operaciones.

Analiza a tu público

El componente central de Firebase es una solución de análisis totalmente gratuita destinada específicamente a apps para dispositivos móviles. Gracias a una capacidad de creación de informes ilimitada para un total de hasta 500 eventos diferentes, puedes configurar varias mediciones a fin de determinar con exactitud lo que hacen los usuarios en tu app, si esta capta su atención y los aspectos que más les agradan de ella. Con estos datos, puedes concentrar tus esfuerzos para explorar y mantener las mejores funciones de tu app, y al mismo tiempo mejorar aspectos relacionados con nuevas necesidades.

Haz crecer tu público

Una vez que lances tu app, Firebase te ayudará a hacer crecer tu público y a volver a captarlo con poderosas herramientas de crecimiento. Usando la consola de notificaciones de Firebase, puedes volver a captar usuarios, realizar campañas de marketing y dirigir mensajes a diferentes públicos de Firebase Analytics. Dynamic Links puede seguir existiendo después del proceso de instalación y dirigir a los usuarios hacia el contenido correspondiente, independientemente de que sean nuevos o formen parte de tus clientes hace mucho tiempo. También se encuentra disponible la función Firebase Invites, una solución lista para usar para referencias e intercambio de apps, que permite a tus usuarios existentes compartir con facilidad tu app o su contenido favorito de esta por correo electrónico o SMS. Por último, Firebase también puede realizar un seguimiento de tus instalaciones de apps a través de AdWords e informar el valor de vida útil al panel de Firebase Analytics, y también pueden usarse los públicos de Firebase en AdWords para volver a captar grupos específicos de usuarios. Por ejemplo, los eventos de apps pueden definirse como conversiones en AdWords para optimizar tus anuncios, incluidas las campañas universales de apps.

Monetiza tu producto

Gracias a AdMob de Google, Firebase también puede ayudarte a monetizar tu app estableciendo un vínculo entre tu copia de Firebase Analytics y la monetización. Al combinar estos dos productos, puedes obtener estadísticas detalladas sobre datos de uso que luego puedes usar para optimizar tu experiencia de usuario y monetizar tu app. ¿Tus usuarios experimentan problemas para superar determinados niveles? Ayúdalos a hacerlo a través de videos con retribución económica. ¿Algunos usuarios pasan todo el día recorriendo indefinidamente tu contenido? Ayúdalos a descubrir otras herramientas geniales con Native Ads Express. ¿Algunos de tus usuarios gastan mucho dinero en tus CDA y deseas que sus experiencias no incluyan anuncios? Divídelos en segmentos con Firebase y exclúyelos de la experiencia de anuncios.



¿Deseas obtener más información? 

Mira el video de arriba, en el que Andrew Brogden, del área de relaciones con desarrolladores de anuncios móviles, y David East, representante de desarrolladores, muestran los beneficios del uso combinado de AdMob y Firebase, y la manera de configurar tus proyectos de Android e iOS con ambos SDK.

¿Estás listo para comenzar a explorar el verdadero poder de Firebase y AdMob? Regístrate para abrir una cuenta de Firebase y una cuenta de AdMob, y vincúlalas.

Mantente preparado a la espera de nuestro próximo blog sobre Firebase durante las próximas semanas. En él, exploraremos en mayor profundidad el análisis del comportamiento de los usuarios (del que ya tienes estadísticas detalladas gracias a Firebase) y la manera en que esto puede ayudarte a aumentar el número de reseñas de 5 estrellas.


AdMob by Google es una de las principales plataformas de anuncios para dispositivos móviles, en la que confían más de 650.000 aplicaciones en todo el mundo. Si deseas conocer más acerca de AdMob, visita este enlace .




El episodio 12 de Mobile Ads Garage se encuentra disponible en YouTube. Por si no la has visto, Mobile Ads Garage es una serie de instructivos en video en la que se muestra la forma de usar el Mobile Ads SDK para mostrar anuncios de AdMob y DoubleClick for Publishers. En cada episodio se trata un aspecto del SDK, se ofrece un desglose de la función de turno y se muestran presentaciones en pantalla de implementaciones reales en Android e iOS; todo ello en un formato simple.

El episodio 12 de Mobile Ads Garage se encuentra disponible en YouTube. Por si no la has visto, Mobile Ads Garage es una serie de instructivos en video en la que se muestra la forma de usar el Mobile Ads SDK para mostrar anuncios de AdMob y DoubleClick for Publishers. En cada episodio se trata un aspecto del SDK, se ofrece un desglose de la función de turno y se muestran presentaciones en pantalla de implementaciones reales en Android e iOS; todo ello en un formato simple.

Gracias a sus presentaciones personalizables y su capacidad de almacenamiento previo en caché, los anuncios de Native Express se adecuan a la perfección a las interfaces de usuario basadas en listas:





En este episodio de análisis profundo de Mobile Ads Garage, aprenderás a integrar anuncios de Native Express a una app de iOS que use un objeto UITableViewController para su IU principal. Verás presentaciones en pantalla detalladas de una implementación en Xcode. En el episodio también se incluye una técnica práctica para aprovechar el ciclo de vida de los anuncios a fin de cargar anuncios de Native Express de manera secuencial, desde el inicio hasta el final de la lista.



Si te agrada el video, guarda la playlist de Mobile Ads Garage en tu colección de playlists de YouTube para no perderte ningún episodio.

Nos encantará que menciones las funciones de AdMob de las que deseas recibir más información. Se encuentran disponibles las secciones de comentarios de los videos, y te invitamos a compartir ideas para nuevos episodios y ejemplos que desees ver. Si tienes una pregunta técnica relacionada con algún aspecto analizado en uno de los episodios, puedes presentarla en nuestro foro de asistencia.

AdMob by Google es una de las principales plataformas de anuncios para dispositivos móviles, en la que confían más de 650.000 aplicaciones en todo el mundo. Si deseas conocer más acerca de AdMob, visita este enlace .

El modelo de negocios de las suscripciones es uno de los mejores métodos para obtener ingresos más regulares, confiables y recurrentes en Android y Google Play. De hecho, a los desarrolladores y usuarios les agradan tanto las aplicaciones con suscripción que hemos visto crecer 10 veces las compras de los consumidores durante los últimos 3 años y 2 veces el número de suscriptores activos durante el último. Miles de desarrolladores ofrecen suscripciones a través de Google Play y ya observan resultados exitosos con nuestra plataforma de facturación. Ese es el motivo por el cual hemos trabajado mucho para ayudarlos a aprovechar esta oportunidad, y para proporcionarles mejor información sobre sus negocios y los usuarios de Android.
El modelo de negocios de las suscripciones es uno de los mejores métodos para obtener ingresos más regulares, confiables y recurrentes en Android y Google Play. De hecho, a los desarrolladores y usuarios les agradan tanto las aplicaciones con suscripción que hemos visto crecer 10 veces las compras de los consumidores durante los últimos 3 años y 2 veces el número de suscriptores activos durante el último. Miles de desarrolladores ofrecen suscripciones a través de Google Play y ya observan resultados exitosos con nuestra plataforma de facturación. Ese es el motivo por el cual hemos trabajado mucho para ayudarlos a aprovechar esta oportunidad, y para proporcionarles mejor información sobre sus negocios y los usuarios de Android.

Nuevas funciones para que sus negocios de suscripciones prosperen


Aunque un producto tenga un alto rendimiento, excelentes funciones y contenido atractivo, un negocio no puede tener éxito si no se captan nuevos usuarios. Además de las versiones de prueba gratuitas, los precios de presentación y los períodos de facturación flexible, entre otros aspectos, en un lanzamiento reciente presentamos la posibilidad de pagar suscripciones con el resumen de cuenta de Google Play. Aunque los usuarios ya están usando tarjetas de regalo para pagar contenido de Play en más de 20 países, el uso de estas tarjetas para abonar suscripciones en regiones en las cuales el dinero en efectivo es un medio de pago popular, como América Latina, generó un aumento del 15% en los consumos por suscripciones.

Pero lo importante no es solo adquirir nuevos usuario, sino también conservar los que ya existen. Por ello presentamos el bloqueo de cuenta, un proceso en el que colaboramos con ustedes para bloquear el acceso a su contenido o servicio si se produce un error en el método de pago de un usuario. Esto establece un vínculo directo entre dicho error y el usuario que pierde el acceso al contenido o a las funciones premium, con lo cual basta para que el usuario elija un nuevo método de pago. Cuando Keepsafe (la empresa desarrolladora de Keepsafe Photo Vault, una aplicación de bloqueo de fotos para imágenes y videos privados que superó las 50 millones de descargas) incorporó el bloqueo de cuenta, su tasa de renovación en Android aumentó un 25%. Actualmente ofrecemos acceso anticipado a más de una docena de desarrolladores, y anunciaremos la disponibilidad a nivel público a fines de junio.

Sabemos que los datos son esenciales para sus negocios. Por ello, nos entusiasma anunciar un nuevo panel de suscripciones en Play Console y un nuevo informe sobre suscriptores de aplicaciones de Android.

En el panel se integran datos sobre suscripciones, como los de nuevos suscriptores, cancelaciones y suscriptores totales. También se muestran datos de ingresos diarios y por períodos de 30 días, y se destacan los productos con mejor rendimiento. Esto les permitirá visualizar sus productos con suscripción y los usuarios, y los orientará en la toma de decisiones relacionadas con el negocio.

Información para que puedan hacer crecer sus negocios de suscripciones


Además de mejorar los productos y las funciones, comprender las necesidades de los usuarios es fundamental para edificar un negocio de suscripciones exitoso. Nos comunicamos con 2000 suscriptores de aplicaciones de Android de EE. UU. y el RU, y les pedimos que nos contaran cómo y por qué usan las aplicaciones que eligen. En los resultados compartidos en el informe “Subscription apps on Google Play: User insights to help developers win” (aplicaciones con suscripción, información sobre los usuarios para el éxito de los desarrolladores) se destacan algunas de las oportunidades que tienen para hacer crecer sus bases de usuarios con suscripciones, aprender a conservarlos y fijar estrategias de precios. Por ejemplo:
  • Usar versiones de prueba gratuitas para captar usuarios: el 78% de los usuarios comienzan con una versión gratuita de una aplicación y muchos de ellos citan un descuento o la finalización del período de prueba entre las razones para pagar por ella.
  • Mantener actualizado el contenido y conservar su atractivo para que los usuarios paguen por él y sigan haciéndolo: este es el incentivo más importante para que los usuarios comiencen a pagar por un producto y sigan consumiéndolo.
  • La oportunidad de ganar dinero a partir de las suscripciones es enorme. Si bien la elasticidad de los precios varía según la categoría, pocos usuarios mencionan el precio entre los motivos de la migración y el 64% de ellos administra su presupuesto por aplicación o no lo hace (en contraposición a quienes manejan presupuestos por la totalidad de las suscripciones de aplicaciones).
Para obtener más información sobre cómo hacer crecer sus negocios de suscripciones con Google Play, miren nuestra sesión de I/O, descarguen el informe de investigación (PDF) e incursionen en el ámbito de las suscripciones con facturación integrada en Google Play.

¿Cuán útil te resultó esta entrada de blog?


Publicación hecha en varios medios desde el blog de Chromium

Publicado por Rahul Roy-chowdhury, Vicepresidente de administración de producto, Chrome
Un año puede marcar una diferencia notable. En la edición de Google I/O del año pasado ...
 Publicación hecha en varios medios desde el blog de Chromium

Publicado por Rahul Roy-chowdhury, Vicepresidente de administración de producto, Chrome
Un año puede marcar una diferencia notable. En la edición de Google I/O del año pasado, comentamos que la Web móvil estaba abierta para los negocios. Las nuevas tecnologías, como AMP y las Progressive Web Apps (PWA), ofrecían nuevas capacidades, un mejor rendimiento y un flujo de trabajo optimizado para la Web móvil.
Avancemos rápido un año hasta el presente: se han creado más de mil millones de páginas AMP y “PWA” resultó ser mucho más que una palabra de moda; ahora es el método adoptado por muchas empresas de todo el mundo para realizar compilaciones destinadas a dispositivos móviles. Para obtener más información, miren el video de Google I/O sobre las últimas novedades del estado de la unión de la Web móvil o entérense, a continuación, de la manera en que estas tecnologías están convirtiendo a la Web móvil en una tendencia mayoritaria.
Impulso
Resumir en una publicación todas las fabulosas historias de éxito que de distintos rincones del mundo llegaron al evento es una tarea difícil, pero aquí se ofrecen algunos aspectos destacados.

A fin de mejorar el rendimiento de su sitio móvil, Wego creó páginas AMP usando amp-install-serviceworker para realizar la transición a una experiencia de PWA rápida. El tiempo promedio de carga de páginas se redujo de 12 segundos a menos de 1 y las tasas de conversión aumentaron en un 95%.


Al recrear su sitio web móvil como una PWA, Forbes comenzó por concebir nuevamente el aspecto de su experiencia en un teléfono. En lugar de aplicar actualizaciones mínimas a su sitio subyacente, la empresa integró tecnologías de PWA para proporcionar una experiencia inmersiva similar a la de una aplicación. Se observaron mejoras de inmediato, y las tasas de captación experimentaron un aumento superior al doble desde el lanzamiento.


Ola, la empresa líder en servicios de transporte en taxi de La India, creó una PWA y observó que el 20% de los usuarios que realizan reservas con ella habían desinstalado la aplicación anterior. Al requerir un menor espacio de almacenamiento, la PWA permitió a la empresa volver a captar usuarios que, de lo contrario, se habrían perdido.
Otra historia de éxito es la de Twitter Lite, una PWA que minimiza el uso de datos, ofrece solidez en redes móviles no confiables y ocupa menos de 1 MB en los dispositivos. La nueva experiencia móvil de Twitter también incorpora optimizaciones de velocidad, ya que agiliza la navegación en el sitio y reduce los tiempos de inicio hasta en un 30%. En la empresa, se descubrió que los usuarios pasan 2,7 veces más tiempo en el sitio y, como resultado, se observa hoy un 76% más de tuits en la nueva PWA que en el sitio móvil anterior. Twitter está viviendo una increíble renovación de la captación; se inicia 1 millón de sesiones por día a través de íconos agregados a pantallas de inicio de Android.
Experiencias optimizadas
Las expectativas de los usuarios respecto de sus dispositivos móviles son altas, y durante el año pasado agregamos muchísimas API para cumplir con esa demanda. La Web móvil puede admitir más casos de uso y realizar más funciones que nunca. Algunos ejemplos destacados:
  • Función Add to homescreen mejorada: A principios de este año, revelamos la función Add to Homescreen mejorada, que permitió una integración más profunda de las PWA al sistema operativo Android. Ahora, además de aparecer en la pantalla de inicio, las PWA también se muestran en el lanzador de aplicaciones y la configuración de Android junto a las aplicaciones nativas. A su vez, también pueden abrirse cuando los usuarios hacen clic en vínculos de Chrome u otras aplicaciones.
  • Pagos: El cierre de una compra puede ser un proceso complicado. Para mejorar los flujos de pago en la Web, lanzamos una API de pago con un toque llamada Payment Request. El uso de esta API permite que las aplicaciones web admitan tarjetas de crédito y mecanismos de pago de Google, como Android Pay. También anunciamos recientemente que ahora es posible integrar esta API con aplicaciones de pago adicional.
  • Consumo de elementos multimedia: El video representa más del 70% del tráfico de Internet. Para hacer posible una experiencia multimedia excelente en la Web móvil, otorgamos a los usuarios más control sobre la reproducción con la Media Session API y mejoramos la reproducción en pantalla completa con la Screen Orientation API. También completaremos funciones de uso sin conexión con la captura de fondo. Si desean obtener más información, consulten nuestras prácticas recomendadas para elementos multimedia en la Web móvil y descubran la forma en que las API pueden integrarse en nuestra demostración PWA para elementos multimedia.
Herramientas
También hemos trabajado mucho para mejorar y ampliar el conjunto de herramientas que les permiten crear experiencias atractivas en la Web.
Lighthouse es una nueva herramienta automatizada que permite medir la calidad de una experiencia en la Web. Ejecuta casi 100 auditorías en sus aplicaciones web; verifica cualquier aspecto, desde el rendimiento de páginas hasta la eficiencia de bytes y la accesibilidad, y proporciona una calificación resumida. La nueva integración con DevTools de Chrome les permite ejecutar auditorías de Lighthouse sin salir del navegador.
Polymer 2.0 es la próxima versión importante de la biblioteca Polymer y se rehizo por completo para aprovechar las mejores funciones nuevas de la plataforma web moderna. Esta versión emplea nuevas Web Component API incluidas en Chrome y Safari. Es totalmente modular y, lo mejor de todo, un 10% más rápida y un 80% menos voluminosa.
Chrome se compromete a garantizar que puedan realizar desarrollos de manera sencilla, interactuar con sus usuarios y crear negocios pujantes en la Web. Para acceder a las últimas novedades, suscríbanse a nuestro canal de YouTube y sígannos en Twitter (@ChromiumDev).

Publicado originalmente en el Google Open Source Blog.


Nos complace anunciar que daremos los primeros pasos hacia el lanzamiento de nuestras bibliotecas de cliente en código abierto. Al hacer que nuestros SDK sean abiertos, buscamos mostrar nuestro compromiso con la transparencia y con la construcción de una comunidad de desarrolladores más fuerte. Para contribuir más a ese objetivo, usaremos GitHub como elemento central de nuestro conjunto de herramientas a fin de permitir que todos ustedes también realicen aportes. A medida que encuentren problemas en nuestro código, desde inconsistencias hasta errores, podrán comunicarlos a través del seguimiento de problemas de GitHub. También podrán hallar nuestro proyecto en el ...
Publicado originalmente en el Google Open Source Blog.


Nos complace anunciar que daremos los primeros pasos hacia el lanzamiento de nuestras bibliotecas de cliente en código abierto. Al hacer que nuestros SDK sean abiertos, buscamos mostrar nuestro compromiso con la transparencia y con la construcción de una comunidad de desarrolladores más fuerte. Para contribuir más a ese objetivo, usaremos GitHub como elemento central de nuestro conjunto de herramientas a fin de permitir que todos ustedes también realicen aportes. A medida que encuentren problemas en nuestro código, desde inconsistencias hasta errores, podrán comunicarlos a través del seguimiento de problemas de GitHub. También podrán hallar nuestro proyecto en el directorio de código abierto de Google. ¡Esperamos sus solicitudes de incorporación de cambios!

¿Qué se lanzará en código abierto?


Comenzaremos con varios productos de nuestros SDK de iOS, JavaScript, Java, Node.js y Python. También buscaremos incluir nuestro Android SDK. Los SDK contarán con licencia de Apache 2.0; la misma licencia flexible que la de los proyectos de código abierto existentes de Firebase, como FirebaseUI.

Veamos cada repositorio:

SDK de Firebase para iOS 4.0


https://github.com/firebase/firebase-ios-sdk

Con el lanzamiento de los SDK de Firebase para iOS 4.0, hemos implementado varias mejoras en la experiencia del usuario. Por ejemplo, más nombres de API idiomáticas para nuestros usuarios de Swift. Al lanzar en código abierto nuestros SDK para iOS, esperamos brindarles una vía a través de la cual puedan enviarnos comentarios sobre las funciones. Para este primer paso, lanzaremos en código abierto nuestros SDK de base de datos en tiempo real, autenticación, almacenamiento en la nube y envío de mensajes a través de la nube (FCM), pero nuestro objetivo es realizar más lanzamientos.

Debido a que aún no podemos lanzar en código abierto algunos de los componentes de Firebase, el proceso de compilación del producto completo no se encuentra disponible. Si bien pueden usar este repositorio para compilar un pod de FirebaseDev, nuestras bibliotecas distribuidas a través de CocoaPods continuarán siendo frameworks estáticos por el momento. Buscamos constantemente maneras de mejorar su experiencia como desarrolladores, independientemente de la forma en que se integren.

En nuestra sección README de GitHub se proporciona información sobre sus métodos de compilación, sus pruebas y sus aportes a nuestros SDK para iOS.

Firebase JavaScript SDK 4.0


https://github.com/firebase/firebase-js-sdk

Nos entusiasma anunciar que lanzaremos en código abierto nuestros SDK de base de datos en tiempo real, almacenamiento en la nube y envío de mensajes a través de la nube (FCM). Incorporaremos algunas mejoras poco después de este lanzamiento inicial; entre otras, el lanzamiento en código abierto de la autenticación de Firebase. También estamos planeando el lanzamiento de los mapas de origen para nuestros componentes. Según nuestras proyecciones, esto mejorará mucho la capacidad de depuración de sus aplicaciones.

En nuestro repositorio de GitHub, encontrarán instrucciones para realizar compilaciones, pruebas y aportes.

Firebase Admin SDK


Node.js: https://github.com/firebase/firebase-admin-node

Java: https://github.com/firebase/firebase-admin-java

Python: https://github.com/firebase/firebase-admin-python

Nos complace anunciar que nuestros tres Admin SDK para el acceso a Firebase en entornos con privilegios ahora se encuentran disponibles por completo en código abierto. Se incluye nuestro Python SDK, recientemente lanzado. Mientras continuamos analizando la compatibilidad con más lenguajes, los invitamos a usar nuestra fuente como inspiración para acercar Firebase a sus entornos (y si lo hacen, nos encantará recibir sus comentarios).

Esperamos con muchas ganas ver sus creaciones con los SDK actualizados. Como siempre, envíennos comentarios o preguntas a través del grupo Firebase-Talk de Google, de Stack Overflow y del equipo de asistencia de Firebase. Ahora también pueden recurrir a GitHub para presentar errores y solicitudes de incorporación de cambios relacionados con SDK. Para leer información sobre las otras mejoras de Firebase lanzadas en Google I/O, visiten el blog de Firebase.