Originally posted on the AdMob blog
“It was clear that mobile devices were becoming more popular for working professionals. The trend was clear. While we did opt-out of building for smaller platforms, this opportunity was in line with our vision and it seemed promising. It seemed like a platform where our target users would be. It was a risk, but we took it.”
Posted by Josh Gordon, Developer Advocate
To help you get started building applications with machine learning, we’re excited to launch a new developer show, Machine Learning: Recipes for New Developers. In the first few episodes, we’ll teach you the ropes of machine learning without requiring any major prerequisites (like calculus). As the series progresses, we’ll walk you from “Hello World” to solving some real world problems.
Episodes will generally publish bi-weekly, and be only about 5-10 minutes in length to keep the material lightweight. Occasionally, we’ll have guests on the show who work with machine learning on different teams around Google.
Ep #1: Hello World.
Also: Coffee with a Googler came to NYC! Laurence and Josh talk about the importance of machine learning for developers, and reducing barriers to machine learning education. Check out the video!
Posted by Nathan Martz, Product Manager
Travel apps may include turtle photos, but they're nothing like diving into the open ocean. Real estate websites may include descriptions of the dining room, but it's nothing like actually touring the home. For developers, having immersive elements in their apps and websites can be the difference between meh and magical. That's why we're introducing VR view—a quick and easy way to embed immersive content on Android, iOS and the web.
VR views take 360 VR images or videos and transform them into interactive experiences that users can view on their phone, with a Cardboard viewer, or on their desktop computer. For native apps, you can embed a VR view by grabbing the latest Cardboard SDK for Android or iOS* and adding a few lines of code. On the web, embedding a VR view is as simple as adding an iframe on your site. We’re open-sourcing the HTML and JavaScript for web developers on github, so you can self-host and modify it to match your needs.
From travel and real estate to news and entertainment, we hope embeddable VR views make it quick and easy to share your story and build immersive and engaging visual experiences your users will love. We're excited to see what you create.
*Yes, you read that right! Starting today, there’ll be a native Cardboard SDK for iOS. Provided in idiomatic Objective C, and packaged as a single, easy-to-use CocoaPod, this new SDK includes all of the features already available in the Cardboard SDK for Android.
Posted by Israel Shalom, Product Manager
Every day, hundreds of thousands of developers send millions of requests to Google APIs, from Maps to YouTube. Thousands of developers visit the console for credentials, quota, and more -- and we want to give them a better and more streamlined experience.
Starting today, we’ll gradually roll out the API Console at console.developers.google.com focusing entirely on your Google API experience. There, you’ll find a significantly cleaner, simpler interface: instead of 20+ sections in the navigation bar, you’ll see API Manager, Billing and Permissions only:
console.cloud.google.com will remain unchanged. It’ll point to Cloud console, which includes the entire suite of Google Cloud Platform services, just like before. And while the two are different destinations, your underlying resources remain the same: projects created on Cloud Console will still be accessible on API Console, and vice versa.
The purpose of the new API Console is to let you complete common API-related tasks quickly. For instance, we know that once you enable an API in a new project, the next step is usually to create credentials. That’s why we’ve built the credentials wizard: a quick and convenient way for you to figure out what kind of credentials you need, and add them right after enabling an API:
Over time, we will continue to tailor the API Console experience for the many developers out there who use Google’s APIs. So if you’re one of these users, we encourage you to try out API Console and use the feedback button to let us know what you think!
Posted by Chelsea Lax, Google Code Jam Team
Google Code Jam is here! Registration is now open for Google’s 13th annual algorithmic, global coding competition. And back for the second year is the Distributed Code Jam track, giving contestants even more ways to test their programming skills. This year, the competition is bigger than ever…
Join us for your chance to:
Compete at the 2016 World Finals held in New York, NY USA on August 5-6,
where 25 Code Jam Finalists will compete for the $15,000 grand prize,
and 15 Distributed Code Jam finalists will compete for the $5,000 grand prize;
Win a limited edition Code Jam T-Shirt;
Registration will be open until the close of the first online round. The Online Qualification Round will take place on April 8 @ 23:00 UTC. Visit g.co/codejam to learn more.
Are you up for the challenge? Register today at g.co/codejam.
Posted by Laurence Moroney, Developer Advocate
Android for Work balances an IT admin’s need for security with the needs of users for simplicity, making your favorite smartphone or tablet a great business tool. Laurence meets with Android for Work Product Manager Janice Wong to catch up with what’s latest and greatest in the Android for Work space, and how developers can get started with developing Business Apps.
Over the past few years, Android has become a reliable mobile platform for the enterprise. Janice describes her role in unleashing Android for the workplace and providing users more choice over their devices. Janice shares about her passion for productivity in the workplace, including work that she’s done on apps, for example working with mobile versions of popular enterprise email and calendaring applications. To learn more about where you can get started with developing, visit http://developer.android.com/work.
Posted by Jenny Gove, UX Research Lead, Google
Mobile has shaped the way users interact with businesses and brands alike. Nowadays, businesses cannot simply replicate their desktop strategy on mobile; they need to re-think how to build mobile experiences that are useful for clients in their moments of need - those I-want-to-know, I-want-to-go, I-want-to-do, and I-want-to-buy moments throughout the day.
To help app and mobile site developers learn what comprises a best-in-class mobile experience, we’re launching a new mobile design hub on Think with Google: Designing for Mobile Micro-Moments. The new hub features in-depth research on exactly what people expect from a mobile experience.
Learn what makes a best in class mobile experience
We partnered with AnswerLab to run user studies with more than 100 people, where we tested user's behavior on more than 100 different apps and mobile sites to undercover what led to a seamless experience and what design experiences were problematic or caused frustration to users. The results are two new sets of UX principles with specific recommendations to help you improve your mobile experience and drive conversions:
Start building better mobile sites and apps today
After you’ve identified how to improve your mobile experience, you can find tools and resources to start making improvements. Here are just a few of the resources that are available on the hub:
Learn More
Visit the Designing for Mobile Micro-Moments hub on Think with Google to view the studies and get additional resources to start developing and marketing great mobile sites and apps.
Posted by Mary Radomile, Google Open Source team
Are you a university student looking to learn more about open source software development? Look no further than Google Summer of Code (GSoC) and spend your summer break working on an exciting open source project, learning how to write code.
For twelve years running, GSoC gives participants a chance to work on an open source software project entirely online. Students, who receive a stipend for their successful contributions, are paired with mentors who can help address technical questions and concerns throughout the program. Former GSoC participants have told us that the real-world experience they’ve gained during the program has not only sharpened their technical skills, but has also boosted their confidence, broadened their professional network and enhanced their resumes.
Students who are interested can submit proposals on the program site now through Friday, March 25 at 19:00 UTC. The first step is to review the 180 open source projects and find project ideas that appeal to you. Since spots are limited, we recommend a strong project proposal to help increase your chances of selection. Our Student Manual provides lots of helpful advice to get you started on choosing an organization and crafting a great application.
For ongoing information throughout the application period and beyond, see the Google Open Source Blog, join our Google Summer of Code discussion lists or join us on internet relay chat (IRC) at #gsoc on Freenode.
Good luck to all the open source coders out there, and remember to submit your proposals early — you only have until Friday, March 25 at 19:00 UTC to apply!
Posted by Paul Bakaus, Web Developer Advocate at Google
There’s a lot to learn when you start to become a web developer. What’s often forgotten though is that the best web developers don’t just know the right JavaScript APIs and frameworks and the mysteries of CSS, but have access to a myriad of tools that dramatically increase their every-day productivity.
In the recently launched Web Tooling & Automation course at Udacity, we’re giving you access to information that most other developers have been learning gradually on the side, so you can kickstart your developer life.
Regardless of whether you’re just beginning your career or whether you want to refresh your picture of the productivity tools landscape, head over to Udacity to learn about setting up your editor, creating powerful build scripts, live editing, linting and all other sorts of awesome optimizations.
Posted by Alex Lee, Program Manager, Project Tango
This week we’re headed to the Game Developer Conference in San Francisco—it’s a great opportunity to get inspired, engage with new technology and learn from each other.
In fact, one of the things we’ve heard from game developers in particular, is that it’d be awesome to have a plugin for Unreal. We agree. Which is why we’re excited to announce that Opaque has just released the beta version of their Project Tango plugin! Stop by our booth at GDC to learn more (Zone 1, Booth 612), and to see all the newest Project Tango games in action. We’re also hosting two talks we think you’ll like:
In the meantime, enjoy an in-depth interview with game developers Danielle Swank and Jim Fleming of Barking Mouse Studio, and Josh Lee of Floor is Lava. The three recently met up at Gamenest, and created a brand new Project Tango game, World of Orbles.
Tell us about The World of Orbles
Danielle: The World of Orbles is a real-time strategy game that deals with fictional creatures called Orbles. Orbles are very smart and can build really amazing things, like trans-dimensional portals, but they also have a tendency to get distracted and forget to double check their math. So when their trans-dimensional portal malfunctions and leaves them stranded, it’s no surprise to anyone. Chaos ensues as you try to get the Orbles back to their home dimension. By using Project Tango AR features, you can see the Orbles right in your physical environment.
What got you excited about developing for Project Tango?
Jim: Mixed reality is really compelling. Literally placing something you’ve created into the real world and being able to walk around it feels like the future.
Josh: A lot of my work involves playing in physical spaces, and Project Tango's ability to map a real room and blend digital objects with it opens up all kinds of new possibilities for gameplay.
How do you think Project Tango enhances your user’s experience?
Josh: Giving users the ability to engage with digital games the way they would with a physical space is extremely powerful. Interacting with digital objects in a more physical way – looking at them from different angles, tracking their movement, etc. – makes it possible for users to play games much more intuitively, with less fiddling around with camera controls and such.
What is your favorite Project Tango feature?
Jim: Real-time mesh generation and out-of-the-box Unity integration.
Josh: Building a digital model of a physical room in real time is pretty hard to beat.
What was your biggest hurdle getting starting with Project Tango?
Danielle: Having to write our own pathfinding was an unexpected hurdle. We normally rely on Unity and static environments to provide character and npc movements. Since it’s dynamic, you can’t use Project Tango’s area mesh generation with the Unity pathfinding. Instead we had to rely on ray casting against the depth map that the Tango generates and use a modified boids algorithm to control our npcs.
What creative solution did you come up when using Project Tango for your app?
Danielle: We had to come up with a creative solution to what happens with our characters if they move behind a real-world object so we decided to write a glitch shader. It transitions the character from visible to hidden in a believable manner since we can’t partially occlude game objects.
What resources were most helpful for you?
Danielle: The Project Tango developer docs and just reading the Unity integration. There a lot of good information in the source code. Also having Unity experience was really helpful.
What tip would you give a developer who wants to get started with Project Tango
Danielle: Getting the game characters to look like they are part of the environment was tough. It’s definitely harder to make an AR game then a normal game, so be sure to give yourself enough time. That all said, I think there are all sorts of possibilities for AR that you can’t do with a normal game.
Jim: You’ll have to get creative when working with AR. Some things you would do in a normal game don’t make sense in AR.
What are you most excited to see with a the launch of Lenovo’s phone with Project Tango?
Danielle: I’m excited to see the devices in a lot of people’s hands. I think it’s really awesome that I can build a world that’s different than everyday reality and share it with people around the globe.
Jim: The smaller phone form factor opens up more use cases such as Cardboard.
Josh: I want to go to an AR gaming party, where all the partiers bring their Tango-enabled devices to a special location and play crazy games together.
Originally posted on Android Developers blog
Posted by Morgan Dollard, Product Manager of Google Play Games
With mobile gamers across 190 countries, Google Play Games is made up of a vibrant and diverse gaming community. And these players are more engaged than ever. Over the past year, the number of games reaching over 1 million installs grew by 50 percent.
Today, at our annual Developer Day at the Game Developers Conference, we announced new platform and ads tools for developers, of all sizes reach, to reach this global audience and accelerate the growth of their games business. Check out below the full range of features that will help game developers build their apps, grow their users base, and earn more revenue.
In February, we introduced Gamer IDs so that anyone could create a gaming persona. We also simplified the sign-in process for Google Play Games so players could pick up playing their game more quickly. We’re also working on product enhancements to make Play Games a little more social and fun, which will mean more engaged players who’re playing your game for longer. One example is the launch of Gamer friends (coming soon!), where your players can add and interact with their friends from within the Google Play Games app (without needing a Google+ account).
We’re also launching the Indie Corner, a new collection on Google Play, that will highlight amazing games built by indie developers. You can nominate your awesome indie game for inclusion at g.co/indiecornersubmission. We’ll pick the best games to showcase based on the quality of the experience and exemplary use of Google Play game services.
In January, we added features to Player Analytics, the free reporting tool of Google Play game services, which helps you understand how players are progressing, spending and churning. Today, we previewed some upcoming new tools that would be available in the coming months, including:
Promoting your game and growing your audience is important, but it’s just as important to reach the right audience for your game, the players who want to open the game again and again. That’s why today we’ve unveiled new features that make it simpler to reach the right audience at scale.
AdMob helps game developers around the world maximize revenue through in-app advertising. At GDC, we also announced a new way to help you earn more through AdMob Mediation. Rewarded advertising is a popular form of game monetization -- users are given the choice to engage with ads in exchange for an in-app reward. AdMob Mediation will enable you to easily monetize your apps with rewarded video ads from a number of ad providers. Supported networks and platforms include AdColony, AppLovin, Chartboost, Fyber, Upsight and Vungle, with more being added all the time.
You can learn more about this, and all our ads announcements on the Inside AdWords blog.
This is just the start of what we’ve got planned for 2016. We hope you can make use of these tools to improve your game, engage your audience, and grow your business and revenue.
Originally posted by Inside AdMob blog
Posted by Joe Salisbury, Product Specialist, AdMob
“When we first launched Gummy Gush there were some players that only played for a few days, but there were others that clearly liked the art, story and puzzles and just kept playing. It was working! That was enough encouragement for us to keep improving these elements into the game. Ultimately this investment lead to much higher revenue, and even to rapid growth. Since launching in March of 2015, we have over 1,000,000 downloads.”
“We’d receive a lot of positive and negative reviews and emails from users and didn’t know how representative the feedback were of the broader user base. Were the complaints from users who’d complain no matter what? Or were the complaints serious problems that deserved to prioritize?”
Posted by Alex Chen, Coder and Designer, Google Creative Lab
This year, for Music in Our Schools Month, we wanted to help make learning about music a bit more accessible to everyone by using technology that’s open to everyone: the web. We built a set of experiments that let anyone explore how music works. It’s called Chrome Music Lab, and you can check it out at g.co/musiclab.
The experiments all use the Web Audio API, an open web standard that lets you create and manipulate sound right in the browser. In Chrome Music Lab, we’re using Web Audio to create interactive drum machines, pianos, synthesizers, and more. A few experiments also let you use the microphone input in Chrome through WebRTC. This lets you use your own voice or real sounds around you as part of the experiment.
The web has always been a space for open collaboration. Many of these experiments use grassroots efforts such as Tone JS, a framework built on top of the Web Audio API that makes it even easier to build interactive music experiences in the browser.
We’re also providing open-source code. So if one of our experiments sparks an idea, check out our repository and start building your own.
Google Now on Tap is a feature for Android phones that lets you get quick information about what you’re doing without leaving your app, simply by holding the Home button. Laurence catches up with Paige Dunn-Rankin a product manager for Now on Tap to discuss this great technology.
It builds upon what Google Now has already done -- but making it much more personal, based on what’s on your screen right now.
She demonstrates a chat session with a friend, where from the context of their conversation, Now on Tap can figure out the landing time for the flight he’s on, the location and reviews of the restaurant they want to attend, and even integrate neatly with calendar to create a calendar event. She also shows me how natural language processing does this -- in the conversation they didn’t talk about a calendar, just about having dinner, but Now on Tap figured out the correct time and date for them. For example, when watching a YouTube video, you can hold the Home button to launch Now on Tap and it will give you related content and events!
Now on Tap works on top of most apps with no changes needed. If you want to make sure that Now on Tap works seamlessly on top of your app, make sure to check out "Optimizing Content for the Assistant" here. To make your app show up in Now on Tap links, use App Indexing.
Originally posed Google Apps Developers Blog
Posted by Saurabh Gupta, Product Manager, Google Apps Script
There are two ways to send email in Apps Script: MailApp's sendEmail and GmailApp's sendEmail method. One of the differences between these two methods is that the MailApp’s sendEmail method doesn’t require the developer to be a Gmail user. For example, a Google Apps customer who doesn’t use Gmail, but uses Apps Script instead, can send emails through MailApp but not GmailApp.
Starting on September 13, 2016, users with free public Google Accounts (consumers) and Google Apps for Education and Google Apps Free edition users, will be required to have Gmail access to send messages through Apps Script’s Mail Service. Consumers can enable Gmail on their Google account after signing-in—note your Gmail will then become the primary address of your Google account. Administrators of Google Apps domains (Education and Free edition only) can use the Admin console to turn on Gmail for their domain.
This change does not require any updates to your code. You can continue to use MailApp as before; just make sure that you have signed up for Gmail. We realize that sometimes these changes are disruptive to our developers, but we can assure you that we put lot of care and deliberation into this process.
Published by Mike Pegg, Head of Developer Marketing
One day in June of 2006 a very special thing happened. For the first time ever, we invited a handful of developers to spend the day with us at Google celebrating what they had achieved with our Maps APIs. Our engineering team came all the way from the Sydney office to help answer questions from developers, and help them learn new ways to solve problems in the apps they were building.
What a difference a decade makes. We’re absolutely amazed with all that developers from around the world have created and changed since that day in 2006. We’ve enjoyed this journey with you, and as developers ourselves we continue to be excited by the challenges that lie ahead.
It was this thinking that drove us to bring I/O back to where it all started 10 years ago and to continue celebrating this developer journey we’re on together. We’re really excited for I/O 2016 and we hope this year’s festival, happening May 18-20 at Shoreline Amphitheatre, is just as special as that first gathering at Google back in 2006.
We know a lot has changed over the years and the opportunities (and challenges) are even greater today than they were back then. We’re gearing up for an I/O festival that will celebrate your accomplishments, answer your burning technical questions, and hopefully help make your life as a developer a little bit easier. We hope you can join us! Applications for attendance opened today and will remain open until 3/10, 5PM PST. And in the meantime, share your #love4dev back with us.
Posted by Chris Dolan, Software Engineer on the Google Cast Server Infrastructure Team
As a Google Cast developer, you may be wondering how many devices access your application, how many sessions those devices initiate, and how long those sessions play media. Until now, you needed to implement your own instrumentation to get this information. Not anymore! Today, we’re excited to announce that we’re making all this data available right from the Google Cast Developer Console.
To check it out, log on as usual to the developer console with your developer account. In the ‘Application’ table, click on the ‘View’ link in the new ‘Statistics’ column for your application
The analytics page contains a tab for each metric, an interactive graph of the metric’s values over time, and tables containing the most recent day’s data. The devices tab shows the number of Cast devices that have launched your application, the sessions tab shows the number of Cast sessions of your application, and the average playback tab shows the average length of media playback time per session for your *application.
Each tab’s data can be viewed in total, by country, or by sender platform. To see data for a particular country or platform, simply click the appropriate row in the table. Each tab’s data is available on a per-day basis, as well as in seven, fourteen, and twenty-eight day rolling totals. To change the aggregation range, select the desired range from the range picker at the top right.
We hope these analytics give you insight into how your Google Cast applications are being used and enable you to see the impact of your improvements. To learn more, see the developer documentation.
Coffee with a Googler catches up with Adam Dawes, leader of Google’s Federated Identity team. His team builds seamless identity experiences for users. He tells us about Google Sign-In, and the simplifications to the APIs, focusing on decoupling from the Google+ sign-in to make the user experience more streamlined.
The landscape for users has changed over the last few years, and the user’s expectation of information that they provide for signing in is very different now. Adam shares about how his team have been engineering sign in APIs to meet these needs.
Adam demonstrates the new APIs using the runkeeper app as an example, and how it avoids ‘cognitive overload.’
We learn about OpenID connect, to make it super simple to use the authentication APIs with your own backend servers. It’s a much simpler experience, so that if all you want to do is sign the user in, without social, we made it simpler for you to do so.
One question we’ve had extensively is with using iOS apps with Google Sign-In. Adam shares how Google Sign-In uses the new Safari View Controller in iOS 9 to ensure that the API will work well on iOS.
To learn more about all these offerings, visit developers.google.com/identity.
Originally posted on Google Apps Developers Blog
Posted by Ben Greve, Developer Support Specialist, Google Apps Script
So you’ve started to build an add-on. Congrats! You identified a problem, figured out a solution, and wrote some code to accomplish it like a pro. Now it’s time to focus on design, to make sure your audience understands what your add-on does and how to use it.
In this post, I will outline five simple design tips to help make your add-on a pleasure to use. Don’t worry if you’re not an artist – these are basic concepts that anyone can apply.
Crafting a guided workflow takes the guesswork (and stress) out of using an add-on. Your user should never wonder, ‘What am I supposed to do next?’ Actions, forms, text, and buttons should be designed to create a natural flow guiding the user from one step to the next.
This can be accomplished in a number of ways. Try presenting actions in a natural order: from left to right and from top to bottom (assuming LtR language; adjust as needed). You can indicate which button is the primary action by styling it using the blue .action class. You can guide the user’s behavior by limiting the actions available (sometimes referred to as ‘forcing function’). For example, actions/options with dependencies can be disabled or hidden until they should be used. Another option is to spread a workflow across several pages and require the user to complete a given page before they can proceed to the next.
Complex add-ons require effective communication. Simple add-ons do, too. Effective communication is necessary for your audience to understand what your add-on does and how they should use it.
Use accessible language that anyone can understand. Don’t use complex wording if more easily digestible terminology is available. Unless your target audience has been demanding a feature to “asynchronously call an RPC with dependent proto messages,” you should avoid using unnecessarily technical or jargony language.
Present information when and where it’s needed. Instructions should be displayed in the context which they will be used. Actions should be clearly labeled so that users will know exactly what they do. Provide enough information so the user understands what they are doing, why they are doing it, and where they are going.
Have you ever used an app where you click on a button and nothing happens? You sit there wondering: Did it work? Did it not work? Did anything happen at all? When building your add-on, don’t do this to your users. Make sure that all actions have clear and immediate feedback, so no one is never left wondering, “What just happened?”.
With this in mind, there is still room for graceful design. Feedback can be subtle - it doesn’t need to shout, ‘ACTION 1 COMPLETED’! Leverage nuanced changes, such as displaying a quick message in a toast or moving to the next step in the workflow.
What happens if an action takes a long time to complete? Someone clicks a button and waits… and waits… and waits. A good UI will account for this scenario, too. Try using a loading graphic (i.e. a spinner or a progress bar) and for longer loading times consider including a button to cancel.
People make mistakes. It’s sad but true, and unlikely to change any time soon. Keep your users safe from themselves and design actions to have minimal risk.
The ideal solution is to remove the risk entirely. Inserting a bunch of data into a spreadsheet? Consider creating a new sheet and insert the data there. When appropriate, configure actions to add rather than replace, minimizing potential damage to existing content.
There will be situations where avoiding risk entirely won’t be possible. In these cases, do the best you can to explicitly communicate the action’s effect so your user can make a well-informed decision. A preview or a warning of the impending changes will help ensure that the user is aware of what’s coming. And of course, provide a method to ‘undo’ when possible.
Each UI element in your add-on should serve a purpose; consider removing anything that doesn’t. For the best design, keep it focused on functionality and trim any excess.
Using a large range of styling can actually undermine the power of the design. When a website is covered with different colors, styles, and fonts, it makes it difficult for any styling to communicate a specific meaning. Design patterns that are overly complicated or inconsistent make it difficult for users to learn what’s important and what isn’t.
Instead, consider an app with only three text stylings: one large, one bold, and one plain. The large style is always (and only) used for headers/titles, the bold style is used for labels, and the plain style is normal body text. Any time a user sees one of these, they’ll know exactly what they are looking at. Less is more.
Too many brilliant add-ons and apps have failed due to simple design flaws that made them inaccessible to users. These five tips are intended to help you prevent those common mistakes and provide a foundation for a great user experience.
As you work on your next add-on, remember the five lessons here:
Finally: please make sure to include the necessary onOpen() and onInstall() functions (if you want the add-on to work), follow our UI Style Guide, and use the provided CSS Package.
Have any tips or tricks of your own? Leave a comment below and share your design insights with the rest of the Apps Script community!
Google Cloud Messaging (GCM) is an infrastructure that allows you to do simple and reliable messaging to distribute your messages to and across many devices.
Every day, GCM delivers over 150 Billion messages to devices on various platforms including Android Devices, iOS Devices and Web Browsers. It has a number of different techniques for sending messages:
Single devices. Each device has a unique registration token. If you want to reach that device -- for example using GCM to build a 1:1 chat application, you can do so, addressing it via that token.
Device Groups allow you to bundle devices together into a group. For example, one of your users might have multiple devices -- including the very common scenario of having both a phone and a tablet. Using Device Groups in GCM, you can send a message to all of her devices, and if you desire, you can implement your app so that dismissing on one dismisses on all.
Topics allow you to create interest groups for your users. Once they subscribe to a topic, you can send messages to that topic, and your users will receive them. There’s no subscription limit to these, so you don’t have to worry about how many users subscribe to your topics! Some great scenarios of topics being used to improve user experience can be found in this blog post.
When it comes to reliability of messages, an internal study at Google found that the majority of notification messages (95th percentile) are delivered within 250ms to connected devices. Connectivity is impacted by many factors -- including carriers, routers and local connectivity. Indeed, in some locales it is common for people to disable mobile data for large parts of the day in order to save on bandwidth costs. In this scenario, users will still receive their notifications once they re-activate their data connection.
We’ve provided a number of resources to help you to build apps using GCM. Check out this talk where you are taken step by step through building an Android app and an associated server in PHP. There’s also an open source ‘GCM Playground’ on GitHub here, which provides a sample server implementation that runs on the Google Cloud Platform!
If you want to reach iOS users, today we’re adding an API that will help you to migrate your existing infrastructure to send notifications to iOS device, with no client code changes required. With the new batch Import API you can import the APNs device tokens that you collected from your iOS audience into GCM, and immediately start sending notifications through GCM. After you import the APNs device tokens, you can also use the InstanceID API to transparently subscribe users to GCM topics, achieving efficient fan-out of notifications based on interest groups, once again with no changes required on client code.
We’re continuing to build and innovate on this platform -- stay tuned for lots of cool new features coming soon!
You can learn more about Google Cloud Messaging on the Developers site here, including quickstarts for Android and iOS!