We're all familiar with the idea of URLs that take you to a specific place on a website. And with the push towards mobile computing, it's becoming a lot more common to see URLs that can take you to a specific place within a specific mobile app. A concept most of us know as deep linking.
The idea of deep linking into your app is compelling, and it's easy to understand why. With just one URL, you can not only send users right into your app, but also to a precise location inside your app. Imagine if your email campaign promoting the hot new feature of your app could take users directly to that new feature with a single click. Or if the "Try our app" button on your website could not only take users to your app, but bring them directly to whatever content on your site inspired them to install your app in the first place.
Unfortunately, deep linking into an app isn't perfect. It's difficult to get the same link to point to both your iOS and Android app. And they might behave differently -- or simply break -- if your user doesn't have your app installed. Most importantly, if your target user has to install your app from the app store first, the context of that original link is often lost, and your users are left with your generic home screen rather than a customized warm welcome.
That's why we've created Firebase Dynamic Links: they're deep links that work the way you want them to. With one single link, you can send users either to your iOS or Android app, if they have it installed. And if they don't, you can send then to the appropriate listing in the App Store or on Google Play. Most importantly, these links survive the installation process, so when a user starts up their app for the first time, you can still retrieve the deep link URL that brought them to your app in the first place.
As a fun summer promotion, Shazam recently partnered with Coca Cola to allow users to share some of their favorite tunes with their friends through the fine art of lip-sync videos.
Friends who received these videos got to view them inside a web page. Before implementing Firebase Dynamic Links, these web pages contained two separate links: "Install the app" and "Make your own video", and it was up to the user to know which link to click on. But after implementing Firebase Dynamic Links, Shazam was able to replace these two links with a single "Make your own video with Shazam" link that either took future lip-sync stars directly into the app, or the appropriate app store for their platform.
Thanks to their use of Dynamic Links, users who installed the app got to directly jump to the part of the app they cared about, and Shazam discovered that users who installed their app through this kind of onboarding flow had a 15% higher retention after 2 weeks than users who started up their app normally.
Firebase Dynamic Links can be created on the fly, so your app or website can generate a new link whenever you'd like. You can also use the Firebase console to create Dynamic Links with our online form, in case you have non-technical members of your team who want to create their own links and don't feel like spending their time hand-escaping URLs.
Because Firebase Dynamic Links are part of the Firebase platform, they work alongside other features like Firebase Analytics. Not only can we give you basic information like the number of people who clicked on a link, but the Firebase platform will automatically track utm_ parameters (these are parameters your marketing team typically adds to any external campaign) so that you can analyze any of your important in-app events by the campaign or medium that brought them there in the first place.
Firebase Dynamic Links are free to use, and you can get started today -- no matter how much or how little of the Firebase platform you end up using. Need some ideas to get you started? Here's a few suggestions:
And of course, Dynamic Links are a great fit with your latest Email, SMS, or social media campaigns.
To find out more about Firebase Dynamic Links, you can check out our documentation here, and hop on into the Firebase console to get started.
This year's Google I/O was an exciting time for Firebase. In addition to sharing the many innovations in our platform, we also hatched a time-traveling digital fish named Firebass.
Firebass is an Alternate Reality Game (ARG) that lives across a variety of static web pages. If you haven’t played it yet, you might want to stop reading now and go fishing. After you’ve caught the Firebass and passed the challenge, come back -- we’re going to talk about how we built Firebass.
We partnered with Instrument, a Portland-based digital creative agency, to help us to create an ARG. We chose ARG because this allowed us to utilize developers’ own software tools and ingenuity for game functionality.
Our primary objective behind Firebass was to make you laugh, while teaching you a little bit about the new version of Firebase. The payoff for us? We had a blast building it. The payoff for you? A chance to win a free ticket to I/O 2017.
To begin, we needed to establish a central character and theme. Through brainstorming and a bit of serendipity, Firebass was born. Firebass is the main character who has an instinctive desire to time-travel back through prior eras of the web. Through developing the story, we had the chance to revisit the old designs and technologies from the past that we all find memorable -- as you can imagine, this was really fun.
We put together a functional prototype of the first puzzle to test with our own developers here at Google. This helped us gauge both the enjoyment level of the puzzle and their difficulty. Puzzle clues were created by thinking of various ways to obfuscate information that developers would be able to recognize and manipulate. Ideas included encoding information in binary, base64, hex, inside images, and other assets such as audio files.
The core goal with each of the puzzles was to make them both logical but not too difficult -- we wanted to make sure players stayed engaged. A bulk of the game’s content was stored in Firebase, which allowed us to prevent players from accessing certain game details too early via inspecting the source code. As an added bonus, this also allowed us to demonstrate a use-case for Firebase remote data storage.
One of our first challenges was to find a way to communicate a story through static web pages. Our solution was to create a fake command line interface that acted as an outlet for Firebass to interact with players.
In order to ground our time travel story further, we kept the location of Firebass consistent at https://probassfinders.foo/ but changed the design with each puzzle era.
After establishing the Pro Bass Finders site and fake terminal as the centerpieces of the game, we focused on flushing out the rest of the puzzle mechanics. Each puzzle began with the era-specific design of the Pro Bass Finders home page. We then concepted new puzzle pieces and designed additional pages to support them. An example of this was creating a fake email archive to hide additional clues.
Another clue was the QR code pieces in puzzle 2.
The QR codes demonstrate Firebase time-based read permissions and provide a way to keep players revisiting the site prior to reaching the end of puzzle 2. There were a total of three pieces of a QR code that each displayed at different times during the day. It was really fun and impressive to see all of the different ways players were able to come up with the correct answer. The full image translates to ‘Locating’, making the answer the letter ‘L’, but many players managed to solve this without needing to read the QR code. You're all smart cookies.
Puzzle 3 encompassed our deep nostalgia for the early web, and we did our best to authentically represent the anti-design look and feel of the 90s.
In one of the clues, we demonstrated Firebase Storage by storing an audio file remotely. Solving this required players to reference Firebase documentation to finish writing the code to retrieve the file.
<!-- connect to Firebase Storage below --> <script> console.log('TODO: Complete connection to Firebase Storage'); var storageRef = firebase.app().storage().ref(); var file = storageRef.child('spectrogram.wav'); // TODO: Get download URL for file (https://developers.google.com/firebase/docs/storage/web/download-files) </script>
While the contest was still active, players who completed the game were given a URL to submit their information for a chance to win a ticket to Google I/O 2017. After the contest was closed, we simply changed the final success message to provide a URL directly to the Firebass Gift Shop, a treasure in and of itself. :)
This was an unforgettable experience with a fervently positive reaction. When puzzle 3 unlocked, server traffic increased 30x! The community response in sharing photos, Slack channels, music, jokes, posts, etc. was incredible. And all because of one fish. We can’t wait to see all the swimmer winners next year at I/O 2017. Until then, try playing the game yourself at firebase.foo. Thank you, Firebass. Long may you swim.
><(((°<
Turning a great app into a successful business requires more than simply releasing your app and calling it a day. You need to quickly adapt to your user’s feedback, test out new features and deliver content that your users care about most.
This is what Firebase Remote Config is made for. By allowing you to change the look and feel of your app from the cloud, Firebase Remote Config enables you to stay responsive to your user’s needs. Firebase Remote Config also enables you to deliver different content to different users, so you can run experiments, gradually roll out features, and even deliver customized content based on how your users interact within your app.
Let's look at what you can accomplish when your wire up your app to work with Remote Config.
We've all had the experience of shipping an app and discovering soon afterwards that it was less than perfect. Maybe you had incorrect or confusing text that your users don't like. Maybe you made a level in your game too difficult, and players aren't able to progress past it. Or maybe it was something as simple as adding an animation that takes too long to complete.
Traditionally, you'd need to fix these kinds of mistakes by updating those values in your app's code, building and publishing a new version of your app, and then waiting for all your users to download the new version.
But if you've wired up your app for Remote Config in the Firebase platform, you can quickly and easily change those values directly in the cloud. Remote Config can download those new values the next time your user starts your app and address your users' needs, all without having to publish a new version of your app.
Firebase Remote Config allows you to deliver different configurations to targeted groups of users by making use of conditions, which use targeting rules to deliver specific values for different users. For example, you can send down custom Remote Config data to your users in different countries. Or, you can send down different data sets separately to iOS and Android devices.
You can can also deliver different values based on audiences you've defined in Firebase Analytics for some more sophisticated targeting. So if you want to change the look of your in-app store just for players who have visited your store in the past, but haven't purchased anything yet, that's something you can do by creating Remote Config values just for that audience.
Remote Config conditions also allow you to deliver different values to random sets of users. You can take advantage of this feature to run A/B tests or to gradually rollout new features.
If you are launching a new feature in your app but aren't sure if your audience is going to love it, you can hide it behind a flag in your code. Then, you can change the value of that flag using Remote Config to turn the feature on or off. By defining a "My New Feature Experiment" condition that is active for, say, 10% of the population, you can turn on this new feature for a small subset of your users, and make sure it's a great experience before you turn it on for the rest of your population.
Similarly, you can run A/B tests by supplying different values to different population groups. Want to see if people are more likely to complete a purchase if your in-app purchase button says, "Buy now" or "Checkout"? That's the kind of experiment you can easily run using A/B tests.
If you want to track the results of these A/B tests, you can do that today by setting a user property in Firebase Analytics based on your experiment. Then, you can filter any of your Firebase Analytics reports (like whether or not the user started the purchase process) by this property. Watch this space for news on upcoming improvements to A/B testing.
Many of our early partners have already been using Firebase Remote config to test out changes within their app.
Fabulous, an app from Duke University's designed to help people adopt better lifestyle habits, wanted to experiment with their getting started flow to see which methods were most effective for getting their users up and running in their app. They not only A/B tested changes like images, text, and button labels, but they also A/B tested the entire onboarding process by using Remote Config to determine what dialogs people saw and in what order.
Thanks to their experiments with Remote Config, Fabulous was able to increase the number of people who completed their onboarding flow from 42% to 64%, and their one-day retention rate by 27%.
Research has shown that an average app loses the majority of their users in the first 3 days, so making these kinds of improvements to your app's onboarding process -- and confirming their effectiveness by conducting A/B tests -- can be crucial to ensuring the long-term success of your app.
When you use remote config Remote Config, you can supply all of your default values locally on the device, then only send down new values from the cloud where they differ from your defaults. This gives you the flexibility to wire up every value in your app to be potentially configurable through Remote Config, while keeping your network calls lightweight because you're only sending down changes. So feel free to take all your hard-coded strings, constants, and that AppConstants file you've got sitting around (it's okay, we all have one), and wire 'em up for Remote Config!
Firebase Remote Config is part of the Firebase platform and is available for free on both iOS and Android. If you want to find out more, please see our documentation and be sure to explore all the features of the Firebase SDK.
Firebase Cloud Messaging is a cross-platform messaging solution that lets you reliably deliver messages and notifications to Android, iOS or the Web at no cost. For example, you can specify that new data is available for sync, special offers are ready to re-engage users and more. Messages can be sent to individual devices, groups of devices, or even topics that devices are subscribed to.
Messages can carry a payload of up to 4k, and can also be sent upstream from devices to a central server or other devices.
Firebase Cloud Messaging is the successor to Google Cloud Messaging, and you can learn details here about your options if you already use Google Cloud Messaging.
We’ve provided some great samples if you want to get started in building apps that use Firebase Cloud Messaging, or you can follow the walkthroughs on Android, iOS or the Web.
Welcome, current and new Firebase developers! There's a lot to discover with the Firebase platform -- more than we could possibly explain in a single blog post. So over the next several weeks, we'll be sharing posts focusing on each of the individual features of Firebase. For our first post, we wanted to let you know about Firebase Analytics -- the free and unlimited analytics solution for mobile developers.
Analytics are at the heart of successful apps, so when we expanded Firebase to help mobile developers build better apps and grow successful businesses, we thought it was important to build an analytics solution that serves the needs of all app developers, from two-person startups to large, established companies.
Meet Firebase Analytics, a free and unlimited analytics tool built from the ground up for mobile apps. Firebase Analytics is at the core of the Firebase platform, providing the insights you need to build successful apps.
Firebase Analytics helps you understand what your users are doing in your app. It has all of the metrics that you’d expect in an app analytics tool (average revenue per user (ARPU), active users, retention reports, event counts, etc.) combined with user properties like device type, app version, and OS version to give you insight into how users interact with your app.
Collecting all of this data is simple and works right out of the box. When you add Firebase to your app, key events are measured automatically – including first opens (think of these like installs), in-app purchases, and more. With up to 500 distinct event types (each with up to 25 key-value pair parameters) you can measure additional suggested and custom events that are unique to your app with just a few lines of code.
Some events are more important to you than others, so with conversion tracking you can define the most important events that happen in your app (like purchasing an item, or sharing your app with others) and create funnels just for these events to discover where users drop out of the process.
But Firebase Analytics helps you analyze more than just user behavior. It also provides a rich set of data that helps describe your users – data like geographic information, demographics, and interests that can help you better tune your app and refine your marketing activities.
While standard demographic data is helpful, it’s also important to understand user properties specific to your app. Firebase Analytics lets you define custom user properties for all of your users. For example, your fitness app can record a user's favorite exercise or your music app can record your user's favorite genre. Firebase Analytics is also integrated with BigQuery, Google’s fully-managed data warehouse, so you can export your raw Firebase data and join it with custom data for additional analysis.
Understanding user behavior is just one important part of Firebase Analytics -- you also need to understand how your advertising and marketing activities influence those behaviors. Firebase Analytics can automatically link user behaviors within your app to a traffic source so you know where your valuable users are coming from. It works with Google AdWords and more than 20 other major ad networks without having to install any additional SDKs, making it easy to understand the ROI of your marketing and advertising spend. You can also import Firebase Analytics conversion events directly into Google AdWords so you can bid on specific user events that happen in your app with just a few clicks.
Firebase Analytics is designed to make your analytics data actionable. You can use the Audiences feature to create a segment of users based on their event data and user properties. For example, an audience of people who have added items to their cart but haven't made a purchase. Or an audience of classical music fans who have listened to more than 200 songs.
You can then use these audiences in conjunction with other Firebase features, like Remote Config, which allows you to change the look-and-feel of your app just for a specific audience. Want to create a customized home screen for users who have subscribed to your newsletter or have reached a certain level in your fitness app? You can do that directly from the Firebase console using Remote Config and Audiences in Firebase Analytics.
Firebase Analytics Audiences also work with Notifications, allowing you to send in-app notifications to any audience that you've defined. So, if you've just added a new set of armor to your game's in-app storefront, you can notify only the users who have purchased in-game items in the past. In addition, when your Firebase account is linked to AdWords, you can use audiences to re-engage lapsed users with ad campaigns. To learn more about the app analytics capabilities in Firebase Analytics, check out our video:
While Firebase works well as a standalone tool, the true power of Firebase Analytics lies in the customer insight it brings to other Firebase capabilities - insight that helps you grow, develop, and earn with your mobile app.