O uso de notificações é uma das maneiras mais eficientes de trazer usuários não ativos de volta ao seu aplicativo. Notificações bem direcionadas e oportunas podem ser cruciais para aumentar o engajamento. Por isso, reformulamos o painel de notificações do Firebase para dar suporte a campanhas muito mais sofisticadas e eficientes.
O antigo painel permitia que você configurasse campanhas de notificação como alertas únicos que podiam ser acionados imediatamente ou agendados para uma data posterior. Por exemplo, com poucos cliques, você poderia configurar uma campanha de notificação que servisse de lembrete para novos usuários que ainda não concluíram a integração a fazer isso na segunda-feira. No entanto, não era possível automatizar esse lembrete para que ele fosse acionado todas as segundas-feiras, ao menos que você fizesse isso manualmente.
No novo painel de notificações do Firebase, adicionamos a função de criar campanhas recorrentes. As campanhas recorrentes são campanhas de notificação que são acionadas automaticamente sempre que um usuário atende às condições estabelecidas. Agora é fácil configurar um lembrete semanal que incentive novos usuários a concluir a integração, por exemplo. Ou talvez você queira oferecer descontos para compras no aplicativo a cada duas semanas de modo a estimular os usuários a comprar. Também é possível fazer isso!
O novo painel de notificações permite que você defina limites de frequência para as mensagens enviadas ao usuário. Ao fazer isso, você pode controlar o número de vezes que o usuário recebe mensagens e, assim, evitar o envio de spam. É possível definir que as mensagens sejam enviadas apenas uma vez para cada usuário ou permitir uma mensagem em um número específico de dias.
Talvez você queira enviar uma mensagem de boas-vindas para cada novo usuário. Use uma única mensagem direcionada a cada um deles apenas uma vez. Incentive os usuários a conferir o tutorial sobre como usar o aplicativo. Você pode enviar uma notificação a cada período determinado de dias para guiá-los até que o tutorial seja concluído. Como os segmentos direcionados são dinâmicos, os usuários que atenderem às condições definidas começarão a receber notificações automaticamente. Da mesma forma, aqueles que não atenderem mais a essas condições deixarão de recebê-las. Isso significa que sua notificação só será entregue a usuários para os quais a mensagem seja relevante.
Os usuários podem receber uma notificação apenas uma vez
Os usuários podem receber notificações em um intervalo personalizado
As mensagens não direcionadas e uma enxurrada de notificações são inconvenientes e podem fazer com que os usuários abandonem o aplicativo. É de extrema importância segmentar sua notificação aos usuários corretos para que ela seja bem recebida e relevante à interação recente do usuário com seu aplicativo, e não inapropriada e aleatória. O novo painel de notificações inclui um criador de segmentos mais sofisticado que possibilita direcionar as mensagens de acordo com características predominantes do usuário, como a última interação e o número de dias desde a primeira vez que ele abriu o aplicativo. Essa segmentação é construída dentro do painel para que você não precise adicionar código para ter esses novos parâmetros.
Por fim, também melhoramos a seção de resultados do painel de notificações para que você possa monitorar melhor o desempenho das suas campanhas e fazer ajustes conforme necessário. No novo painel de notificações, agora é possível acompanhar a eficiência das campanhas recorrentes dia a dia. Aqui você pode ver dados diários relacionados a conversões, bem como a notificações enviadas e abertas. Você também verá que os gráficos foram atualizados. Os gráficos de barra foram alterados para gráficos de série temporal, que são mais intuitivos e fáceis de interpretar.
O painel de notificações reformulado do Firebase agora oferece opções de campanha eficientes, direcionamento sofisticado e análise detalhada para acompanhar suas campanhas de notificação. Se você ainda não estiver familiarizado com as notificações do Firebase, comece com os guias do Firebase Cloud Messaging.
Confira o Console do Firebase e comece suas campanhas de notificação hoje mesmo!
using FirebaseAdmin; using Google.Apis.Auth.OAuth2; FirebaseApp.Create(new AppOptions() { Credential = GoogleCredential.FromFile("path/to/serviceAccount.json"), });
using FirebaseAdmin; FirebaseApp.Create();
using System.Collections.Generic; using FirebaseAdmin.Auth; // Add some custom claims to the token, which will be available on the // ID token after successful sign in. var claims = new Dictionary<string, object>() { { "premium", true }, { "package", "gold" }, }; using FirebaseAdmin.Auth; var customToken = await FirebaseAuth.DefaultInstance.CreateCustomTokenAsync( "some-uid", claims);
var decoded = await FirebaseAuth.DefaultInstance.VerifyIdTokenAsync(idToken); var uid = decoded.Uid;
Notificações, que são mensagens exibidas na tela inicial do dispositivo móvel, são uma forma excelente de trazer usuários ausentes de volta ao aplicativo. Mas qual é a melhor forma de se comunicar com os usuários depois que eles voltam ao aplicativo? Como ter certeza de que eles estão interagindo com o aplicativo da forma pretendida, e não pulando de tela em tela sem fazer nada de importante? Como guiá-los pela experiência do aplicativo?
Com o objetivo de ajudar a responder a essas perguntas, estamos lançando hoje o Firebase In-App Messaging para você poder guiar os usuários que usam seu aplicativo ativamente enviando mensagens segmentadas e contextuais. Agora, você poderá se comunicar com os usuários mais importantes (os que já interagem com o aplicativo) e estreitar seu relacionamento com eles com informações, ofertas e dicas relevantes em tempo real enquanto eles usam o aplicativo!
O objetivo principal das mensagens enviadas com o In-App Messaging é dar aquele "empurrãozinho" nos usuários ativos para eles executarem as ações mais importantes no aplicativo (como assinar, assistir a um vídeo, passar uma fase ou comprar um item). As mensagens no aplicativo são uma luz norteadora desenvolvida para estimular conversas, aumentar o tempo de uso e incentivar a exploração do aplicativo. O In-App Messaging é um complemento essencial das notificações enviadas pelo Firebase Cloud Messaging.
As mensagens no aplicativo aparecem, obviamente, dentro dele, então precisam ser uma parte natural da sua experiência móvel. Com o In-App Messaging, você tem flexibilidade e controle para criar mensagens de diversos formatos (banners, modais e imagem) e personalizar o visual delas. Você pode mudar o esquema de cores para deixar compatível com a sua marca e adicionar elementos visuais, como imagens. Você ainda pode criar um botão de CTA perfeito para a jornada do usuário no seu aplicativo. E, como as mensagens são acionadas de acordo com eventos do Analytics, se você criar eventos importante no aplicativo, será fácil desenvolver e testar novas mensagens no aplicativo sem precisar lançar uma nova versão.
As mensagens no aplicativo funcionam melhor quando bem segmentadas e enviadas no momento certo. O In-App Messaging funciona com o Google Analytics para Firebase e o Firebase Previsões. Sendo assim, você pode acionar mensagens com base nos dados de perfil do usuário (idioma, versão do aplicativo, país), comportamento atual (compras, telas acessadas, botões clicados) e comportamento futuro previsto (probabilidade de gastar, risco de desligamento).
Por exemplo, com o In-App Messaging e o Google Analytics para Firebase, você pode enviar uma mensagem no aplicativo oferecendo uma recompensa a todos os jogadores que usam uma versão antiga do jogo se atualizarem para a mais recente. Ou então você pode enviar uma mensagem com uma dica sobre como passar de uma certa fase do jogo quando o usuário aparenta estar com dificuldades nela.
Com o In-App Messaging e o Firebase Previsões juntos, você consegue enviar uma mensagem no aplicativo com um código de cupom para os usuários que gastam menos dinheiro no aplicativo e motivá-los a comprar.
O In-App Messaging ainda mostra como cada uma das suas campanhas de mensagens no app está se saindo. Especificamente, ele monitora impressões, cliques e conversões por data para que você consiga analisar o sucesso da campanha e tomar uma decisão consciente sobre se deve executá-la de novo ou alterá-la com base nos resultados.
Muitos desenvolvedores conhecem bem as notificações, mas não se sentem confortáveis com as mensagens no app. Para mostrar um pouco como elas funcionam, temos abaixo alguns exemplos dos tipos de campanha de envolvimento que você pode lançar com o In-App Messaging.
Esses cenários são só a ponta do iceberg! Seja qual for o seu objetivo, como lançar uma campanha recorrente ou enviar um alerta específico, In-App Messaging oferece diversas possibilidades.
Comece hoje lendo a nossa documentação:
Primeiros passos com o Firebase In-App Messaging
Estamos curiosos para ver que tipos de campanha de mensagens no app você vai lançar!
No Firebase, nossa missão é ajudar as equipes de aplicativos para dispositivos móveis a terem sucesso. Isso significa ter os recursos para apoiar empresas e equipes de todos os tamanhos e níveis de complexidade. Amadurecemos muito nos últimos anos, passando de um banco de dados em tempo real para uma plataforma completa de desenvolvimento de aplicativos para dispositivos móveis. O Firebase foi desenvolvido usando o Google Cloud como base. Portanto, ele oferece toda a escala técnica, a gestão e o controle de acesso de nível empresarial e a força do aprendizado de máquina que são marca registrada de muitos produtos do Google. Hoje, temos o prazer de falar sobre alguns novos produtos e recursos que ajudarão a criar aplicativos melhores, aumentar a qualidade dos já existentes e expandir a sua empresa.
O Firebase tem vários produtos para ajudar você a envolver os usuários e expandir a empresa, da segmentação por aprendizado de máquina com o Firebase Previsões até a otimização de aplicativos sem republicação com o Remote Config e o novo envolvimento de usuários ausentes com o Cloud Messaging. Hoje, estamos adicionando um novo produto, o Firebase In-App Messaging, para completar o conjunto de ferramentas disponível para expandir a base de usuários. Além disso, estamos aprimorando alguns produtos já existentes.
As notificações são uma forma excelente de trazer usuários de volta a um aplicativo. Mas, como garantir que os usuários estão interagindo com o aplicativo da forma certa e esperada e não pulando de tela em tela sem executar nenhuma ação importante? Como guiá-los pela experiência do aplicativo?
Estamos lançando hoje o Firebase In-App Messaging para ajudar você a orientar os usuários ativos do aplicativo por meio de mensagens segmentadas e contextuais. Agora, você poderá se comunicar com os usuários mais importantes (os que já interagem com o aplicativo) e aprofundar o envolvimento com eles oferecendo informações, ofertas e dicas relevantes enquanto usam o aplicativo.
As mensagens podem ter formato, cor e CTA personalizados, o que permite que você aplique às mensagens a identidade visual da sua marca. O In-App Messaging também é integrado ao Google Analytics para Firebase e ao Firebase Previsões, o que facilita a segmentação de mensagens com base nos dados de perfil dos usuários, como versão do aplicativo; no comportamento atual, como o clique de um botão; ou no comportamento futuro previsto, como o risco de abandono. O lançamento do In-App Messaging começa hoje. Leia a nossa documentação para ver mais detalhes.
O console e as APIs do Firebase Cloud Messaging (FCM) permitem enviar notificações e mensagens de dados a usuários que usam iOS, Android e web. No entanto, é difícil compreender o desempenho dessas notificações em todas essas plataformas diferentes. O novo painel de relatórios do FCM oferece às equipes um lugar central para ver as principais estatísticas das mensagens, como envios, impressões e aberturas. Com essas informações, elas conseguem entender rapidamente o desempenho das mensagens. Além de agregar todas essas estatísticas, o painel de relatórios também fornece, pela primeira vez, informações sobre as mensagens enviadas do console por meio da API.
Os desenvolvedores podem usar essas informações para monitorar o estado da funcionalidade da notificação, como uma queda nos envios após o lançamento de uma nova atualização, além de usar as informações sobre envios e aberturas de notificações para melhorar a estratégia, como acompanhar o efeito de um título de uma notificação sobre as taxas de abertura. O painel de relatórios do FCM permite filtrar envios por data, plataforma (iOS e Android) e tipo (mensagem de dados ou notificação), facilitando a localização dos dados.
Antes, se você quisesse checar que valores do Remote Config usou no passado, precisaria manter um controle manual. Em equipes de uma pessoa só, isso era um problema contornável. Mas, para equipes grandes, em que vários desenvolvedores diferentes podem alterar o Remote Config do projeto ao mesmo tempo, o controle manual era praticamente impossível.
Hoje, temos o orgulho de anunciar a adição do recurso de histórico de alterações ao Remote Config. O Firebase salva 300 versões do Remote Config de um projeto por até 90 dias. Você poderá ver como os parâmetros e as condições evoluem com o tempo e, se quiser voltar a uma versão anterior, basta clicar no botão de rollback.
Hoje, estamos iniciando o lançamento do histórico de alterações para o Remote Config. Em alguns dias, o novo recurso estará totalmente disponível para todos os projetos. Clique aqui para ver a documentação técnica.
Histórico de alterações no Remote Config
Quando a equipe da Fabric chegou ao Firebase no ano passado, ficamos entusiasmados por aprender com a especialização da equipe no desenvolvimento de ferramentas para depuração e relatórios de erros. Nos últimos 18 meses, demos passos muito importantes para tornar o Firebase uma plataforma que você pode usar para aumentar a qualidade dos aplicativos, incluindo a incorporação do Crashlytics, originalmente da Fabric, ao Firebase. Hoje, temos o prazer de anunciar diversos aprimoramentos no Crashlytics, que ajudarão em sua integração às ferramentas usadas atualmente pelas equipes de desenvolvimento.
Vocês nos disseram que usam muitas ferramentas diferentes para tornar sua empresa um sucesso. Queremos nos juntar a você na forma como trabalha e ajudar a usar a melhor ferramenta para o seu trabalho. Por isso, estamos lançando algumas novas integrações para o Firebase Crashlytics.
Em primeiro lugar, agora você pode exportar os dados do Crashlytics do Firebase para o BigQuery, o que permite executar suas próprias análises de relatórios de erros não ofuscados, incluindo metadados como chaves e valores personalizados, registros e IDs de usuário. Em seguida, você pode visualizar dados e identificar tendências com o Data Studio ou qualquer outra ferramenta de análise empresarial disponível. Além disso, você também pode assumir o controle dos seus dados no BigQuery, definindo suas próprias políticas de retenção e exclusão.
Em segundo lugar, estamos lançando uma integração com o Jira Software que permite abrir problemas no Jira com base em falhas relatadas no Firebase. Esse novo recurso, combinado com a integração com o Slack, permite que a sua equipe controle as falhas em que estão trabalhando com as ferramentas que já usam. A integração com o Jira será lançada gradualmente ao longo das próximas semanas. Se você quiser gerenciar as suas integrações do Firebase agora, é só acessar a guia de configurações do console.
O núcleo do DNA do Firebase é um conjunto de produtos que ajudam desenvolvedores como você a criar uma infraestrutura de back-end para dispositivos móveis com rapidez e facilidade. Afinal de contas, tudo começou com um Realtime Database. Estamos trabalhando em conjunto com o Google Cloud Platform para criar a próxima geração de ferramentas de back-end sem servidor, como o Cloud Firestore e o Cloud Functions, e continuamos aprimorando esses produtos. Além disso, estamos lançando algumas melhorias para o Firebase Hosting que esperamos que ajudem você a criar sites com mais eficiência.
Há algumas semanas, no Cloud Next 2018, apresentamos diversas melhorias para o Cloud Firestore e o Cloud Functions para Firebase. Agora, o Cloud Firestore permite escalonar um banco de dados para até 10.000 gravações por segundo e 1 milhão de usuários simultâneos para gerenciar possíveis picos no tráfego. O Cloud Functions agora é GA e está pronto para uso em produção, com serviço previsível garantido por um SLA. Se você pretende criar sua infraestrutura em algumas partes do mundo, o Cloud Firestore e o Cloud Functions adicionarão suporte a novas regiões da Europa e da Ásia nos próximos meses.
Outra informação que recebemos constantemente de vocês é que nem sempre há uma relação de um para um entre projetos do Firebase e sites hospedados. Ao longo das próximas semanas, lançaremos uma atualização para o Firebase Hosting que permitirá hospedar diversos sites em um único projeto.
Além disso, ao enviar uma atualização para um site, o Firebase CLI (a partir da versão v4.1.0) só atualiza os arquivos que foram alterados entre as versões. Essa mudança acelera drasticamente o processo e aumenta a eficiência do seu trabalho.
A página Project Overview do console recebeu uma grande atualização que agregou dados de diversas partes do Firebase para oferecer uma única visualização da integridade dos aplicativos, dos serviços e da empresa. Além dos dados de análises e falhas que sempre estiveram disponíveis, agora você poderá ver problemas de desempenho, notificações e status de testes A/B, além dos dados de uso e integridade de outros serviços do Firebase como o Functions, o Hosting e o Storage, entre outros.
Você também notará que a seção "Latest Release" do console mostrará dados ao vivo. Essa foi uma das melhorias mais solicitadas para as análises no console, e estamos felizes por disponibilizá-la a vocês.
Todas essas atualizações estão começando a ser lançadas hoje e estarão disponíveis para todos em algumas semanas.
Como sempre, obrigado por fazer parte da comunidade do Firebase. Trabalhamos muito para criar uma comunidade receptiva para desenvolvedores com os mais diversos históricos e empresas com todos os níveis de sofisticação. Suas opiniões e dúvidas são extremamente valiosas para moldar o futuro do Firebase. Portanto, como sempre, fale conosco pelos canais de suporte sempre que quiser.
Se quiser conhecer a equipe pessoalmente, venha ao Firebase Summit anual, que será realizado em 29 de outubro, em Praga, na República Tcheca. Lá, você terá um dia cheio de sessões técnicas, codelabs práticos com instrutor e outra rodada de novas atualizações. Espero ver você lá!
array-contains
sly
arrayRemove
arrayUnion
viewers
"Nas poucas semanas em que usamos os insights de falhas do Crashlytics, eles se revelaram muito úteis em alguns problemas bem desagradáveis. A descrição e a qualidade dos recursos vinculados facilitam bastante o início imediato da depuração." - Marc Bernstein, chefe da equipe de desenvolvimento de software do Hudl
var registrationToken = 'YOUR_REGISTRATION_TOKEN'; var message = { data: { score: '850', time: '2:45' }, token: registrationToken }; admin.messaging().send(message) .then((response) => { console.log('Successfully sent message:', response); }) .catch((error) => { console.log('Error sending message:', error); });
var registrationTokens = [ 'YOUR_REGISTRATION_TOKEN_1', // ... 'YOUR_REGISTRATION_TOKEN_n' ]; admin.messaging().subscribeToTopic(registrationTokens, topic) .then(function(response) { console.log('Successfully subscribed to topic:', response); }) .catch(function(error) { console.log('Error subscribing to topic:', error); });
npm run build
tsc
./node_modules/.bin/tsc --watch
tsc --watch
2:38:38 PM - File change detected. Starting incremental compilation... 2:38:38 PM - Compilation complete. Watching for file changes.
firebase init
functions/package.json
"devDependencies": { "tslint": "^5.8.0", "typescript": "^2.6.2" },
"scripts": { "lint": "./node_modules/.bin/tslint -p tslint.json", "build": "./node_modules/.bin/tsc", ... }
npm run lint
firebase.json
{ "functions": { "predeploy": [ "npm --prefix $RESOURCE_DIR run lint", "npm --prefix $RESOURCE_DIR run build" ] } }
functions/tsconfig.json
{ "compilerOptions": { "lib": ["es6"], "module": "commonjs", "noImplicitReturns": true, "outDir": "lib", "sourceMap": true, "target": "es6" }, "compileOnSave": true, "include": [ "src" ] }
functions/src
functions/lib
functions/tslint.json
true
createdAt
export const onUserCreate = functions.database.ref('/users/{uid}').onCreate(event => { event.data.ref.update({ createdAt: Date.now() }) })
Promises must be handled appropriately
event.data.ref.update
export const onUserCreate = functions.database.ref('/users/{uid}').onCreate(event => { return event.data.ref.update({ createdAt: Date.now() }) })
async
await
export const onUserCreate = functions.database.ref('/users/{uid}').onCreate(async event => { await event.data.ref.update({ createdAt: Date.now() }) })
export const getUser = functions.https.onRequest((req, res) => { var uid = req.params.uid const doc = admin.firestore().doc(`users/${uid}`) doc.get().then(doc => { res.send(doc.data()) }).catch(error => { res.status(500).send(error) }) })
var
uid
doc
const
then()
export const getUser = functions.https.onRequest((req, res) => { const uid = req.params.uid const doc = admin.firestore().doc(`users/${uid}`) doc.get().then(snapshot => { res.send(snapshot.data()) }).catch(error => { res.status(500).send(error) }) })