Realizar la migración hacia la nube puede ser un proyecto desafiante para cualquier empresa de magnitud importante. Existen muchas consideraciones diferentes respecto de las migraciones, pero una de las tareas más importantes es la de migrar máquinas virtuales. Debido a la variedad de dispositivos de hardware, hipervisores y sistemas operativos que se usan en la actualidad, esta tarea puede ser compleja y abrumadora.


Realizar la migración hacia la nube puede ser un proyecto desafiante para cualquier empresa de magnitud importante. Existen muchas consideraciones diferentes respecto de las migraciones, pero una de las tareas más importantes es la de migrar máquinas virtuales. Debido a la variedad de dispositivos de hardware, hipervisores y sistemas operativos que se usan en la actualidad, esta tarea puede ser compleja y abrumadora.

El equipo de ingeniería de clientes de Google Cloud ha ayudado a varios clientes (como Spotify y Evernote) a realizar la migración a GCP. Según esas experiencias y el conocimiento que tenemos acerca del funcionamiento de nuestra propia nube, hemos publicado un artículo en el que se describen nuestras prácticas recomendadas sobre la migración de máquinas virtuales.

Una de las herramientas que pueden ayudar a los clientes a realizar la migración a Google Cloud es CloudEndure. CloudEndure potencia el servicio de migración de VM de Google y puede simplificar el proceso de migración de máquinas virtuales. CloudEndure colaboró con nosotros en este artículo aportando estudios de caso prácticos de migraciones que ha realizado para varios clientes.

Esperamos que este artículo te resulte útil cuando lleves a cabo migraciones hacia la nube. Si decides recurrir al servicio de migración, consulta nuestro tutorial para orientarte en el proceso.

¡Prueba sorpresa, cerebrito! Supongamos que gastaste dinero en dos campañas de anuncios diferentes para atraer usuarios a tu app. Después de unas semanas, obtuviste estos resultados:

  • La campaña de anuncios n.º 1 generó 500 clics.
  • La campaña de anuncios n.º 2 generó 300 clics.
¡Prueba sorpresa, cerebrito! Supongamos que gastaste dinero en dos campañas de anuncios diferentes para atraer usuarios a tu app. Después de unas semanas, obtuviste estos resultados:

  • La campaña de anuncios n.º 1 generó 500 clics.
  • La campaña de anuncios n.º 2 generó 300 clics.
¿Qué campaña de anuncios tuvo el mejor rendimiento? La respuesta parece muy fácil, ¿no es así? ¿Debes enfocarte más en la campaña de anuncios n.º 1?

Espera. ¿Qué sucedería si luego descubrieras lo siguiente?
  • La campaña de anuncios n.º 1 generó 500 clics.
    • Sin embargo, solo 80 usuarios instalaron y abrieron tu app...
    • ... y gastaron en promedio USD 1,20 cada uno.
  • La campaña de anuncios n.º 2 generó 300 clics.
    • Sin embargo, 230 usuarios instalaron y abrieron tu app.
    • A su vez, gastaron en promedio USD 6 cada uno...
    • ... y más de 100 entre ellos se registraron para recibir tu boletín informativo.
De repente, esa segunda campaña de anuncios parece mucho más conveniente, ¿o no?

Esa es la idea que encierra la atribución. Es una poderosa expresión del análisis de apps que no solo determina las campañas que te permiten captar usuarios, sino también las que te ayudan a atraer usuarios valiosos que te interesen más.

Si bien la atribución es un tema complejo para cuyo estudio alguien con un título de marketing podría tomarse muchos meses, proporcionaré información general breve sobre su funcionamiento y lo que puede representar para tu negocio.

Normalmente, cuando una app solicita cualquier tipo de anuncio de banner o de video, la red que proporciona este anuncio registra el ID del usuario para los anunciantes (en dispositivos iOS), también conocido como identificador de publicidad (IDFA), o de tu ID de publicidad (en dispositivos Android). Estos son ID de dispositivo únicos que funcionan como alternativa para que un anunciante en una app recuerde información sobre el usuario en particular y, al mismo tiempo, lo haga de una manera que contemple la privacidad del usuario. No están vinculados a información identificable y los usuarios tienen la capacidad de ocultarlos o restablecerlos si lo desean.

Si un usuario hace clic en el anuncio, la red que lo proporciona indica a sus servidores que el usuario (identificado por este IDFA o ID de publicidad) lo seleccionó.

Luego, esta dirige a tu usuario a la tienda de aplicaciones correspondiente para que pueda ver tu app. Suponiendo que todo salga bien a partir de este punto, el usuario podrá instalar tu app desde la tienda de aplicaciones o Play Store y abrirla. ¡Hurra!

Ahora, supongamos que deseas usar Firebase Analytics para realizar un seguimiento del éxito que esta campaña de anuncios en particular tiene en términos de captación de usuarios valiosos. Esto funcionaría de la siguiente manera: en el panel “Attribution” de Firebase Analytics, debes seleccionar las redes de anuncios con las que estés trabajando. Por el momento, estamos asociados a aproximadamente 50 redes y agregaremos más todos los meses.

Al completar algunos datos sobre tu campaña de anuncios, obtendrás una URL de campaña que luego podrás enviar al anunciante original.

La información compartida sobre la red de anuncios generalmente se divide en tres segmentos: fuente, medio y campaña. Las distintas redes tienden a registrar esta información de maneras ligeramente diferentes, pero puedes considerarlas como categorías generalmente jerárquicas.
  • La fuente, en general, es la propia red de anuncios (Vungle, AdWords, etc.).
  • El medio normalmente registra el tipo de anuncio mostrado (banner, video intersticial en pantalla completa, etc.).
  • La campaña generalmente identifica la campaña de anuncios específica aplicada (pelea en ascensor, modelo de traje de baño a caballo, etc.).
Con esta nueva URL, la red de publicidad puede comunicar a Firebase que el usuario hizo clic en uno de sus anuncios antes de redireccionarlo a la tienda de aplicaciones o Play Store.


A partir de este punto, cuando un usuario realice en la app eventos importantes que hayas designado como eventos de conversión (acciones como abrir la app por primera vez, realizar una compra o compartir la app con amigos), Firebase Analytics también registrará la campaña de anuncios que logró atraer hacia ti a este usuario.

Luego, podrás filtrar esos eventos dentro de Firebase Analytics aplicando cualquiera de estos parámetros de campaña de anuncios. Por ejemplo, podrás ver la red de anuncios que más usuarios te proporcione en general observando los informes de atribución de tu evento first_open.

También podrás ver la campaña de anuncios específica que más dinero genere para ti en un evento in_app_purchase, o bien la red de anuncios que atraiga hacia ti usuarios que hagan clic en el botón vinculado a la afirmación “Sí, miraré tu app”. Podrás designar como evento de conversión cualquier elemento que puedas someter a seguimiento en un evento de Firebase Analytics.

Postbacks

Además de recibir información sobre atribución de estas redes de anuncios, Firebase Analytics puede transmitir información hacia ellas. Este concepto es conocido entre la mayoría de los profesionales del marketing como “completar el ciclo de la vida”. De hecho, nadie lo llama de esta manera. Lo inventé (pero suena bien, ¿no es así?). Puedes solicitar que Firebase indique a estas redes de anuncios que un usuario completó un evento de conversión importante dentro de tu app. Esto se realiza con una llamada conocida como “postback”.

Por ejemplo, si tu app notifica a una red de anuncios que un usuario en particular (identificado por su IDFA o ID de publicidad) la abrió por primera vez, la red de anuncios en cuestión podría aprovechar esta información para mejorar sus ofertas de varias maneras. En primer lugar, registrará la instalación de tu app por parte del usuario, con lo cual podrá dejar de mostrarle anuncios de una app de la que ya dispone. También puede usar esta información para determinar las clases de apps de las que este usuario podría disfrutar en el futuro.

Configurar una postback en Firebase Analytics es bastante sencillo. Usarás Firebase console para determinar los eventos de conversión que desees enviar de regreso a la red de publicidad y generalmente agregarás una cantidad reducida de información específica para ella.

También tendrás la opción de enviar de regreso todos tus eventos de conversión a esta red, o solo aquellos que provinieron originalmente de ella. Al enviar de regreso todos los eventos de conversión, harás un mejor trabajo porque todas tus redes de anuncios estarán preparadas; Firebase se tomará un tiempo para anonimizar las demás redes de anuncios implicadas antes de realizar el envío. De esta manera, una red de anuncios podría determinar que un usuario en particular completó un evento de conversión en tu app, pero no registrará la red de anuncios de la competencia que lo proporcionó.

¿Qué sucede con Dynamic Links?

Probablemente ya hayas observado que al usar Firebase Dynamic Links también tienes la posibilidad de configurar parámetros de seguimiento con una fuente, un medio y un nombre de campaña. Esto suena muy familiar, ¿verdad?

Bueno, así como se puede medir la efectividad de las campañas de anuncios con Firebase Analytics, también es posible medir la efectividad de Firebase Dynamic Links. Al agregar estos parámetros de seguimiento a Dynamic Links, Firebase Analytics puede tratarlos como a cualquier otra campaña para la cual realiza mediciones de informes de atribución, y puedes ver eventos de conversión no solo por campañas de anuncios que atraigan los usuarios en cuestión, sino también por Dynamic Links que también puedan captarlos.

Cabe destacar, no obstante, que Firebase Dynamic Links ofrece el mejor rendimiento cuando se usa en contextos no vinculados al marketing; por ejemplo, en acciones como el uso compartido entre usuarios, el direccionamiento de usuarios hacia tu app desde tu sitio web o la vinculación con tu app en publicaciones en redes sociales. Si deseas medir la efectividad de una campaña publicitaria, debes aplicar los métodos tradicionales ya establecidos en estas redes de anuncios y usar las URL de campaña que Firebase te proporcione.

¡Pruébalo!

Con esto concluye la descripción general de la información sobre atribución en Firebase Analytics. Si aún no la has probado en tu te recomiendo que lo hagas. Podrías enterarte de algo sorprendente sobre las redes de anuncios en las que has estado invirtiendo tu dinero.







Todas las funciones de AMP deben probarse (por eso, realizamos compilaciones recurriendo a experimentos). Sin embargo, las funciones particularmente importantes, complejas y flexibles requieren un poco más de atención. En especial, deben implementarse de manera descentralizada en aplicaciones reales y para usuarios reales. De esta manera, es posible asegurarse de que estas funciones tengan un buen rendimiento al lanzarse.

Recientemente, anunciamos amp-bind, un sistema de vinculación de datos experimental que proporciona un método más flexible y expansivo para admitir la interactividad en AMP. Esta flexibilidad viene acompañada de enormes complejidades, factores desconocidos y la necesidad de realizar pruebas exhaustivas para garantizar que el funcionamiento sea correcto desde el comienzo. Por ello, amp-bind tiene un gran potencial de aprovechamiento por la capacidad de funcionar en entornos de producción, en sitios web en los cuales los desarrolladores puedan realizar implementaciones con propósitos reales. Por ello, configuraremos pruebas de origen para amp-bind.


¿Qué es amp-bind?


En pocas palabras, amp-bind en esencia cambia el modelo de interactividad de AMP y, al mismo tiempo, preserva sus garantías básicas de rendimiento y experiencia de usuario. El sistema amp-bind funciona más como una capa de codificación sobre AMP, al trascender el enfoque histórico del proyecto AMP que limita la interactividad a componentes con ámbito y basados en casos de uso, como amp-carousel y amp-accordion. De esta forma, amp-bind vincula acciones del usuario con desencadenadores para diferentes estados de documentos. Esto da a los desarrolladores mucha más libertad respecto de los tipos de interacciones que pueden definir.

product-detail-bind.gif

Para tener una idea de los aspectos que amp-bind puede admitir en tus páginas AMP, observa algunos de sus comportamientos básicos, como su capacidad de funcionar de forma combinada con un carretel de imágenes. También puedes ver la forma en que puede integrarse a una página de información de producto básica.


¿Qué son las pruebas de origen?


Las pruebas de origen (inspiradas por el equipo de Google Chrome) son útiles cuando sobra suficiente tiempo antes de la implementación de una función como para que pueda probarse con usuarios reales y, no obstante, se esperan algunos cambios según los comentarios de los desarrolladores.

Tradicionalmente, una función en esta etapa ingresaba en el modo experimental, en el cual los desarrolladores podían probarla para desarrollo, pero no funcionaba en producción. Esto puede resultar útil, pero no es probable que los desarrolladores prueben algo a menos que obtengan beneficios de inmediato. Por ello, les resulta difícil justificar el empeño en algo que no funcionará en producción.

Aquí es donde entran en acción las pruebas de origen. Los desarrolladores interesados pueden aceptar una prueba en la que puedan usar una nueva función en producción, con la expectativa de que a) la prueba sea por tiempo limitado y b) la función probablemente experimente algunos cambios después de las pruebas de origen. A diferencia de las pruebas de origen de Chrome, que restringen el experimento a un porcentaje pequeño de usuarios, las pruebas de origen de amp-bind habilitarán la función para cada visitante que ingrese en un dominio incluido en la lista blanca.

Las pruebas de origen ofrecen una excelente oportunidad para probar una nueva función antes de que esté totalmente disponible: puedes beneficiarte de inmediato por el trabajo que dediques a esta (ya que esta estará disponible en tu sitio en lugar de permanecer contenida dentro de un experimento) y tus comentarios pueden tener influencia directa en el destino de esta.


Cómo incluir tu sitio en una lista blanca para pruebas de origen con amp-bind


Regístrate aquí para comunicarnos si te interesan las pruebas de origen para amp-bind en tu sitio. Te enviaremos información sobre los pasos que deberás seguir. Ten en cuenta que, debido al ancho de banda limitado del que dispone el equipo de AMP para la asistencia a desarrollares, solo podemos incluir en la lista blanca un número limitado de dominios para la función.

Como siempre, nos interesan tus comentarios sobre amp-bind, independientemente de que tu sitio esté incluido en la lista blanca para pruebas de origen o de que ya hayas consultado la documentación y los ejemplos. Una vez que recibamos suficientes contribuciones de la comunidad de AMP y realicemos los cambios necesarios, lanzaremos la función para producción para todos los sitios, sin importar el estado de estos respecto de las pruebas de origen. Esperamos recibir tus comentarios y ver mucha más interactividad en AMP.

Publicado por Eric Lindley, administrador de producto, proyecto AMP

Prueba amp-bind en tu sitio con una prueba de origen


En las aplicaciones mejoradas, la configuración y el código van por separado. Esto permite pasar fácilmente del almacenamiento provisional a la producción, implementar un ejemplo de código fuente abierto o ejecutar un nuevo entorno de QA (consulta también ...

En las aplicaciones mejoradas, la configuración y el código van por separado. Esto permite pasar fácilmente del almacenamiento provisional a la producción, implementar un ejemplo de código fuente abierto o ejecutar un nuevo entorno de QA (consulta también “Almacenar config en el entorno” en el patrón de The Twelve-Factor App).

Tradicionalmente, esto ha resultado difícil para proyectos de Firebase en la Web, ya que ha sido necesario realizar un seguimiento de las opciones de configuración para firebase.initializeApp(). Existía la probabilidad de tener que escribir código como este:
// DON'T DO THIS ANYMORE!
switch (location.hostname) {
  case 'myapp.com': firebase.initializeApp(prodConfig); break;
  case 'myapp-staging.com': firebase.initializeApp(stagingConfig); break;
  default: firebase.initializeApp(devConfig); break;
}

Esto no es lo más recomendable y expone los entornos de almacenamiento provisional en código de acceso público. Hoy, nos entusiasma anunciar algunas de las nuevas funciones de Firebase Hosting y Firebase CLI que simplifican mucho más la configuración de Firebase en sus apps web y el trabajo con varios entornos.

Configuración automática a pedido del Firebase SDK

Presentamos algunas URL reservadas nuevas para Firebase Hosting, que les permitirán cargar el Firebase SDK y configurarlo de manera automática para el entorno actual sin necesidad de escribir código personalizado. Lo único que deben hacer es incluir las etiquetas script correctas:
  
<!doctype html>
<html>
  <body>

    ...

    <!-- Import and initialize the Firebase SDK -->
    <script src="/__/firebase/3.7.4/firebase-app.js"></script>
    <script src="/__/firebase/3.7.4/firebase-auth.js"></script>
    <script src="/__/firebase/init.js"></script>
    <script>
      // The Firebase SDK is ready to rock!
      firebase.auth().onAuthStateChange(function(user) { /* … */ });
    </script>
  </body>
</html>
 
Esto funciona en sitios implementados en Firebase Hosting y también a nivel local cuando se usa firebase serve. Nuevas URL disponibles:
  • /__/firebase/{VERSION}/firebase-{app,auth,database,messaging,storage}.js: archivos SDK modulares (recomendado)
  • /__/firebase/{VERSION}/firebase.js: Firebase JS SDK completo
  • /__/firebase/init.js: secuencia de comandos que inicializa automáticamente el SDK cuando se incluye. Debe cargarse después de cualquier Firebase SDK.
  • /__/firebase/init.json: representación de JSON de la configuración para firebase.initializeApp(). Pueden usar esto para obtener config e inicializar Firebase SDK de forma asíncrona.
Al proveer servicios a nivel local, init.js inicializa el proyecto actualmente seleccionado para sus directorios (si desean más información, consulten “Usa alias de proyectos”). Cuando se implementa, se inicializa para el proyecto implementado. A su vez, cuando se implementa, las secuencias de comandos se proveen mediante HTTP/2 y pueden disfrutar de los beneficios que tiene cargar el SDK desde el mismo origen sin necesidad de administrar sus propias dependencias.


Nota: Deberán tener al menos la versión 3.6.0 de Firebase CLI para usar estas funciones y es posible que se deba renovar la autenticación. Si ven un mensaje de advertencia al ejecutar firebase deploy, ejecuten firebase login --reauth para habilitar init.js.

Integración en conjuntos de herramientas existentes

¿Qué sucede si no usan Firebase Hosting, o si ya agrupan o compilan de otra forma su JavaScript? Probablemente les convenga disponer de otros métodos a fin de obtener la configuración para un proyecto determinado. Agregamos el nuevo comando firebase setup:web a la versión 3.6.0 de Firebase CLI. Este puede funcionar como referencia práctica para copia y pegado. El comando imprime información de config, pero también puede integrarse con sus procesos de compilación de Node.js existentes usando Firebase CLI como módulo.
Para hacerlo, primero instalen firebase-tools como dependencia:
$ npm install --save firebase-tools@^3.6
Luego solicítenlo y llamen al comando. Por ejemplo:
const fbcli = require('firebase-tools');
const fs = require('fs');

// by default, uses the current project and logged in user
fbcli.setup.web().then(config => {
  fs.writeFileSync(
    'build/initFirebase.js',
    `firebase.initializeApp(${JSON.stringify(config)});`
  );
});

// alternatively, you can pass project or token information
fbcli.setup.web({
  project: 'my-custom-project',
  token: process.env.FIREBASE_TOKEN
});
Creemos que estas actualizaciones simplificarán mucho más la compilación de aplicaciones web mejoradas aplicables a varios entornos en Firebase, y esperamos con entusiasmo ver los usos creativos que les darán. ¡Queremos conocer sus opiniones!



Una estrategia que contemple varias nubes puede ayudar a las organizaciones a aprovechar los puntos fuertes de diferentes proveedores de nube y distribuir cargas de trabajo críticas. Por ejemplo, puede suceder que tengas una aplicación en AWS y desees usar las poderosas API de Google para ...


Una estrategia que contemple varias nubes puede ayudar a las organizaciones a aprovechar los puntos fuertes de diferentes proveedores de nube y distribuir cargas de trabajo críticas. Por ejemplo, puede suceder que tengas una aplicación en AWS y desees usar las poderosas API de Google para Vision, Cloud Video Intelligence y Data Loss Prevention, o sus macrodatos y las capacidades de aprendizaje automático para analizar tus datos y obtener información de ellos.

Un patrón (entre muchos) que permite integrar cargas de trabajo en Google Cloud Platform (GCP) y Amazon Web Services (AWS) consiste en usar Google Cloud Endpoints y AWS Lambda. El patrón tiene la siguiente arquitectura:
Cloud Endpoints te permite desarrollar, implementar, proteger y controlar API basadas en la especificación OpenAPI. Más aun, la API para tu aplicación puede ejecutarse en back-ends como App Engine, Google Container Engine o Compute Engine.

AWS Lambda puede ejecutar código de manera automática en respuesta a eventos en otros servicios de AWS. Por ejemplo, puedes configurar una función de AWS Lambda para que se active cuando se agregue un objeto a un depósito de Amazon S3, se ingrese una notificación en un tema de Amazon SNS o se procesen registros en un flujo de DynamoDB.

Nota: Cuando se mueven datos de Amazon S3 a Google Cloud, se aplican solicitudes de Amazon S3 y cambios de transferencia de datos.

En este blog, crearemos una Cloud Endpoints API y la invocaremos desde una función de AWS Lambda. Puedes descargar el código fuente completo para este ejemplo de GitHub. Para obtener información acerca de cómo implementar esta solución, continúa leyendo el artículo.

Configuración de Cloud Endpoints

El primer paso para aplicar la solución es implementar Cloud Endpoints API en el entorno flexible de App Engine. La documentación de GCP contiene excelentes temas de inicio rápido con información para la implementación de API en el entorno flexible de App Engine y en Container Engine,  entre otros.

Crea un proyecto de GCP si no cuentas ya con uno.
  • Usa la consola de GCP para crear un nuevo proyecto y una aplicación de App Engine.
  • Cuando se solicite, selecciona la región en la que desees ejecutar tu aplicación de App Engine localizada y luego habilita la facturación.
  • Toma nota del ID de tu proyecto, lo necesitarás posteriormente.
  • Activa Google Cloud Shell

Obtener el código fuente

En Google Cloud Shell:
En este ejemplo, se usa Python para implementar el back-end de API.

Implementar el código de la aplicación

Luego, deberás implementar código para tu back-end de API. El ejemplo de aeflex-endpoints corresponde a una aplicación de Flask. El archivo main.py define el código de aplicación que debe ejecutarse cuando se invoca el terminal processmessage.

     @app.route('/processmessage', methods=['POST'])
     def process():
         """Process messages with information about S3 objects"""
         message = request.get_json().get('inputMessage', '')
         # add other processing as needed
         # for example, add event to PubSub or 
         # download object using presigned URL, save in Cloud Storage, invoke ML APIs
         return jsonify({'In app code for endpoint, received message': message})

Configurar e implementar la Cloud Endpoints API

Usa la especificación OpenAPI para definir tu API. En el ejemplo de aeflex-endpoints, el archivo openapi.yaml contiene la especificación OpenAPI para la API. Para obtener más información sobre cada campo, consulta la documentación acerca del objeto Swagger.

El archivo openapi.yaml declara el host de la API.
     host: "echo-api.endpoints.aeflex-endpoints.cloud.goog"

El terminal /processmessage se define en la sección de rutas de acceso. El parámetro inputMessage contiene la información sobre el objeto de Amazon S3 que se procesará.
Rutas de acceso:
      # This section configures the processmessage endpoint.
       "/processmessage":
         post:
           description: "Process the given message."
           operationId: "processmessage"
           produces:
           - "application/json"
           responses:
             200:
               description: "Return a success response"
               schema:
                 $ref: "#/definitions/successMessage"
           parameters:
           - description: "Message to process"
             in: body
             name: inputMessage
             required: true
             schema:
               $ref: "#/definitions/inputMessage"
           security:
           - api_key: []

     definitions:
       successMessage:
         properties:
           message:
             type: string
       inputMessage:
         # This section contains information about the S3 bucket and object to be processed.
         properties:
           Bucket: 
             type: string
           ObjectKey:
             type: string
           ContentType:
             type: string
           ContentLength:
             type: integer
           ETag:
             type: string
           PresignedUrl:
             type: string

Luego, implementa la especificación OpenAPI:
     gcloud service-management deploy openapi.yaml

Este comando muestra la siguiente información sobre la especificación OpenAPI implementada:
     Service Configuration [2017-03-05r2] uploaded for service
     "echo-api.endpoints.aeflex-endpoints.cloud.goog"

Actualiza la configuración del servicio en el archivo app.yaml:
     endpoints_api_service:
       # The following values are to be replaced by information from the output of
       # 'gcloud service-management deploy openapi.yaml' command.
       name: echo-api.endpoints.aeflex-endpoints.cloud.goog
       config_id: 2017-03-05r2

Implementa la API:
     gcloud app deploy

Crea una clave de API para autenticar clientes:

  • En la consola de GCP, dentro del menú Products & services, haz clic en API Manager > Credentials.
  • Haz en clic Create Credentials > API key. Observa la clave de API.


Configurar la función de AWS Lambda


En esta sección, se describe la manera de configurar un desencadenador y una función de Lambda cuando se carga un archivo a un depósito de Amazon S3. En este ejemplo, la función de Lambda está escrita en Python. El código fuente completo para esta función está disponible en
blogs/endpointslambda/lambdafunctioninline.py.

Crear el depósito de S3 para tus archivos

En la consola de administración de S3, en AWS, crea un depósito S3 llamado images-bucket-rawdata. Tu función de Lambda se activará cuando se agreguen archivos a este depósito.

Crear una función de IAM

En la consola de administración de identidad y acceso (IAM), crea una función IAM que tenga los permisos necesarios para que la función de Lambda acceda a los registros del depósito de S3, de la cola de servicio de cola simple (SQS) y de CloudWatch de la siguiente manera:
  • En la consola de administración IAM, haz clic en Roles dentro del subpanel de navegación.
  • Crea una nueva función llamada LambdaExecRole.
  • Selecciona AWS Lambda Role Type y luego las siguientes políticas:
    • AWSLambdaExecute: esta política proporciona a la función Lambda acceso “Put” y “Get” a S3, y acceso completo a registros de CloudWatch.
    • AmazonSQSFullAccess: esta política proporciona a la función Lambda permisos para enviar mensajes a la cola de mensajes fallidos (DLQ).
  • Revisa la configuración y crea la función.

Crear una cola de SQS

  • En la consola de SQS, crea una cola de SQS llamada IntegrationDLQ que funcionará como cola de mensajes fallidos para tu función de Lambda. AWS Lambda repite intentos de ejecución fallidos automáticamente para invocaciones asíncronas. A su vez, puedes configurar Lambda para que desvíe cargas no procesadas a una cola de mensajes fallidos.

Crear una función de Lambda en la consola de AWS

En la consola de administración de Lambda, crea una función de Lambda de la siguiente manera:
  • En la página Select blueprint, usa el plano técnico s3-get-object-python.
  • En la página Configure triggers, especifica lo siguiente:
    • Bucket: images-bucket-rawdata.
    • Event-type: Object-Created (All).
  • Habilita el desencadenador.
  • En la página Configure Function, especifica lo siguiente:
    • Name: CallEndpoint.
    • Runtime: Python 2.7.
    • Code entry type: Edit code inline.
    • Environment variable key: ENDPOINT_API_KEY.
    • Environment variable: . Nota: Para entornos de producción, considera proteger la clave de API usando asistentes de encriptación en AWS.
    • Handler: lambda_function.lambda_handler.
    • Role: selecciona un rol existente.
    • Existing role: LambdaExecRole (que creaste previamente).
    • En Advanced settings, DLQ resource: IntegrationDLQ.
  • En el editor de código integrado para la función de Lambda, reemplaza el código original por el que se muestra a continuación. La función de Lambda obtiene la información del depósito y el objeto del evento, y también metadatos del objeto, genera una URL firmada previamente para este y, por último, invoca la Cloud Endpoints API.

    from __future__ import print_function
    
    import boto3
    import json
    import os
    import urllib
    import urllib2
    
    
    print('Loading function')
    
    s3 = boto3.client('s3')
    endpoint_api_key = os.environ['ENDPOINT_API_KEY']
    endpoint_url = "https://aeflex-endpoints.appspot.com/processmessage"
    
    def lambda_handler(event, context):
    
        # Get the object information from the event
        bucket = event['Records'][0]['s3']['bucket']['name']
        object_key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key'].encode('utf8'))
        try:
            # Retrieve object metadata
            response = s3.head_object(Bucket=bucket, Key=object_key)
            # Generate pre-signed URL for object
            presigned_url = s3.generate_presigned_url('get_object', Params = {'Bucket': bucket, 'Key': object_key}, ExpiresIn = 3600)
            data = {"inputMessage": {
                        "Bucket": bucket,
                        "ObjectKey": object_key,
                        "ContentType": response['ContentType'],
                        "ContentLength": response['ContentLength'],
                        "ETag": response['ETag'],
                        "PresignedUrl": presigned_url
                }
            }
    
            headers = {"Content-Type": "application/json",
                        "x-api-key": endpoint_api_key
            }
            # Invoke Cloud Endpoints API
            request = urllib2.Request(endpoint_url, data = json.dumps(data), headers = headers)
            response = urllib2.urlopen(request)
            
            print('Response text: {} \nResponse status: {}'.format(response.read(), response.getcode()))
    
            return response.getcode()
        except Exception as e:
            print(e)
            print('Error integrating lambda function with endpoint for the object {} in bucket {}'.format(object_key, bucket))
            raise e
  • Revisa la configuración de la función de Lambda y crea la función.

Probar la integración

¡Ha llegado el momento de la verdad! Para probar la integración entre tu función de AWS Lambda y Cloud Endpoints API, sigue estos pasos:
  • En la consola de administración de AWS S3, carga un archivo en images-bucket-rawdata.
  • En la consola de administración de Lambda, dirígete hacia la función CallEndpoint y visualiza la pestaña Monitoring. En los gráficos de CloudWatch se indicará que la función se invocó.
  • Haz clic en View Logs en CloudWatch y observa la información del flujo de registro de la función. En este se indicará que la función de Lambda recibió un código de respuesta de éxito (200) de la API e información sobre el evento de S3 que la API recibió de la función de Lambda.
Con esto habrás integrado exitosamente AWS Lambda y Cloud Endpoints para realizar en tiempo real el procesamiento de archivos cargados a tu depósito de S3. Este es solo uno de los numerosos patrones que puedes usar a fin de crear un entorno para varias nubes con GCP. No te pierdas otros ejemplos que estarán disponibles más adelante.


El video con premio de Admob es una alternativa rápida y sencilla para crear y monetizar tu app de manera efectiva. Dos desarrolladores comparten lo aprendido y sus historias de éxito, en las que usaron anuncios de video con premio para aumentar sus ingresos y hacer crecer sus negocios.

El video con premio de Admob es una alternativa rápida y sencilla para crear y monetizar tu app de manera efectiva. Dos desarrolladores comparten lo aprendido y sus historias de éxito, en las que usaron anuncios de video con premio para aumentar sus ingresos y hacer crecer sus negocios.




1. JoyCity: Game of Dice

JoyCity, una empresa desarrolladora de juegos y plataformas de entretenimiento para iOS y Android que prioriza los dispositivos móviles, lanzó Game of Dice, un juego peculiar y de ritmo acelerado que ha atraído a una legión de fanáticos en todo el mundo.

De qué manera la empresa usa los anuncios con premio

El propósito de JoyCity fue implementar la monetización con usuarios que no gastan dinero dentro del juego con muchas compras directas desde la app (CDA) sin canibalizar los ingresos por CDA. JoyCity pudo incorporar anuncios de video con premio a su app de juego y aumentar sus ingresos al implementar la demanda de anuncios de video con premio de AdMob e incluir varias fuentes de demanda de terceros a través de la función de mediación de AdMob.

Resultados

JoyCity logró aumentos en los ingresos generales a través de Game of Dice; en particular, sus ingresos por CDA aumentaron un 10% y, al mismo tiempo, se mantuvieron las tasas de usuarios diarios activos.





Somin Oh, administrador de Monetización de Anuncios de JoyCity
“La implementación de los anuncios con premio de AdMob no solo nos ayudó a implementar la monetización con usuarios que no gastan dinero, sino también a aumentar los ingresos totales del juego, incluidos los que se generan por CDA. A su vez, la mediación de AdMob nos permitió comparar fácilmente el rendimiento de nuestros anuncios en redes de anuncios”.

2. Cheetah Mobile: BADLAND 2
BADLAND 2 fue ideado por Cheetah Mobile, una de las empresas desarrolladoras líderes en el mundo, y recibió la distinción “Most Beautiful” (la más bella) de la serie de premios “Best of 2016” de Google Play en Gran Bretaña, Australia y la India.


De qué manera la empresa usa los anuncios con premio

El propósito de Cheetah Mobile fue monetizar BADLAND 2 sin interrumpir la experiencia del usuario. La empresa pudo implementar los anuncios con premio de AdMob en puntos de detención naturales del juego y ofrecer al usuario un premio valioso a cambio de la visualización de un video. Esto permitió a Cheetah Mobile garantizar una experiencia de usuario excelente y, al mismo tiempo, monetizar la app de manera efectiva.

Resultados

Al usar anuncios de video con premio de AdMob y redes locales de anuncios con premio adicionales, Cheetah Mobile logró en una semana un aumento del 40% en eCPM y una velocidad de relleno en EE. UU. de más del 93%. El video con premio también tuvo un efecto positivo en las tasas de retención de usuarios mensuales.





Chen Yong, vicepresidente sénior de Cheetah Mobile, dijo:
“Los videos con premio de AdMob tuvieron un excelente rendimiento en todas las redes en términos de velocidad de relleno y eCPM, en nuestros mercados principales. Gracias a la implementación de anuncios de video con premio en espacios adecuados de nuestras apps de juegos, la captación de usuarios que observamos es aun mejor”.


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 

Ayer, en la conferencia de desarrolladores de juegos (GDC), anunciamos actualizaciones importantes para AdMob que podrían ayudarlos a generar nuevos negocios mediante formatos de video con premios e informes de análisis gratuitos, ilimitados y en tiempo real. Estas funciones los ayudarán a monetizar sus juegos de manera más eficaz al permitirles preservar el interés de sus usuarios a través de anuncios más inmersivos y comprender más rápido la manera en que interactúan con sus juegos.
 Ayer, en la conferencia de desarrolladores de juegos (GDC), anunciamos actualizaciones importantes para AdMob que podrían ayudarlos a generar nuevos negocios mediante formatos de video con premios e informes de análisis gratuitos, ilimitados y en tiempo real. Estas funciones los ayudarán a monetizar sus juegos de manera más eficaz al permitirles preservar el interés de sus usuarios a través de anuncios más inmersivos y comprender más rápido la manera en que interactúan con sus juegos.


Durante el año pasado, los desarrolladores adoptaron la plataforma de AdMob para la mediación de anuncios de video con premio en nueve redes líderes del formato con premio. Entre ellas se incluye TapJoy, que anunciamos ayer. Y no nos detendremos en eso. Los desarrolladores de AdMob de todo el mundo ahora tienen acceso a la propia demanda de publicidad de video de Google AdWords, lo que aumenta considerablemente la amplitud y escala de la demanda de formato con premio. Esto significa que AdMob ahora ofrece una única solución de plataforma, que incluye la mediación, la demanda y las reservas. Y para los anunciantes que actualmente usan IronSource o MoPub, ahora hay disponibles adaptadores para agregar demanda de Google.

Nuestros anuncios nativos también experimentaron, durante el último año, un enorme crecimiento como método que permite a los desarrolladores brindar experiencias completas e inmersivas. Para los desarrolladores que crean sus juegos en Unity, un popular motor de juegos, pronto lanzaremos un complemento compatible con los anuncios nativos y la mediación de estos en iOS y Android. Con esto se ampliará la compatibilidad de la plataforma y la red de AdMob para desarrolladores que usen Unity, expandiéndola así más a allá los anuncios de banners, intersticiales y con premio disponibles actualmente.

También invertiremos en mejores herramientas de medición para desarrolladores al acercar el poder de Firebase Analytics a más desarrolladores de juegos con un C++ SDK y un SDK para Unity.

Los desarrolladores que usan C++ y Unity pueden acceder a la vista de flujo de Firebase Analytics para ver estadísticas de los jugadores en tiempo real.
Esto opinan los desarrolladores sobre los anuncios con premio de AdMob:
“La implementación de los anuncios con premio de AdMob no solo nos ayudó a implementar la monetización con usuarios que no gastan dinero, sino también a aumentar los ingresos totales del juego, incluidos los que se generan por CDA. A su vez, la mediación de AdMob nos permitió comparar fácilmente el rendimiento de nuestros anuncios en redes de anuncios”. - Somin Oh, administrador de Monetización de Anuncios de JoyCity
Si aún no han probado los anuncios con premio de AdMob, aquí podrán ver la los primeros pasos que deben dar. Realizaremos una serie de reuniones “Hangout on Air” relacionada con la demanda y mediación de anuncios con premio. Durante estas sesiones, compartiremos prácticas recomendadas para implementar y optimizar el formato, y destacaremos áreas claves en las que pueden tener éxito a través de los anuncios con premio de AdMob. Por ejemplo:

  • Acceso a la demanda de video de Google: gracias a la presencia y la base de anunciantes mundiales de AdWords, los editores de AdMob se beneficiarán con una demanda geográfica diversa.
  • Demanda diversificada gracias a la mediación de anuncios con premio: asegúrense de que siempre haya un anuncio disponible para mostrar y de que sea el más valioso para ustedes.
  • Formatos de anuncios fáciles de usar: orientación clara para los usuarios en todos los puntos táctiles, incluida la opción de desactivación para el control total de la experiencia de anuncios por parte de los usuarios.
  • Experiencias de usuario excelentes: AdMob proporciona anuncios de alta captación, en formato de video horizontal y vertical, en anuncios con premio en los que no se impone la descarga. Esto proporciona un intercambio de valor claro para el usuario.
  • Compatibilidad con motores de juegos populares: las nuevas integraciones con los motores de juegos Cocos2d-x y Unity les permiten admitir, sin inconvenientes, anuncios con premio en sus juegos. 

Ha sido un privilegio conocer a tantos de ustedes en la GDC y enterarme de los fabulosos juegos que están desarrollando. Nos comprometemos a continuar recorriendo este camino junto a ustedes para crear una plataforma de monetización inteligente con la que puedan hacer crecer negocios de juegos a largo plazo.



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.


Todas las perspectivas de esta entrada de blog son exclusivas del autor y no representan la visión de Google. Esta entrada de desarrollador invitado es un aporte de Sreeraman Thiagarajan, experto de Google Developers en el ámbito del marketing y de la monetización de apps, y autor de artículos publicados en el Economic Times. Sreeraman se presenta como bloguero invitado para compartir información y consejos a partir de su experiencia, con el propósito de ayudar a los desarrolladores de AdMob a aumentar sus ingresos. Si no tienes experiencia con AdMob, regístrate aquí. ...

Todas las perspectivas de esta entrada de blog son exclusivas del autor y no representan la visión de Google. Esta entrada de desarrollador invitado es un aporte de Sreeraman Thiagarajan, experto de Google Developers en el ámbito del marketing y de la monetización de apps, y autor de artículos publicados en el Economic Times. Sreeraman se presenta como bloguero invitado para compartir información y consejos a partir de su experiencia, con el propósito de ayudar a los desarrolladores de AdMob a aumentar sus ingresos. Si no tienes experiencia con AdMob, regístrate aquí.

En la entrada introductoria, vimos la forma en que AdMob permite a los desarrolladores tomar el control de la monetización de sus apps. En esta segunda parte se abordarán la optimización y la medición.

Optimizar los ingresos y el volumen: a menudo, me comentan que “Otras redes ofrecen mejor eCPM (más ganancias cada mil impresiones)” y me preguntan “¿Por qué debo elegir AdMob?”. La respuesta a esto tiene que ver con la comprensión de dos métricas y de los dos aspectos básicos respectivos de cada una de ellas.

La primera métrica es la “velocidad de relleno”; esta expresa la cantidad de anuncios relevantes que la red de anuncios puede proveer según lo solicite tu app. El aspecto básico vinculado a esta métrica es una simple ecuación de demanda y oferta, ya que existen muchísimos anunciantes en Google, casi 1 millón de anunciantes más, que desean mostrar sus anuncios (demanda) a un público potencial que podría usar tu app (oferta). Esta ecuación genera una cifra muy alta de “solicitudes de anuncios”, que ascienden a 200 mil millones por mes en el mundo. Con AdMob en tu app, puedes unirte al bando de la oferta.

La segunda métrica de eCPM tiene que ver con la cantidad de dinero que se puede ganar por cada mil impresiones. El eCPM difiere de una red a otra; sin embargo, una simple multiplicación de este y la velocidad de relleno despeja esta duda. Si en la red A se ofrece USD 1 a una velocidad de relleno del 85 %, se obtiene un ingreso de 85 centavos por cada solicitud de mil anuncios (valor también denominado “RPM”). Si en la red B se ofrece el doble (USD 2), pero la velocidad de relleno es del 30 %, solo se perciben 60 centavos en concepto de RPM. Esto equivale a una pérdida del 25 % en términos de ganancias potenciales.





Seleccionar el tipo de anuncios que se mostrarán: existen algunos tipos de anuncios. Entre los principales se encuentran los de banners, los intersticiales, los que incluyen premios y los nativos. No hay fórmulas fijas para determinar el tipo de banner que se usará, pero un principio que los desarrolladores deben aplicar estrictamente es el de “preservar la experiencia del usuario” integrando anuncios de la manera más discreta y nativa posible.

Los desarrolladores de juegos aventajan a los demás al usar anuncios con premio. Son unidades de anuncios intersticiales que te permiten premiar a los usuarios con elementos dentro de las apps tales como vidas adicionales, saltos de niveles y desbloqueos de funciones, entre otros, a cambio de mirar anuncios de video.

Los anuncios nativos son beneficiosos para los anunciantes y las apps basadas en contenido. Representan un formato de anuncios basado en componentes que se adecua al aspecto de la app en la cual aparecen. Esto hace que los anuncios parezcan  integrados  a la app y proporciona una mayor discreción. Un ejemplo simple de esto es un tuit promocionado en Twitter o una publicación promocionada en Facebook. En esencia, se trata de una publicación o un tuit como otros. Se diferencian en que un patrocinador identificado paga para promoverlos.

Los anuncios intersticiales y de banners tienen formatos bastante estándares. Las apps pueden optar por mostrar anuncios de banners en posiciones fijas de la pantalla, como la parte inferior o superior. Los anuncios en pantalla completa se conocen como “anuncios intersticiales”. Se muestran en puntos de transición naturales de la experiencia del usuario; por ejemplo, entre dos niveles de juego o dos artículos periodísticos.

Abandonar las conjeturas y comenzar a realizar pruebas: a menudo, los desarrolladores son víctimas de la maldición del conocimiento; suponen que sus usuarios conocen una app y la usan de la manera prevista. Sin embargo, en la mayoría de los casos esto no sucede, y crear la estrategia publicitaria de la app sobre la base de la intuición no es bueno para los negocios. Una monetización óptima tiene lugar cuando se comprende en profundidad la transición de los usuarios de la adquisición a la retención. Gracias a la integración de Firebase de Google y AdMob, los desarrolladores de apps pueden usar la solución de análisis gratuita e ilimitada de Firebase para implementar estrategias de monetización de anuncios inteligentes.

Para importar el Firebase SDK a apps se necesita codificación que no sea complicada. Una vez realizada la integración, los desarrolladores pueden obtener datos como las sesiones, la información demográfica y los ingresos por compras directas desde la aplicación, entre otros, a través de Firebase Analytics. Además de esto, los informes propios de AdMob te proporcionarán un buen panorama de la forma en que se generan ingresos.

Para optimizar la monetización, es imperioso que los desarrolladores adquieran el hábito de realizar pruebas y ajustes continuos en sus estrategias de productos a partir de datos e información dura.

Para concluir, los anuncios representan más del cincuenta por ciento de los ingresos totales que generan las apps. Según datos de App Annie e IDC, se espera que los anuncios en las apps aumenten a un ritmo de 3,2 veces en los próximos dos años.1. Según Gartner, las proyecciones indican que este año se descargarán más de 268 mil millones de apps en el mundo2; no existen límites para las apps, y nunca se sabe el país del que pueden surgir los seguidores más efusivos.

La monetización tiene éxito cuando existe una mentalidad centrada en el crecimiento. Si aumentas tu base de usuarios, preservas la experiencia del usuario e integras AdMob, los ingresos por anuncios comenzarán a fluir automáticamente. Esto proporcionará más ancho de banda a los desarrolladores para crear más productos o mejorar las funciones existentes.

Google ofrece muchísimos recursos de AdMob aquí; si eres desarrollador y tienes apps descargadas más de 100.000 veces, puedes solicitar una consulta gratuita. Ambos recursos son gratuitos. Buena suerte y mis mejores deseos para que la India conquiste posiciones más altas por la generación de ingresos con apps.
1 - https://s3.amazonaws.com/files.appannie.com/reports/App-Annie-IDC-Mobile-App-Advertising-Monetization-Trends-2013-2018-EN.pdf 
2 - http://www.gartner.com/newsroom/id/2654115 


Todas las perspectivas de esta entrada de blog son exclusivas del autor y no representan la visión de Google. Esta entrada de desarrollador invitado es un aporte de Sreeraman Thiagarajan, experto de Google Developers en el ámbito del marketing y de la monetización de apps, y autor de artículos publicados en el Economic Times. Sreeraman se presenta como bloguero invitado para compartir información y consejos a partir de su experiencia, con el propósito de ayudar a los desarrolladores de AdMob a aumentar sus ingresos. Si no tienes experiencia con AdMob, regístrate aquí. ...

Todas las perspectivas de esta entrada de blog son exclusivas del autor y no representan la visión de Google. Esta entrada de desarrollador invitado es un aporte de Sreeraman Thiagarajan, experto de Google Developers en el ámbito del marketing y de la monetización de apps, y autor de artículos publicados en el Economic Times. Sreeraman se presenta como bloguero invitado para compartir información y consejos a partir de su experiencia, con el propósito de ayudar a los desarrolladores de AdMob a aumentar sus ingresos. Si no tienes experiencia con AdMob, regístrate aquí.

Nunca antes hubo un momento tan propicio para ser desarrollador en la India. Según informes citados en Economic Times, las descargas de apps realizadas en Google Play desde la India aumentaron de 3,5 mil millones en 2015 a 6,2 mil millones en 2016.1. Según este informe, la India ahora ocupa en el mundo el puesto más alto en materia de descargas de apps a través de Google Play, con lo cual desplazó incluso a EE. UU. y Brasil.

Como se observó en un artículo reciente de Quartz India, casi el 90% de los más de 220 millones de usuarios de smartphones de la India usan Android. Por ello, no genera sorpresa el dato referente a las más de 6 mil millones de descargas.2. Sin embargo, desde el punto de vista de los ingresos, Times of India informó que la India se encuentra  muy rezagada y que no se presenta como uno de los diez mercados principales.3. (Según Android Authority Japan, EE. UU. y Corea del Sur tienen el mejor posicionamiento4).

En “World over”, un artículo de MarketWire, se observa que los editores de apps de iOS y Android percibieron ganancias por más de 89 mil millones de dólares a través de ellas en 2016. Esto incluye aplicaciones pagadas, compras directas desde la aplicación (CDA) y, por supuesto, ingresos por anuncios.5.
Los desarrolladores de apps de la India necesitan técnicas comprobadas de monetización de apps. Cuando se exploran oportunidades de generación de ingresos mediante la implementación del conjunto de publicidad en la app de Google, AdMob se convierte en un excelente punto de partida.





A continuación, se describen las razones:

No dudes en usar anuncios en las apps.  Al interactuar con gran cantidad de startups y desarrolladores, descubrí un dato inquietante. Muchos desarrolladores piensan que usar anuncios en las apps es un método trillado para generar dinero y que deben encontrar una alternativa única y novedosa. No es así; no es necesario reinventar la rueda. Los negocios sustentados por anuncios han prosperado durante décadas. Además de funcionar como una fuente de ingresos para los editores, la publicidad aplica un subsidio al precio de un producto para los consumidores. Si no fuera por los anuncios de los periódicos locales, por ejemplo, probablemente tendríamos que pagar por ellos un precio de venta 10 o más veces superior al actual. También sería posible que el concepto “app freemium” jamás se hubiera acuñado.

En muchas de las apps más importantes y reconocibles, la publicidad se usa como medio de sustento para el modelo de negocios. En lugar de reinventar sus modelos de ingresos, sus creadores aplican innovaciones constantes para maximizar los ingresos por anuncios. Todos, desde los organizadores de eventos deportivos de gran importancia hasta las editoriales de larga trayectoria y los proveedores de contenidos basados en tecnología, aprovechan de manera inteligente el poder de convertir en dinero el enorme número de espectadores que captan al mostrar anuncios, sin interrumpir la experiencia del usuario.

En el caso de una app o un juego, no existen diferencias respecto de los ejemplos mencionados. Estas apps y estos juegos pueden generar dinero a través de anuncios si logran atraer usuarios a escala y captar su atención con frecuencia (esto los convierte en usuarios activos a diario, o DAU). Google AdMob puede ayudar enormemente a los desarrolladores en la compilación de una app sustentada mediante anuncios y la diversificación de los flujos de ingresos, para que trasciendan las suscripciones pagas o las actualizaciones y compras.

Cómo elegir la plataforma de anuncios en la app adecuada: Existen muchas opciones para elegir una plataforma de monetización de anuncios. De hecho, los desarrolladores pueden optar por más de 50 redes de anuncios o incluso incorporar sus propios mecanismos de provisión de anuncios dentro de las apps para mostrar “anuncios propios”, la capacidad de promover otras apps u otros servicios de manera cruzada. También se pueden vender elementos de inventarios de anuncios (por ejemplo, un membrete, un producto con marca dentro de una app o recargas de poder con promociones de productos en juegos, entre otros aspectos) a través de equipos de venta directa. Sin embargo, crear un conjunto de anuncios propio o depender mayormente de anuncios directos no es una práctica escalable, y para que esto sea rentable se necesita demasiado tiempo y esfuerzo en igual medida por parte de los desarrolladores y del equipo de ventas de anuncios. En este punto, AdMob realiza su mayor aporte para facilitar la tarea de los desarrolladores de iOS y Android.

AdMob cuenta con un mecanismo integrado que permite a los desarrolladores mostrar “anuncios propios” para promocionar de manera cruzada sus carteras de otras apps sin costo. AdMob también puede potenciar tus negocios directos, lo que te permite manejar tus propios negocios de anuncios directamente pactados con los anunciantes.

Otra función atractiva de AdMob es la “mediación”. La mediación es una tecnología que permite maximizar la cantidad de anuncios que se muestran en una app y, con ello, aumentar los ingresos. A través de la mediación AdMob, es posible integrar casi 40 redes de anuncios móviles diferentes e incluso participar en la mediación sin SDK en el caso de un conjunto selecto de redes. Gracias a la mediación, se accede a través de las apps al beneficio de las ofertas dinámicas y la integración directa con otras redes de anuncios, lo cual permite actualizaciones automáticas de CPM. Esto elimina el tiempo y esfuerzo de ajustar manualmente los pisos de oferta. En términos de monetización en las apps, AdMob es una herramienta práctica que tiene todo lo que necesitas para sobrevivir... y prosperar.

Permanece atento a la segunda parte de esta serie, en la que trataremos la optimización y medición de la monetización de apps. Google ofrece muchísimos recursos de AdMob aquí; si eres desarrollador y tienes apps descargadas más de 100 000 veces, puedes solicitar una consulta gratuita aquí.
1 - http://tech.economictimes.indiatimes.com/news/internet/india-is-top-market-for-google-play-store/56638573
2 - https://qz.com/886985/india-logged-the-most-android-app-downloads-and-usage-in-2016/
3 - http://timesofindia.indiatimes.com/companies/india-number-one-in-google-play-app-downloads-usage/articleshow/56680067.cms
4 - http://www.androidauthority.com/google-play-performance-q2-2015-google-and-apple-gain-big-from-new-emerging-markets-626622/
5 - http://www.marketwired.com/press-release/app-annie-reports-publishers-made-over-89-billion-as-downloads-reached-90-billion-2016-2188696.htm

A la llegada de dispositivos más rápidos y mayores anchos de banda se suman apps con anuncios más inmersivos. AdMob ofrece formatos de vanguardia para ayudarte a proporcionar anuncios de alta calidad que se carguen rápido. AdMob puede ayudarte a crear públicos integrando formatos de anuncios con premio a la mecánica de tu app. Con la tecnología adecuada, puedes ganar dinero y mejorar la experiencia del usuario. A continuación, se ofrece una guía rápida para ayudarte a dar los primeros pasos. Prometemos que será sencillo.
 A la llegada de dispositivos más rápidos y mayores anchos de banda se suman apps con anuncios más inmersivos. AdMob ofrece formatos de vanguardia para ayudarte a proporcionar anuncios de alta calidad que se carguen rápido. AdMob puede ayudarte a crear públicos integrando formatos de anuncios con premio a la mecánica de tu app. Con la tecnología adecuada, puedes ganar dinero y mejorar la experiencia del usuario. A continuación, se ofrece una guía rápida para ayudarte a dar los primeros pasos. Prometemos que será sencillo.

Antes de comenzar, asegúrate de que tus SDK estén actualizados (Android v9.0 e iOS v7.9.1 o versiones posteriores). Luego...

  1. Accede a tu cuenta de AdMob.
  2. Crea una unidad nueva de anuncios intersticiales con premio de AdMob.
  3. Configura tu unidad de anuncios (aquí podrás modificar la cantidad de premios y los premios en sí mismos, además de fijar y agregar un límite de frecuencia para garantizar que tus usuarios no vean el mismo anuncio demasiadas veces).
  4. Implementa la unidad de anuncios intersticiales con premio y el ID de unidad de anuncios en el punto de la app en el que se mostrará el anuncio. Para obtener ayuda, consulta nuestra guía de implementación para Android y nuestra guía de implementación para iOS.
  5. Como opción integra los SDK de fuentes de demanda de terceros.


¡Eso es todo! Una vez que tus anuncios estén totalmente integrados, te recomendamos experimentar con Firebase Analytics para analizar la eficacia y el impacto de tus anuncios con premio. Para que los anuncios con premio tengan éxito, es fundamental poner a prueba y comprender las opciones que mejor llegada tengan a tus usuarios más valiosos. Con Firebase, realizar pruebas A/B es simple y puede garantizar que aproveches al máximo tu intercambio con el usuario. Optimizar el valor de los premios, la frecuencia de los anuncios y la disposición de anuncios en la app contribuye al éxito de una estrategia de premios.





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.


La implementación de anuncios en apps puede ser complicada y requerir tiempo, pero con AdMob puedes comenzar a integrar anuncios con premio de manera rápida y simple. Además de facilitar la configuración de anuncios con premio y garantizar su disponibilidad para todos, también incorporamos otras funciones exclusivas de AdMob. A continuación, se muestran 3 razones por las cuales deberías usar la demanda y mediación de anuncios de video con premio de AdMob.
 La implementación de anuncios en apps puede ser complicada y requerir tiempo, pero con AdMob puedes comenzar a integrar anuncios con premio de manera rápida y simple. Además de facilitar la configuración de anuncios con premio y garantizar su disponibilidad para todos, también incorporamos otras funciones exclusivas de AdMob. A continuación, se muestran 3 razones por las cuales deberías usar la demanda y mediación de anuncios de video con premio de AdMob.

Experiencia del usuario
El formato de anuncios con premio de Google se centra en brindar una experiencia de usuario excelente. Los anuncios con premio brindan a los usuarios la opción de mirar un video a cambio de un premio en la app; por ejemplo, una vida adicional en un juego. Para que esto se concrete con éxito, la experiencia debe complementar el flujo de juego del usuario, no interrumpirlo. Gracias a indicaciones intuitivas y a opciones de desactivación claras para los usuarios, nuestro formato de anuncios con premio permite que estos controlen su experiencia en la app.

Optimización del rendimiento
A fin de garantizar una experiencia de usuario óptima y evitar la indiferencia ante los anuncios debido a la reiteración, debes asegurarte de contar con un conjunto de anuncios variado para los usuarios. La mediación de anuncios con premio te permite administrar varias fuentes de demanda de terceros a través de una plataforma, además de la demanda de Google. Esto garantiza que siempre haya un anuncio disponible para mostrar y que, a su vez, se presente el más valioso. Al optar por trabajar con varias fuentes de demanda y administrarlas de manera óptima, los editores pueden aumentar los ingresos a través de la competencia entre fuentes.

Aparte de ello, nuestra solución de mediación de anuncios con permite que los editores tengan el máximo nivel de control sobre las experiencias de anuncios con premio de sus usuarios. Experimentar con la configuración de anuncios con premio y optimizarla es sencillo gracias a la configuración de nivel de unidades de anuncios, que permite a los editores probar ajustes diferentes y personalizados para los anuncios con premio en distintos puntos de sus apps. La configuración en el servidor elimina la necesidad de volver a publicar la app después de implementar cambios, lo que facilita la experimentación.

Firebase Analytics
La posibilidad de usar Firebase Analytics para analizar la eficacia y el impacto de tus anuncios con premio es una prestación exclusiva de AdMob. El primer paso es recurrir a la pestaña Audiences de Firebase a fin de segmentar tus usuarios de maneras relevantes para tu negocio. De este modo, es posible analizar el impacto en las experiencias de estos diferentes segmentos de usuarios.  Para que los anuncios con premio tengan éxito, es fundamental poner a prueba y comprender las opciones que mejor llegada tengan a tus usuarios más valiosos.




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.



Cloud Functions es una excelente solución para ejecutar código de back-end para tu app de Firebase. Puedes escribir una función que se active a través de muchas acciones diferentes, como registros de usuarios, operaciones de escritura en la base de datos en tiempo real, cambios en un depósito de Cloud Storage o eventos de conversión en Firebase Analytics. Cloud Functions también puede activarse a través de fuentes externas; por ejemplo, puedes vincular una Cloud Function a un extremo HTTPS o un tema de ...


Cloud Functions es una excelente solución para ejecutar código de back-end para tu app de Firebase. Puedes escribir una función que se active a través de muchas acciones diferentes, como registros de usuarios, operaciones de escritura en la base de datos en tiempo real, cambios en un depósito de Cloud Storage o eventos de conversión en Firebase Analytics. Cloud Functions también puede activarse a través de fuentes externas; por ejemplo, puedes vincular una Cloud Function a un extremo HTTPS o un tema de Cloud Pub/Sub.

El efecto de la respuesta a estos eventos es muy profundo, pero es posible que no siempre exista el deseo de responder a un evento. En algunos casos, probablemente prefieras ejecutar una función basada en un intervalo de tiempo. Por ejemplo, podrías borrar datos adicionales de tu base de datos en tiempo real cada noche o ejecutar un análisis en tus datos de Analytics. Si tienes una tarea como esta, probablemente te convenga usar App Engine Cron con Cloud Functions for Firebase para activar una función de manera confiable a un intervalo regular.

Cómo programar Cloud Functions



Cloud Functions for Firebase no tiene requisitos de compatibilidad especiales, lo que nos permite utilizar App Engine Cron para programar eventos. De hecho, la solución que implementaremos es casi idéntica a la que recomendamos para programar tareas de manera confiable en Google Compute Engine.

La clave es crear una pequeña corrección de compatibilidad de App Engine que proporcione enlaces para App Engine Cron. Estos enlaces luego se incorporarán a temas de Cloud Pub/Sub por cada trabajo programado.

Posteriormente, configuraremos nuestra Cloud Function para controlar mensajes entrantes en los temas de Pub/Sub.
Aunque esta solución es la opción preferida para programar funciones, no es la única manera de obtener este resultado. Si te interesa ver un método alternativo, debes consultar el repositorio de funciones y ejemplos; en él se explica la forma de lograr un resultado similar usando un servicio de programación externo.

Implementar la app de App Engine

Casualmente, ya escribimos la app de App Engine que necesitarás para configurar funciones programadas. Se encuentra disponible en el repositorio firebase/functions-cron de Github.

De forma predeterminada, este ejemplo activa marcas de Cloud Pub/Sub por hora, día y semana. Si deseas personalizar este programa para tu app, puedes modificar cron.yaml.

Para obtener información detallada sobre la configuración de esto, consulta la referencia de cron.yaml en la documentación de App Engine.

Comencemos

1. Cumple con los requisitos previos

Instala las siguientes herramientas (o verifica que lo hayas hecho):

2. Clona este repositorio

Para clonar el repositorio de GitHub y guardar el duplicado en tu computadora, ejecuta el siguiente comando:

git clone https://github.com/firebase/functions-cron
Cambia los directorios al directorio functions-cron. La ruta exacta depende de la ubicación que hayas asignado al directorio al clonar los archivos de ejemplo de GitHub.

cd functions-cron

3. Realiza la implementación en App Engine

Configura la herramienta de línea de comandos de gcloud para usar tu proyecto de Firebase.

gcloud config set project 
Cambia el directorio a appengine/.
cd appengine/

Instala las dependencias de Python.
$ pip install -t lib -r requirements.txt
Crea una app de App Engine.

gcloud app create
Implementa la aplicación en App Engine.
gcloud app deploy app.yaml \ cron.yaml
Abre los registros de Google Cloud y selecciona “GAE Application” en el menú desplegable de la derecha. Si no ves esta opción, es posible que la implementación de App Engine aún se encuentre en curso.

Busca una entrada de registro llamando a /_ah/start. Si esta entrada no es un error, significa que finalizó la implementación de la app de App Engine.

4. Realiza la implementación en Google Cloud Functions for Firebase

Asegúrate de regresar a la raíz del repositorio (cd .. si acabas de realizar el paso 2).
Implementa la función de ejemplo hourly_job en Google Cloud Functions.

firebase deploy --only functions --project 
Advertencia: Con esto, se eliminarán las funciones existentes que hayas implementado. Si en tu caso existen funciones, copia el ejemplo de functions/index.js al index.js de tu proyecto.

5. Verifica tu trabajo cron

Podemos verificar que nuestra función esté correctamente conectada abriendo la pestaña Task Queue en App Engine y haciendo clic en Cron Jobs. Junto a cada uno de estos trabajos hay un botón Run Now.

Las funciones de ejemplo que implementamos solo tienen una función: hourly_job. Para activar este trabajo, toca el botón Run Now del trabajo /publish/hourly-tick.

Luego, dirígete a tu terminal y ejecuta lo siguiente...

firebase functions:log --project 
Verás un console.log generado con éxito en tu hourly_job.

¡Eso es todo!

Tus trabajos cron ahora “producirán marcas” indefinidamente. Como se mencionó antes, las funciones hourly-tick, daily-tick y weekly-tick incluidas en la app de App Engine no son tus únicas alternativas.

Puedes agregar más funciones programadas modificando el archivo cron.yaml y volviendo a implementar la app.

Los videos con premio están cambiando la forma en que los editores monetizan su contenido. Hemos sido testigos de cómo la publicidad evolucionó y pasó a ser beneficiosa para el usuario y el editor, además de brindar una experiencia mejor y más completa. Esto supone una enorme oportunidad para los desarrolladores de apps, pero ¿de qué manera puedes usar el video con premio para ampliar la experiencia del usuario y monetizar tu app?  A continuación, se ofrece un panorama rápido de lo que representa la publicidad con premio y de algunas funciones importantes que ofrece.
 Los videos con premio están cambiando la forma en que los editores monetizan su contenido. Hemos sido testigos de cómo la publicidad evolucionó y pasó a ser beneficiosa para el usuario y el editor, además de brindar una experiencia mejor y más completa. Esto supone una enorme oportunidad para los desarrolladores de apps, pero ¿de qué manera puedes usar el video con premio para ampliar la experiencia del usuario y monetizar tu app?  A continuación, se ofrece un panorama rápido de lo que representa la publicidad con premio y de algunas funciones importantes que ofrece.

¿Qué significa “con premio”? El video con premio es un formato de video no invasivo y de poca duración que genera un intercambio de valor entre un editor y un usuario: este último cede parte de su tiempo voluntariamente para ver un anuncio a cambio de un premio o dinero utilizable en apps.

El video con premio no es algo nuevo. Los editores de juegos han aprovechado los videos de tipo participativo para los usuarios durante varios años, pero recientemente observamos que el video con premio cobró impulso en varios sectores diferentes. Los editores exploran el potencial del aprovechamiento de funciones premium, contenido exclusivo o servicios actualizados para incorporar anuncios de video con premio a la perfección en sus apps.

Concéntrate en el usuario, todo lo demás llegará naturalmente. Para que los anuncios de video con premio tengan éxito, es fundamental que la experiencia del usuario sea positiva. Cada anuncio debe complementar la experiencia del usuario con apariciones en los momentos indicados y ofertas de premios valiosos (como una vida adicional en un juego favorito en lugar de la culminación de un nivel, o una hora de transmisión de música gratuita) a cambio de la visualización de un video. Con AdMob, el usuario controla su experiencia al optar por mirar un video y recibir el premio o no hacerlo y perderlo. También resulta sencillo fijar un límite de frecuencia para garantizar que un usuario no vea el mismo anuncio demasiadas veces.

Gracias a la mediación de AdMob, puedes obtener más resultados con menos intervención. Nuestra configuración de nivel de unidades de anuncios te permite probar diferentes configuraciones de redes de publicidad, órdenes de redes y premios en diferentes puntos de tu app. Nuestra red de anuncios capta automáticamente valores de CPM de estas redes y realiza las optimizaciones correspondientes. Con esto, podrás obtener altas velocidades de relleno y los máximos niveles de ingresos. ¿Cuál es el mayor beneficio? Gracias a nuestra configuración en el servidor, puedes realizar cambios en segundo plano hasta perfeccionar los ajustes de anuncios con premio y evitar la molestia de modificar tu código o volver a lanzar tu app.

¿Cuál es el aspecto más importante que se debe recordar acerca del video con premio? Cuando se concreta bien, ofrece valor a todas las partes. Los usuarios, de manera explícita, aceptan interactuar con anuncios que complementen sus juegos o apps a cambio de un premio. Los editores se benefician con un formato de monetización de alto CPM que no genera interrupciones, una mayor retención y posiblemente más ARPU (los usuarios que reciben premios usan más los juegos y gastan más dinero). A su vez, los anunciantes llegan a usuarios valiosos e interesados, en cuyo caso las probabilidades de ver por completo un anuncio son mayores. ¡Todos ganan!

Integrar anuncios con premio a tus apps es sencillo. Para comenzar, sigue estos pasos simples...
  1. Crea una unidad nueva de anuncios intersticiales con premio de AdMob.
    1. Asegúrate de que tus SDK estén actualizados (Android 9.0 e iOS 7.9.1 o versiones posteriores).
    2. Implementa la unidad de anuncios intersticiales con premio y el ID de unidad de anuncios en el punto de la app en el que se mostrará el anuncio. Para obtener ayuda, consulta nuestra guía de implementación para Android y nuestra guía de implementación para iOS.
    3. Como opción integra los SDK de fuentes de demanda de terceros.



    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.