[MUSIC PLAYING] PAUL MANWELL: [SPEAKING SPANISH] [APPLAUSE] So as you can see, I'm
very happy to be in Madrid, and so glad that all of
you could come and join us in person. I gotta say, I've really
been enjoying the tapas and the churros con chocolate. I hope you get to enjoy the
food while you're here, too. I also wanted to say hello
to our livestream viewers. Thank you all for tuning
in from all over the world. I'm Paul Manwell. In addition to being a churro
aficionado and a madrileƱo at heart, I'm also the Director
of Product and Engineering at Google. And I'm so excited
to welcome all of you to our fourth annual
Firebase Summit. In 2016, we held
the event in Berlin. And we were joined by
hundreds of developers. Right now, we have more
than 1,000 developers in this room from
over 70 countries. It's amazing to see our
community grow stronger each year, always ready
to learn from each other and share to make
Firebase better. To date, the Firebase
community has contributed over 1.4 million
lines of code to Firebase. Give yourselves a round
of applause for that. Thank you, everybody. [APPLAUSE] So this compares
pretty favorably to the 900,000 lines of
code you also deleted. [LAUGHTER] So thank you for making
Firebase a really healthy code base and incredibly
healthy community. We couldn't do it without you. So we love collaborating
with developers like you, because you are the
architects of the future. You dare to solve impossible
problems, then, with gusto, write the code that brings
your vision to life. Together, we can move technology
forward by leaps and bounds. So before we jump into all the
exciting news from Firebase, I wanted to quickly step
back and talk about why Google invests in developers. Google is like you all. We're founded by developers who
wanted to organize the world's information, make it universally
accessible and useful so that anyone
anywhere with a dream could gain the knowledge
to put it to life. But the world is
changing, and so we're evolving the way we
approach our mission. We're moving from a company
that helps you find answers to a company that helps
you get things done. We want our products
to work harder for you in the context of your
home, your job, and your life. So when you need
to find the fastest route to a restaurant
for dinner, Google Maps is
there to help you. When you need to buy flowers
to celebrate your anniversary because you might
have forgotten-- I've never done that-- the Google Assistant is there
with a friendly reminder. And when you need to take
a break after a long day, YouTube has hours
and hours of content. And you all play a
critical role in creating these magical experiences. It's your products
that really help people in moments big and small. And we believe that a vibrant
developer ecosystem that's open, with innovation
coming from all quarters, benefits all of us. And that's why we invest
in the tools and resources to make development
easier and faster all the way across the
spectrum, from mobile, where just a few weeks ago, we
launched Android 10, adding support for 5G, and many
privacy and security features. Also in the cloud, where
we introduced Anthos, our new hybrid cloud
platform that helps you run an app anywhere simply,
flexibly, and securely. And for machine
learning, we're committed to expanding TensorFlow,
our open source platform that
democratizes ML and makes it available to everyone. And of course, there's Firebase,
the app development platform that brought you all here today. So we know that navigating
this landscape can be tough. So we're bringing the things
together on google.dev. Google.dev is a new home
where you can get up to speed on all of the tools and
resources that Google offers. Those of you who are here
today in the audience and those watching on livestream
can get early access by going to the
link on the screen. It's google.dev/topics/firebase. But today, today is
all about Firebase. Through Firebase, we're
pushing to make app development seamless so that mobile and
web developers can succeed, which is why the team
has been hard at work expanding and enhancing
its capabilities. And for me, it's
really exciting to see that now over two
million apps actively use Firebase every month. I know I speak for
the rest of the team when I say it's an honor to
be trusted by so many of you and to see the work
that you're doing. Just to give a few examples,
right here in Spain, cabify is using Firebase
to help people informed of their cab's arrival time. In France, Le Figaro
is using Firebase to grow their subscription
base by personalizing content for their users. And in the United
States, a startup named Mighty Immersion is using
Firebase to transform care for cancer patients. And it really is incredible
to see what you all do. And at Firebase and across all
of Google's developer products, the best part of our
platform is you all, our developer community. We believe that developers are
critical to our success, which is why we want to have a vibrant
and open developer ecosystem, an ecosystem that
we all benefit from and an ecosystem that helps
you bring your ideas to life. We're here to help
you on that journey. So now I'd like to share a
story about Mighty Immersion, a mighty three-person team
that, with a little help from technology,
is changing lives. Roll the video. [VIDEO PLAYBACK] [MUSIC PLAYING] - The first time I came to
get my first round of chemo, I was so nervous. - The whole experience of
accepting that your child has cancer and being able
to not take it away was probably the hardest
thing as a parent. - Health has always been
our greatest wealth, but often health care visits
are surrounded by pain and fear, especially when
children are involved. My mom founded a health
care tech company. So from an early age,
I started thinking about how technology
could be used to help people heal faster. My name's Luke Wilson. I'm the founder and CEO
of Mighty Immersion, and I work in developing virtual
reality tools to reduce pain, anxiety in pediatric patients. - I've always been
interested in making games and the power of
games to do something more than just entertainment. - The way VR works is it
keeps the child engaged. They are focused on what's
going on in the virtual world, and that allows them
to really be removed from what's going
on, in some cases, around them which can
be stressful or painful. - VR has become an
awesome tool that we like to use at Connecticut
Children's, and it's something that we use both in a
procedure standpoint and then also in a meditation
or relaxation standpoint when kids have high
anxiety or panic attacks. We've used that to help calm
them down and to help refocus. - Really, I think it
really helps all around, because when you're
watching yourself get, like, a needle put in
your port, it can be hard to watch, especially if
you're already not a big needle person. - So Pebbles the
Penguin was built as a fun experience and
a game that never ends, and it kind of keeps going. And you are controlling
this penguin that's luging down this mountain. - The second we started seeing
success in the experiences that we were
developing, we realized that we needed to distribute
this at a larger scale. Even within the hospitals
that we are working within, we had to grow the headset
base from a couple of headsets to 10, 20, even 50 headsets
in certain hospitals. That's when we needed
Firebase in order to manage all of these devices
through a simple web portal online. Using Firebase made developing
the management system extremely fast. We were able to have
this idea and put it into practice immediately. We didn't have to focus on any
of the back-end development. We didn't have to hire
an additional person to manage the APIs and
that whole technical stack. We could rely on
Firebase and really focus on the core of
what we were building. So much is taken
away from you when you're a patient in a hospital. And to be able to smile and
enjoy your life a little bit is actually extremely powerful
and brings us a lot of joy as well. [MUSIC PLAYING] [END PLAYBACK] [APPLAUSE] FRANCIS MA: Hi, everyone. I'm Francis, head of
product for Firebase. What a touching video, right? The first time I watched it,
I got a little teary-eyed, because I know what it's like
to have close family members battle with cancer. But this is exactly
why we do what we do, to enable companies
like Mighty Immersion make the world a better place. And it's stories like
this and many others are what inspire our team to
work hard every day to help developers like you succeed. Now, together, we've
come a long way, yet the best is yet to come. Now, as we look forward
to the future of Firebase, we're invested in
three key areas. First, helping you accelerate
your app development by giving you the
building blocks to solve many of the
common and core problems in app development. Second, helping you run
your app more efficiently by simplifying your workflows
and servicing insights when you need it so it helps
you improve your app quality and increase user engagement. And third, making
Firebase more extensible so that you can tailor it
to your needs as you scale, by giving you the control,
flexibility, and transparency. Now, we've got exciting
announcements across all three of these areas today. So let's get started. We'll dive right in to how
Firebase helps you accelerate your app development. Now, as developers,
we often spend a lot of time setting up
infrastructure or writing code that doesn't
differentiate our app, things like having
to store our data, manage databases,
authentication, or scaling our servers. And to help you focus more
on building amazing user experiences and
running your business, Firebase provides fully
managed back-end services to help you solve many of
these common and core problems, from databases to help
you store and sync data, to Cloud Functions that helps
you run your code in the cloud, to ML Kit that helps you
apply machine learning and bring it into your app. Now, if you've used
these services, you know they take the hard
parts of building an app and make them easy. But we've also heard
from you that there is an area where we can
do more, is helping you with your development workflow. Now, today, as you
develop and build an app, this is how it goes-- you make some code changes,
and you push it to the cloud, switch over to your mobile
device, and see if it works. And if you need to
make a small change, you've got to start the
cycle all over again. So we hear your feedback that
you want a faster and better way to do this. And that's why we built the
Firebase Emulator Suite. Now, the Emulator
Suite is a set of tools that lets you run emulated
versions of Firestore, functions, real-time
database, and hosting locally on your computer for a
faster and safer development experience. And since the suite runs
locally on your machine, it enables rapid iteration
without touching production data. And furthermore, it
supports hot reloading when you're changing
functions or security rules. Another great aspect
is that it enables you to scale your development
across larger teams. So for example, let's say
that you have each developer having a local
instance of Emulator running on their machine, you
can develop them in parallel, say, if you have a
team of five writing five different features,
without creating conflicts. So over the past
few months, we've expanded the functionality
of the emulators. In addition to supporting
Firestore in functions, we've also added support
for the real-time database. We've also expanded
the SDK from Android to iOS, and web, and many of the
server-side admin SDKs as well, like Java, Node, and Python. Now, to show you some
of these new updates, I want to pass it to
my teammate, Julio, to show us a demo. [APPLAUSE] JULIO PEREZ-OSUNA
MORALES: Hi, everyone. I was born and raised
here in Madrid. So it's very exciting
for me to be back home as a software engineer
at Google, talking to you about some of the cool
stuff Firebase has to offer. One of my favorite
things about Firebase is how easy it makes
our lives as developers. And to show you
just how easy it is to develop using
the Emulator Suite, let me introduce you to
our friendly Eats demo app. Friendly Eats allows us
to search for restaurants, write reviews, and see the
reviews others have left. Currently, it can
save reviews, but it doesn't update the
restaurant's rating when a new review is added. So we're going to be adding
that functionality here. Usually, Friendly Eats connects
to Firestone and functions in the cloud, but we're going
to be using the Emulator Suite to develop locally. So we'll connect to our local
emulated instances of Firestore and functions running
directly on my machine. Now, let's walk
through how the app will work with local emulators. When someone leaves
a review, we write it to Firestore, which will
trigger the Update Ratings Function on my machine. This function will
calculate the average rating and then write the
results back to Firestore, which we'll see immediately,
since we're using Firestore's real-time syncing. And all this is going to
happen locally on my machine. OK. Let's see this
workflow in action. First, we'll start
the emulators. Once we have the Firebase CLI
installed, we'll go to internal and run the command
Firebase Emulator Start, which will
start the emulators we selected for our project. Here, you can see the
Firestore and Functions Emulator starting. They're all done. So let's switch over to
ID and connect to them. We're going to need to
connect to both the functions and Firestore Emulators. The nice thing is we only
need one statement from each to connect. So I'm going to do what all
good developers do and copy and paste this from the docs. So we already have our
instance of Firestore. So we will need the settings. So let me copy that
and apply them. OK. That's Firestore done. Let's do the same
for Functions now. And that's Functions. So what this does
is tell the SDK to connect to our
local emulators instead of going to the cloud. Now, to make sure this
is working as intended, let's run our app. We should see an empty
list of restaurants for now since our local Firestore
instance has no data yet. Let's give this a
second to start. It's building. It's starting. There we go. OK. There we go. So let's start by adding
some fake restaurants. And there we have it. Let's see what happens
when we leave a review. So as you can see,
the review was added, but we haven't updated
the rating or the number of reviews for the restaurant. To do this, we're going to
need to add our function to update this information. So let's go to the
Functions file. Here, we need this
function to run whenever a new review is written. And the first three lines of
code will do exactly that. Then this function will
calculate the updated restaurant information and
store it into our Firestore. All that's left is to
export this function so it can be executed. So let's do that. Great. So this should do the trick. And since local emulators
have hot loading, I will need to save the changes,
and they're ready immediately. So let's try to
leave another review and see if it works this time. And there we have it. You see that now we calculate
the updated information and see it immediately. [APPLAUSE] Hot reloading really
is a game-changer when it comes to
development velocity. Instead of waiting for a code
to deploy, we make a change and see the results instantly. Now, as well as allowing
rapid local development, the Emulator Suite also
enables testing automation. For example, we can
set up the emulator to run programmatically with our
continuous integration system, like Travis for Jenkins, to
automatically run regression tests before deploying to
prod for a faster and safer development experience. Thank you, Francis. FRANCIS MA: Thanks, Julio. [APPLAUSE] So as you can see,
our Emulator Suite gives you a local playground
where you can safely build and test new features
before rolling them out to production. But the most striking
advantage of using the Emulator is that you can develop
your code so much faster. Now I want to highlight
another building block that you can use to accelerate
your efforts to bring machine learning into your app, ML Kit. Last year, we launched ML
Kit, bringing together machine learning technologies
from across Google and making them available to
every mobile developer in one easy-to-use package. Through ML Kit,
we give you access to on-device and
cloud-based APIs that you can use
out of the box, even if you have no previous
experience with machine learning. Now, these APIs
provide functionality such as face detection, image
labeling, text recognition. And we keep adding more. Now, while the base APIs are
extremely easy to get started, we also recognize
that many of you require solutions that are
more customized for your app. And that's why ML Kit also
supports for custom TensorFlow Lite models. And with Firebase, you
can host your models while on a global infrastructure and
then deploy them dynamically to your app, directly to
your end-users' devices. Now, in this year, we've taken
support for custom models even further. Previously, to integrate
your own custom model, you still had to
create, train, optimize the model all on your own. Recognizing this process
requires some ML expertise that may not be
widely available. We've made this much easier
with the launch of AutoML Vision Edge. Now, to create custom models
for image labeling, all you have to do is gather
your training images for the classes of items you
want identify and then upload them to Firebase. From there, you want to
take care of the training and optimization process
and automatically generate an on-device TensorFlow Lite
model that's ready for you to implement into your app. No ML expertise is required. To show this to
you in action, I'm going to pass it back to Julio. JULIO PEREZ-OSUNA
MORALES: Thanks, Francis. So let's continue with
our Friendly Eats example. To make it easier for our
users to identify what dishes the reviews were for,
we want to automatically tag the pictures uploaded using ML. To do this, I'm going
to use AutoML Vision Edge to create a custom
model that identifies different types of food. Let's go through how to do this. We'll start in the Firebase
Console in the ML Kit section, where we'll create a new data
set called Food and upload the images. So let's do that. Here, we'll upload those images. And because uploading
can take a little while, let's jump over to the
data set I created earlier, where the images are
already uploaded. Here, you can see that you have
the images with the labels. And you can add or remove images
as well as update their labels. Once we're happy here, we'll
move onto the next step, which is training the model. Here, you can pick between
optimizing for higher accuracy or latency and size. We'll then have to choose how
long to train the model for. Usually, larger data sets
require longer training times. In this case, I'm going
to go with a default. And to continue
with the demo, I'll jump over to a model
that is already trained. Here, you can see the
results after the model is done training. We can see the
precision and recall. And underneath, we
can see a breakdown by label of how often
the model was correct. This information
allows us to decide whether we're ready
to use this model or whether we need to
continue iterating. Once we're happy,
the last step is to integrate the model
into Friendly Eats. We can either bundle
it with the app or publish it to Firebase so the
app can download it as needed for on-device inferencing. Note that we've
created this model with just a few clicks and no
machine learning experience. So let's see if it works. So here's the dish. And here's the model identifying
it correctly as churros. Oh, there we go. See that? [APPLAUSE] So we just walked
through how you can use Firebase
to train and deploy an ML model for your mobile
app without needing any ML experience. Back to you, Francis. FRANCIS MA: Thanks, Julio. [APPLAUSE] So since launching
Firebase, we've strived to offer fully
managed back-end services and infrastructure that
speed up your time to market. Now our goal is to help you
get to the fun part of app development as fast as possible
without the fuss of managing servers. Nobody's got time
for that, right? Now, we've set up
development even more. The Emulator Suite
lets you try your code out instantly on your local
machine without deploying it. And AutoML Vision Edge
makes it even easier and faster to build and
deploy ML into your app. Now, in the coming
months, we're going to continue to further integrate
these products with Google Cloud Platform so you
have access to more cloud services at your fingertips. Now, I'm going to
pass it over to Derek, our Head of Engineering,
to talk more about how Firebase can help you run
your app more effectively. [APPLAUSE] [MUSIC PLAYING] DEREK PHILLIPS: Thanks, Francis. Firebase is your partner
through every stage of the app lifecycle, from building
an app to running it and turning it into a
successful business. As your technology partner,
we want our products to fit with the way you work
and help you be more efficient. With products like Crashlytics
and Test Lab and Performance Monitoring, it's easy to
improve your app's quality and deliver a great experience. When you really want to
understand your users, Google Analytics and
Predictions can shed some light. And we also offer products like
Remote Config, Cloud Messaging, and In-App Messaging
to keep people engaged. Our primary goals are to
simplify the complex tasks that you face every day and
to serve as insights when you need to make decisions. This enables you to focus
on doing what you love. And one of the things developers
love to do is build features. We can spend endless
hours sitting at our computers coding up happy
features that all of our users will enjoy. But where there's
code, there are bugs. We all know that the best
time to identify and fix bugs is before your app is
in the hands of users. Nobody wants to learn
about problems in their app from app reviews, because
bad reviews and bad ratings can have a lasting negative
impact on your business. That's why it's so important
to get real user feedback and test your app for
stability and usability issues before releasing it broadly. But user testing can
be a clunky process. You have to recruit testers,
give them access to your app, find a way to distribute
pre-release builds to them, collect their feedback, and
then do it all over again when you have something new to test. So we asked ourselves,
is this really how we want to spend our time? No, it's not. And now we don't have to. Say hello to Firebase
App Distribution. [APPLAUSE] Firebase App Distribution
makes it really easy to distribute pre-release
versions of your apps to a group of testers. It provides a
central hub where you can manage all of your
pre-release builds for both iOS and Android. You can send distributions
from the Console or you can use the Command
Line tools that are already part of your workflow. We're launching App
Distribution with CLI support for Gradle, the Firebase
CLI, and Fastlane. To walk you through this,
I'd like to welcome Alex. [APPLAUSE] ALEX SINGER: Thank you, Derek. We built App Distribution to
give you a fast, flexible way to get your pre-release apps
onto your testers' devices. There's no SDK to install,
forms to fill out, or review process to go through. So I've been working on a highly
requested new restaurant filter feature for the
Friendly Eats iOS app. To get early feedback,
I'll use App Distribution to send out a build
to my feature branch to testers at the company. This is the
Distributions page, where I can see any previous
distributions and upload new IPAs and APKs. To get started, I'll quickly
upload an IPA of Friendly Eats. Once uploaded,
there are two steps we need to do to
configure a distribution. The first step is
adding testers. We'll give this a
second to upload, and then we'll start
adding testers. Awesome. Now, I can add individual
testers or groups of testers that I've previously defined. Our iOS QA team will
definitely want access. So I'll make sure
that they're included. I'll also add an
internal test group, and there's one
particular developer who's been asking for early access. So I'll make sure
they're in there as well. To give me confidence in knowing
who will actually be invited, I can expand a group to see
all of the individual testers. The second step is
to add Release Notes. Release Notes ensure that
my testers know exactly which new features
are in this build and what I'm looking
to get input on. So I'll let them know,
new restaurant filter. Check it out. And now we're ready to
send out this build. After I press Distribute,
it will automatically be sent to these five testers. They'll receive an
email with instructions on how to get started with
testing on their device. The Distribution Card
gives me the status of each tester so I can tell who
exactly is trying out the app. This gives me the
confidence to know if a feature is ready to
promote to a production release or maybe to a larger
beta pool of testers. I've also had a few other people
at Friendly Eats who have been interested in getting access. I could manually add
their email addresses. But what would be
awesome is if they could add themselves
to get access to the test app on their own. With this, we have Firebase
App Distribution Invite Links. I'll create a new
invite link, which will allow me to generate
a unique URL where testers can go and sign up for access. So let's make a new invite
link for Friendly Eats. I'll configure it so
that anyone who signs up will automatically be added
to that internal test group. And optionally, I can
add a domain restriction if I want to make sure that
people outside of the company won't be able to
sign up for access. And it's created. So now the link is
ready to copy and share with folks at Friendly
Eats, including Derek, who I know has been
interested in testing out an early version. DEREK PHILLIPS: Excellent. Looks like Alex has a new
version of the app for me to test out. I've been wanting to
check out the new filter feature he's building. So I can click on
the Invite link, and it'll take me
to a Sign Up page, where I can submit my email
address to become a tester. In my Inbox, I get an email
showing me how to get started. I'll go ahead and sign
and accept the invitation. Oh, it looks like this
is the version that has the new Restaurant
Filter feature, which is just the one I've
been wanting to test. I'll download it and open it up. We'll give it a second
here to download. There it goes. Finally, I can use
that Filter feature. So I'll go pick it
here, and then-- oh, it crashed. Alex, the filter
just crashed on me. What's going on? ALEX SINGER: Seriously? Oh, I thought I fixed
that before the Summit. All right. Let's hop back
over into Firebase, and we'll go into
Crashlytics to see that crash appear on our Dashboard. So I'm going to
load this back up. Oh, yeah. There it is. Let's see what's going on here. Yeah. So digging into
this crash, it looks like you're running iOS 13. I've actually been doing
most of my development on an older device
that's still on iOS 12. So I think I have
a fix, and I've got a new build that's
ready to send out. I want to make sure
that I can get it out to my testers and Derek
as quickly as possible. I could use the
Firebase Console again. But I really want to work on
automating our distribution process. Our team already uses Fastlane
to sign and build our app, and I want to expand our
Fastlane configuration to include app distribution. In my Fast File, I've
added a new block for Firebase App
Distribution, where I can define the Firebase app
ID and groups and release notes. So I want to make sure that this
goes out to that internal test group, and I'll let our
testers know that this is the fix for iOS 13 crash. Now, to send this out, it's as
easy as executing that lane. My testers will automatically
get another email letting them know that there's
a new distribution to try out, and they can install it
right away on their device. Hey, Derek. There should be a crash-free
version coming your way now. DEREK PHILLIPS: I can't wait. All I need to do now is
download the latest build, and I'm sure this one will
finally fix that filter crash. ALEX SINGER: As you can
see, App Distribution gives me everything
I need in one console to manage all of my iOS and
Android pre-release testing. Back to you, Derek. [APPLAUSE] DEREK PHILLIPS: Thanks, Alex. As app developers ourselves,
we know firsthand how crucial it is to get early feedback. We're confident that Firebase
App Distribution will make this a breeze
and take the pain out of distributing
pre-release builds. If you're a Fabric
developer, you may have noticed that
App Distribution looks awfully familiar, and it is. It's the next evolution
of Crashlytics beta. Now you have everything you
need to move to Firebase. As a reminder, we'll
be sunsetting Fabric on March 31, 2020. So if you're a Fabric developer,
we encourage you to migrate. We've made the transition
as smooth as possible. When you land in
Firebase, you'll see a summary of the
data that was migrated. And we give you a
checklist of tasks that will help you get
ramped up on Firebase. As part of the transition,
one of the things we definitely recommend you
do is to configure Analytics. From the very
beginning, Firebase has offered a deep integration
with Google Analytics that gives you free and
unlimited app analytics. Whether you have 100 users
or 100 million users, Google Analytics can show
you who your users are, what they're doing inside your
app, and even why they turn. Google Analytics transforms a
mountain of data into insights. We've simplified the
process of understanding your users so you can take
actions to keep them happy. We're continuing to
strengthen our integration with Google Analytics
based on your feedback. Many of you have been
asking to connect your app data across platforms,
because your users often interact with your business
through multiple touchpoints. And many, many, many
of you have been asking to get the same
rich data and insights Google Analytics provides for
mobile apps for your web apps, too. And you know what? Now that I think
about it, that's actually a pretty good idea. So let's do it then. Starting today, Google Analytics
and Firebase supports web apps. [APPLAUSE] Now Google Analytics
gives you the features you've loved for native
apps, like the ability to segment your audiences, build
reports to track retention, and understand what
actions people are taking. All of these powerful tools are
available for web apps, too. Oh, and while we were at it,
we added cross-platform support as well so you can get a
complete view of your users' journeys as they
move between devices. And now with Google Analytics
available with web apps, we just thought we might as well
go ahead and add web support for Cloud Messaging
and Remote Config, too, so you can take
action to deliver relevant and
engaging experiences. To show you what
all this looks like, I'm going to hand
it over to Mai. MAI LOWE: Hi, everybody. I'm Mai Lowe, and I'm a
product manager in Firebase working for Firebase For Web. So here we are back in
Friendly Eats in the Analytics section of the Console. And the entire Analytics product
works seamlessly for web. But I'm going to focus
on three features to highlight for you today. The first is
cross-platform analytics, the second is event reporting,
and the third is audiences. Here we are in the Dashboard. And by default, you
will see your data across your entire business. And that means all of the
platforms that you build on. By setting userid
in the SDK, you will now have all of the
reports de-duplicated across devices and platform. But you can always
drill in deeper. Since Web is entirely new to
the mix, let's select Web. I'm going to apply the filter. Now you see all the web
data for Friendly Eats. [APPLAUSE] All right. Now I've covered
Cross-platform Analytics. Let's talk about events. All right. So I'm going to first look at
an event that I know is near and dear to any web
developer, Page View. And this is one of our new
automatically collected events specific to Web and Firebase. And while this is an awesome
and super-important metric, I hope by the end
of this demo you will see that Google
Analytics takes Web Analytics way beyond this. So let's select an event that
spans multiple platforms, say, Start Review. And here you see I have access
to the same filters I applied earlier in the Dashboard. And that means,
by default, you're going to see Event Count and
the User Count who triggered that event across your
native and web apps, and you can again look at just
web if you apply the filter. All right. Cross-platform Analytics
Event Reporting. Let's talk about audiences,
which, in my opinion, is one of the most
exciting features. So audiences can now
evaluate users on web and can even evaluate
users cross-platform. And if you need a
refresher, audiences are a way for you to
group your users along attributes that are
meaningful for your business. So for example, users who made
a purchase or users who pass a certain level on your game. And just like on Native,
Audiences for Web go beyond insight and reports. Because they're at the heart
of targeting in other Firebase products, like Cloud
Messaging and Remote Config. And yes, both of those
now also work for web. So let's set up
a quick audience. And I'm going to
use that audience to show you how Cloud Messaging
and Remote Config work for my Friendly Eats web app. So in Friendly Eats,
power users are considered users
who've submitted more than five reviews in
any given 30-day period. So I'm going to set
up an audience that captures that particular group. We're going to create
a new audience, and it's going to
be a custom one. And I'm going to select the
event to be Submit Review. I'm going to add a
parameter, Event Count, and set that to
greater than five. And I'm going to check
the In Any Day Period box and set that number to 30. I'm going to add
another condition and restrict my
browser to Chrome, and you'll see why
in just a moment. But I want to
point out that this is a brand-new dimension
available in the Audience Builder that's specific to web. All right. And that's pretty much it. This audience can now
be applied as a filter across the entire
Analytics Console, so you can drill deeper into
this particular user segment. I actually created this
audience earlier already, so I'm not going to save it. I'm going to click
out of this window. And let's move on to
targeting, because targeting is analytics in
action, and, plus, I think you're going to love it. So I've been wanting to send
my power users in Friendly Eats a little message thanking
them for being so engaged. I'm hoping that'll
make them feel good and write lots more reviews. I actually saw one
earlier already, but then I found
out my app was going through some issues in Chrome. So now I want to send another
one, but just to the Chrome users since they missed the
message the first time around. And now you know why
I limited my audience earlier to just Chrome. So Cloud Messaging
is how Firebase sends targeted
notifications to users. I'm going to create
a new notification, and I'm going to
title it, You're a Friendly Eats Rockstar. And in the body of the text,
I'm going to say, thank you for writing helpful reviews. Now we're going to
get to targeting. And here you see I not only
have access to my native apps, there are also
web apps in there. So I'm going to choose
my Friendly Eats web app and the user
audience that I just created, Power Users in Chrome. And then, by
default, this message is going to go live immediately. But I could also schedule it to
go today, tomorrow, next week. And I could even
do a recurring one. It's a pretty handy
feature in Cloud Messaging. So I'm going to review,
and before I publish, I'm going to switch
to two screens where Firefox is on the left
and Chrome is on the right. Ideally, the message should
show up on the right, just for Chrome, because these
are my power users in Chrome. So let's publish and
go to my two windows. And there it is. Thank you for writing
helpful reviews. [APPLAUSE] All right. Let's say that's not all I want
to do for these awesome users in Friendly Eats. Let's say I want to give them a
temporary dark mode in the UI, because everybody
prefers dark mode, right? So for this, I'm going to use
Remote Config, because Remote Config allows me to configure
different kinds of experiences for different groups of users. So I've created a
condition in advance that targets the
audience that we created, Power users in Chrome. And I'm going to go
to the Parameters, and I'm going to set
my Dark Parameter value to True for this condition. I'm going to update,
publish my changes. All right. So let's go back. I'm going to refresh
Firefox first. And nothing should
happen, and nothing did. Now let's refresh
Chrome, and there you go. Gorgeous. There's that lovely Dark Mode
that I know my power users are going to love. Back to you, Derek. DEREK PHILLIPS: Thanks, Mai. [APPLAUSE] Data is at the heart of
every good business decision. Google Analytics turns
data into insights so you can understand
what actions your users have already taken
inside your app and why. But did you know that
Firebase can also show you what actions
your users are going to take in the future? That's where
Predictions can help. With Predictions, you
can apply the power of machine learning
to your app analytics to segment your users based
on their predicted future behaviors. We've been working hard to
make Predictions easier to use, and we've made some
recent improvements to give you more information
and more control. To show you how to harness
the power of Predictions, I'm going to turn
it back to Mai. MAI LOWE: Thanks, Derek. All right. So in Friendly Eats, I have
two main revenue streams. I use AdMob to show
ads inside my app. And I also partner with
restaurants to sell discounted coupons to my users. These coupon purchases
are really valuable to me. But I know that only a
small fraction of my users are actually going to make that. If I only knew who
those users were, I could optimize
the app for them. I could say limit
the number of ads that this group
sees to keep them in the core flow of the
app as much as possible and hopefully buy more coupons. Well, lucky for me, Firebase
Predictions does exactly that. So here we are in the
Predictions Console. And I'm going to click on
the Predicted Spend audience. I'm going to expand my
graph of active users. And you see they're
sorted from left to right in how likely they
are to make that purchase. The probability of them making
the purchase is on my y-axis. I can use these blue sliders
to select the segment. And as I'm moving
the blue sliders, you see the bars
and the data change on the right to give me more
information about the users that I'm selecting. I'm ready to configure
the in-app experience for this group of users. I'm going to choose
Remote Config. And then I'm going to select a
parameter called Limited Ads. And this is going to reduce
the frequency of the ads that this group of users sees. To make it extra easy, all
the targeting information is pre-filled. And here you see that
I'm targeting the top 2% of my predicted spenders. Let's continue. And once I publish, I know
that my highest-value users are getting the tailored
experience they want. Back to you, Derek. DEREK PHILLIPS: Thank you. [APPLAUSE] So we just saw demos
of our new improvements in App Distribution, Google
Analytics, and Predictions. The underlying goal of
all of these updates is to help you run your app
more effectively with Analytics insights and workflows
to improve app quality and increase user engagement. With Firebase, we
want to free you from the tedious tasks
of app development so you can focus on building
amazing user experiences. Now, in addition to expanding
our own built-in platform, we're working to make Firebase
more extensible to support your sophisticated
needs by giving you more control, flexibility,
and transparency. To talk more about
that, I'm going to turn it back to Francis. [APPLAUSE] [MUSIC PLAYING] FRANCIS MA: Thank you, Derek. So in addition to
helping you build and run your app smoothly, we
also recognize that you need to do this at scale. Now, as your development
team and user base grow, so does the complexity
of your challenges. And that's why we're making
Firebase more extensible so that you can tailor our
products to better meet your needs. Now, one of the ways
we do this is by open sourcing our SDKs so you
can peek under the hood, make sure that our SDKs
meet your requirements, or even submit your own
improvements if you want. Because we believe that in order
to create remarkable software, we need to get a
lot of great minds involved, and the
power of open source is the power of our community. And thanks to you, we now
have community supported MAC OS and tvOS support, and
have expanded our admin SDKs across server environments,
which are huge wins. And since our last
update at Google I/O, we've open sourced four
additional iOS libraries and four additional
Android libraries, including AB testing
and Remote Config. Oh, and remember the web SDK
stats for Analytics and Remote Config that Mai just
demoed, we've open sourced them already as well. Now, I want to take
a moment to highlight the work of Invertase,
a company that's created a comprehensive React
Native Library for Firebase. They've recently released a new
React Native for Firebase v6 SDKs with Quick Start
Guides and support for every Firebase service. It's amazing to see this
community library has more than 5,000 stars on GitHub. And we continue to invest time
and energy into open source, because we want to earn
your trust by working with you to build a transparent
and flexible platform. So in addition to making
our platform more open, we've also taken strides to
meet your sophisticated needs to manage and control access
to your Firebase projects. Last year, we brought GCP's
Identity and Access Management systems to Firebase in beta. And this system lets you
set granular, custom, and pre-defined roles to
limit access to your project. And today, I'm proud
to announce that we're graduating the system out of
beta into general availability. And as a bonus, we've also
added per-product roles to give you even finer-grain
control for each Firebase product. So with this, you
can configure who has access to what so you can
prevent mistakes and protect your data. So for example, you can
enable a team member to just view your analytics
report but not mess with your back end. Or you can restrict
to permissions to just what's needed so
that nobody accidentally sends a notification
to all your users. All right. So we've talked about
open sourcing more SDKs and refined access
controls to your project. All of these are
parts of our efforts to make Firebase
more extensible. But wait, there is more. We have one more
big announcement, and not to be too
dramatic, but it signals the beginning
of a new extensibility frontier for Firebase. Wondering what it is? Well, have you
ever found yourself doing repetitive app
development tasks, like, say, resizing the
image in cloud storage, wishing that you had a tool
to make things go even faster? Or are you tired of being asked
to do the same things over and over again, like manually
add users to a Mailchimp email list? Now, a lot of
Firebase developers run into roadblocks
like these no matter where they are in their career,
yet there are no good solutions to get around them. You yourself may have
recently encountered a problem that seems common
but lacks a quick solution and wonder, there's
got to be a better way. Well, now there is. We want to give you a better
way to tackle everyday problems and make it easy to add
functionality to your app so you don't have to
reinvent the wheel each time. Today, I'm thrilled to
introduce Firebase Extensions. [APPLAUSE] Firebase Extensions
are prepackaged bundles of code designed to
save you time by automating common tasks in your project. They're configurable,
open sourced, and work with Firebase and GCP products. So whether you want
to resize an image, add people to an email
list, or shorten URLs, we've built an
array of solutions that you can plug into
your project and get going. There's no need to research,
write, or debug code. It's all done for you. But you still have
the flexibility to configure and customize the
extensions to your specific use cases. So to show you extensions and
how you can start using them, I'd like to pass it over to Osa
on my team to demo it to us. [APPLAUSE] OSA OMOKARO: Hi. I'm Osa Omokaro, the User
Experience Researcher working on Firebase extensions. If Firebase were a
restaurant, extensions would be tapas, quick
and easy bundles of solutions for common use
cases in app development. As an example, I want to
expand my business globally. So I need to translate
the descriptions of my app to multiple languages. I'm going to do this using
a Firebase extension. So we'll start off here on
the Extensions Discovery page. Here, we have a
range of extensions for common use cases. But I'm going to select the
Translate Text extension. This then brings me to the
Extensions Install page. We'll start by
reviewing the APIs. This extension uses the
Cloud Translation API and invokes it using
a Cloud Function. Now, normally, I would
need to do this manually. I would need to write my own
Cloud Functions, research Translation APIs, and put
that all together myself. But now, Firebase Extensions
takes all those separate pieces and ties them together
for me in one simple step. I don't have to write
a single line of code. Firebase extensions are free. I will only be charged
for the underlying cloud services, like the Translation
API we talked about earlier. I've already enabled
billing for this project. Next, I'm going to
review the access granted to this extension. I've taken a look
at everything here, and it all looks good to me. So I'm going to click Next
to get to the last step. Extensions are configurable. This is where I will
set up this extension to fit my specific use case. So I'm going to set my
deployment location. And then I'll review
my target languages. By default, they are set to
English, Spanish, German, and French. But I'm going to add
Italian just because it's really easy to do that. Next, I'll give it the pat
to my Firestore Collections where my strings are stored. And then I'll add the field
that I want it to translate on. And that's really
all there is to it. I'm ready to install
this extension. Now, Firebase Extensions takes
just a few minutes to install. But so that I don't
over-extend your time, I'm going to show you one that
I already installed previously. Here's what it looks like. But let's go straight
to the database so that we can see
this in action. So here's my database. My collection is Restaurants. I'm going to add a new document. I'll give it an auto ID. The field is Descriptions,
and the value will be Great For Groups. Now, when I hit
Save, this is going to translate based
on the configurations that we entered in
the Install flow. So are we ready? AUDIENCE: Yeah. OSA OMOKARO: Yay! [APPLAUSE] I've been waiting
to show you that for a really, really long time. Extensions are really cool. And as a researcher, I've
worked with a lot of developers just like you to make sure
that Firebase got this right. Extensions are easy to install. They are configurable,
and they enable you to accomplish a whole
lot more for your app with just zero lines of code. Thank you. Back to you, Francis. [APPLAUSE] FRANCIS MA: Thank you, Osa. So Osa just showed
you some extensions that were pretty cool, right? And today, we're launching
with nine Firebase extensions into beta. To see the full list, just
head over to our website. These ready-to-go
mini solutions will help you add new
functionalities to your app, automate repetitive tasks,
and use Firebase product more efficiently. Extensions mark the beginning
of an exciting new face for Firebase to help
you accelerate your app development, run your
app more effectively, and provide more
flexibility to support your sophisticated needs. So we just spent the
last hour talking a lot about the new work we've
done to make Firebase better. As you just saw, we've been
focused on three things. First, giving you
the building blocks to help you accelerate
your app development so you can solve many of the
common and core problems in developing an app. Second, helping you run
your app more effectively by simplifying your workflows
and surfacing insights when you need it to help you
increase your app quality and user engagement. And third, making Firebase
more extensible to support your sophisticated needs
by giving you more control, flexibility, and transparency. With every improvement
to Firebase, we aim to make app
development easier so that you can stay focused
on building amazing user experiences. Our mission is to help
developers like you succeed. Whether success to you is
getting an app off the ground or scaling it into
a global business, you can rely on Firebase. Now, as you go
throughout the day, I hope you feel
energized and empowered to bring your ideas
and passion to life. After all, you are all the
architects of the future. We've got lots of technical
talks, cool demos, and delicious food ahead. And rumor has it there may
even be chocolate and churros. All right, folks. Thank you so much
for being here. Enjoy the rest of today. [APPLAUSE] [MUSIC PLAYING]