Posted by Paul Bankhead, Director, Product Management, Google Play
Every day, millions of people come to the Play Store to discover the best apps and games. As part of our continued effort to deliver great experiences to our users, we regularly update the Play Store to help people find and discover safe, high quality, and relevant apps and games.
Over the last year, we've been enhancing our search and discovery algorithms' consideration of app quality and user engagement. This means that apps and games that have high retention rates, low crash rates, low uninstalls, and many other factors, are recommended more often.
Recently, we increased the importance of engagement and app quality in our recommendation systems and users reacted favorably to the changes. With more high quality titles being surfaced in the Play Store's recommendations, people are playing the games they download more often.
We believe that providing great experiences for our users on Google Play will encourage a healthier, growing Android ecosystem. We encourage all developers to review some of the suggestions in this post and on developers.android.com for guidance and best practices.
As World Cup fans stayed glued to the TV, people in the U.S. geared up for a holiday and commemorated the life of an icon in music. Here’s a look at a few of the trending searches this week, with data from the Google News Lab.
Get outta town
4th of July is coming up in the U.S., and people are skipping town. According to Google Flights data, several of the top trending destinations for 4th of July travel are outside the United States: Moscow, Russia; Ponta Delgada, Portugal; New Orleans, Louisiana; Cartagena, Colombia; and Lisbon, Portugal are at the top of the list. For people who are traveling by car instead of airplane, Google Maps data can tell you the best time to hit the road (and when the traffic will peak), according to your city.
A Justice retires
Upon Supreme Court Justice Anthony Kennedy’s surprise retirement announcement, people searched to find out why Justice Kennedy was retiring, as well as for his letter to the President sharing the news. The top related search however was for Brett Kavanaugh, a former clerk for Justice Kennedy, and rumored key contender to fill his role.
The Father of the King
Two days after the ninth anniversary of Michael Jackson’s passing, news of family patriarch Joe Jackson’s death inspired a wave of searches for a family that defined American music. Jackson, who initially served as manager of the Jackson 5, had never been more searched than the late King of Pop until this week. When people searched for Michael Jackson’s iconic music this week, the top three songs in the Search charts were “Billie Jean,” “Bad,” and—in number 1—“Thriller.”
The field narrows to 16
In World Cup news this week, Iceland’s fairytale run came to an end and Germany got the boot, causing people to search, “Will Joachim Löw resign?” In the U.S., however, the top search on Löw was inspired by that pesky umlaut: how do you pronounce his name? And bringing it Home(r) with the final query: the unearthing of a possibly prophetic “Simpsons” episode featuring Mexico vs. Portugal led people ask, “How do The Simpsons predict the future?”
Top of the muffin to you!
Searches for “muffin top” went up in Search this week, and not because people are working on their summer bods. McDonald’s announced that the muffin top will now be a part of their breakfast menu, and thought it came in behind “biscuit” and “burrito” in the list of top-searched McDonald’s breakfast menu items, search interest “mcdonalds muffin top” heated up by 2,850 percent.
With support from Google, the National AfterSchool Association (NAA) recently released the Afterschool Tech Toolkit, designed to guide afterschool programs in effectively integrating technology into their programs. In this post, Gina Warner, president and CEO of NAA, shares more their process of engaging community experts to create this tool.
Hearing this, our team embarked on a journey, supported by a grant from Google, to better understand the barriers that afterschool practitioners face in providing digital opportunities.
We interviewed over 100 afterschool leaders, and heard that though they want to integrate technology into existing afterschool programs, lack of of Wi-Fi and devices prevents students from accessing technology and digital learning opportunities to complete assignments, thereby perpetuating the digital divide. Afterschool professionals think it’s important to help students produce technology—rather than just consuming it—but there’s a lack of resources and training to help encourage this innovative spirit in their educational environments.
With continuing support from Google, we built the Afterschool Tech Toolkit to help address these needs. The toolkit includes a series of modules to train school day and afterschool educators on how to implement digital learning and technology in afterschool programs.
In addition to resources and training modules, the toolkit highlights examples of afterschool programs that are already using technology in innovative and engaging ways—and that can serve as models for programs starting to integrate technology and digital learning. For example, the Educational Video Center in New York City teaches students industry standard digital media skills to develop interactive websites about a social issue of relevance to them. The afterschool program at Crocker Elementary School, in Fitchburg, MA, integrates coding, robotics, digital photography, LEGO WeDo, and other technology and digital learning opportunities into their existing program options.
These LA's BEST elementary students are tinkering with code to get their robot to successfully complete its mission.
Since summer is a great time to think about how to integrate technology into afterschool programs, we’re also hosting a series of webinars to train afterschool leaders on the toolkit. As on-the-ground practitioners test and use the toolkit, we will be eagerly gathering their feedback on additional resources and supports necessary to serve students throughout the country.
We look forward to supporting programs to enable staff and students alike to become active and responsible digital citizens, critical consumers and innovative makers themselves.
Posted by
Nicole Borrelli, Android Developer, Programs Engineer
The Universal Android Music Player (or "UAMP") is a favorite on GitHub for music app developers with over 9,500 stars and 3,000 forks. Since UAMP was first released, Android development has changed significantly. ExoPlayer has improved, Architecture Components were introduced, and Kotlin became a first-class language for Android developers.
We decided that the best way to integrate the modern features for our beloved music app would be to re-write UAMP.
UAMP v2 was built from the ground up in Kotlin. The UI is built around ViewModels and LiveData. Playback, and particularly integration with MediaSessionCompat, was vastly simplified by utilizing the MediaSession extension of ExoPlayer.
There are some features from UAMP v1 that haven't been integrated into the new code yet. The missing features include Android TV with the Leanback library and remote playback via Google Cast. Even though these features aren't yet included in v2, we wanted to show you the new updates as soon as possible. The old code will continue to be available in the v1 branch on GitHub, so please take a look there to see how to use those features in a music app.
We would love your feedback on which features to add next. We are considering offline playback, improving the integration with Android Auto, and using the upcoming Navigation components of Jetpack for the UI. We'll be creating GitHub issues for features and improvements to help you let us know what is most important to you. Go vote on these features to let us know where we should focus our efforts.
We'd also like to invite you to open pull requests for bug fixes and features that are missing. See the contributions process for more information.
A few months after I first started working at Google, a colleague asked me to organize a volunteer effort at a school in East Palo Alto. That was my first introduction to GoogleServe, our annual month-long volunteer program, which offers many different ways to give back. My colleagues and I have sorted food at a local homeless shelter, helped NGOs improve their outreach using Google for Nonprofits tech solutions, and helped set up the San Francisco AIDS Foundation’s LifeCycle race. In my seven years at Google, I never missed a GoogleServe—I even attended a gardening project at Full Circle Farms two weeks after giving birth to my son Jack. I didn’t do much gardening, but was glad to be there alongside my teammates.
Now, the journey has come full circle. I work with Google.org as its Global Project Manager for GoogleServe and in this role, I have a bird’s eye view of all the amazing ways my colleagues are having an impact. GoogleServe was created 11 years ago, and this June, over 25,000 Googlers from more than 40 countries participated with more than 900 nonprofits.
GoogleServe is my favorite time to be a Googler, and I’m excited to share a few examples of the magic that has taken place over the past month.
SP
Across the U.S., more than 300 Googlers volunteered with local chapters of Goodwill and 4-H, two Google.org supported nonprofits. Goodwill helps millions of Americans expand their digital skills and access career opportunities. This year’s volunteers, including our CEO Sundar Pichai, helped job seekers with mock interviews and resume reviews. With 4-H, the largest youth organization in the country, volunteers staffed computer science activities at summer camps, part of Google.org’s efforts to help young people develop the skills they’ll need for their future.
Berlin GoogleServe photo.jpg
In Germany, Googlers in Berlin helped Berliner Bahnhofsmission in their quest to feed and assist 200 homeless people, handing out food and beverages, preparing and restocking food, cleaning dishes, staffing the entrance, and sorting donated clothes.
pasted image 0 (20).png
In Hyderabad, India, Googlers slipped on hair nets, scrubbed cauldrons, sorted rice and cut vegetables to help Akshaya Patra, a nonprofit which works to alleviate childhood hunger through a mid-day meal program.
image.png
In Canada, almost 90 percent of the Toronto Google office participated in GoogleServe, volunteering with projects like digital skills training withPancreatic Cancer Canada, a visit toCollege Montrose Children's Place, meal serving atHaven Toronto and aRonald McDonald House board dinner for families. One Googler, Dave Carsley, organized dog adoption from four different shelters where, he’s happy to report, “all participating dogs found a fur-ever home.”
Screen Shot 2018-06-27 at 10.08.44 AM.png
Googlers in Lima, Peru welcomed seven graduates from Google.org's granteeLaboratoria, which trains women to be future leaders in the emerging digital economy. We integrated the graduates into our Google Peru team for the day, which included joining us for meetings with real clients and agencies.
Jack at GoogleServe.jpg
And for those wondering, this year I made up for the gardening I didn’t do a few years ago, by bringing my two-year-old helper along with me.
A while back, a group of us Google Cloud Platform Developer Programs Engineers teamed up with gaming fans in Firebase Engineering to work on an interesting project. We all love games, gamers, and game developers, and we wanted to support those developers with solutions that accomplish common tasks so they can focus more on what they do best: making great games.
The result was Firebase Unity Solutions. It’s an open-source github repository with sample projects and scripts. These projects utilize Firebase tools and services to help you add cloud-based features to your games being built on Unity.
Each feature will include all the required scripts, a demo scene, any custom editors to help you better understand and use the provided assets, and a tutorial to use as a step-by-step guide for incorporating the feature into your game.
The only requirements are a Unity project with the .NET 2.0 API level enabled, and a project created with the Firebase Console.
Introducing Firebase Leaderboard
Our debut project is the Firebase_Leaderboard, a set of scripts that utilize Firebase Realtime Database to create and manage a cross-platform high score leaderboard. With the LeaderboardController MonoBehaviour, you can retrieve any number of unique users’ top scores from any time frame. Want the top 5 scores from the last 24 hours? Done. How about the top 100 from last week? You got it.
Once a connection to Firebase is established, scores are retrieved automatically, including any new scores that come in while the controller is enabled.
If any of those parameters are modified (the number of scores to retrieve, or the start or end date), the scores are automatically refreshed. The content is always up-to-date!
With the same component, you can add new scores for current users as well, meaning a single script handles both read and write operations on the top score data.
public void AddScore(string userId, int score) {
leaderboard.AddScore(userId, score);
}
For step-by-step instructions on incorporating this cross-platform leaderboard into your Unity game using Firebase Realtime Database, follow the instructions here. Or check out the Demo Scene to see a version of the leaderboard in action!
We want to hear from you
We have ideas for what features to add to this repository moving forward, but we want to hear from you, too! What game feature would you love to see implemented in Unity using Firebase tools? What cloud-based functionality would you like to be able to drop directly into your game? And how can we improve the Leaderboard, or other solutions as they are added? You can comment below, create feature requests and file bugs on the github repo, or join the discussion in this Google Group.
If you’ve deployed Chrome Browser or Chrome OS in your business, you probably know that we update the platform roughly every six weeks with new features. To help you understand what these new features and enhancements mean for enterprises, we’ll be publishing regular updates to coincide with the latest Chrome Enterprise beta releases.
To kick things off, here are just a few of the new features available in Chrome Enterprise 68.
Alert users when they visit unencrypted sites.
Security on the web is more important than ever, and we want to do our part to keep businesses and users protected. As we announced in February, Chrome Browser will start to alert users that HTTP sites are “not secure” beginning with Chrome 68. You’ll start to see these alerts in your browser this month, so you may want to consider giving your users a heads up. If you have internal or third-party apps that are still in the process of migrating to HTTPS, and you want to avoid displaying a warning to users, you can also choose to disable this notification on a per-domain basis.
Allow users to sign in through a PIN code anytime
For users who frequently need to log in and out of devices without an accessible keyboard—for example, a retail associate using a tablet—numeric passcodes can be a necessity. Although logging in through numeric PIN has been available on Chrome OS for some time, it was previously only allowable after the first sign-in. With Chrome 68, sign-in through a numeric PIN code is now available at any time. Note that we suggest that you require a minimum of six digits for PINs.
Enable automatic re-enrollment
If managing devices is one of your responsibilities, the occasional loss or theft of a device is inevitable. In the past, if a misplaced device was wiped remotely and then later recovered, a user would need to enter their credentials into that device for it to re-enroll into your domain.
With Chrome 68, managed Chrome OS devices will automatically re-enroll once they connect to a network, eliminating the need for users to enter their credentials to complete the re-enrollment step. This feature will be rolled out incrementally, and will become the default for new customers as well as existing customers who have not changed the default forced re-enrollment setting.
If you choose, you can still require users to enter their credentials to re-enroll recovered devices, and use enrollment permissions to prevent specific users from being able to re-enroll through that process. More information on wiping and enrolling devices can be found on our help center.
To stay in the know, bookmark and visit our Help Center, or sign up to receive new release details as they become available.
Today, we’re excited to announce the addition of Telugu, a language spoken by over 70 million in India and many other countries around the world, to the family of AdSense supported languages. With this launch, publishers can now monetize their Telugu content and advertisers can connect to a Telugu speaking audience with relevant ads.
To start monetizing your Telugu content website with Google AdSense:
Today, we’re excited to announce the addition of Telugu, a language spoken by over 70 million in India and many other countries around the world, to the family of AdSense supported languages. With this launch, publishers can now monetize their Telugu content and advertisers can connect to a Telugu speaking audience with relevant ads.
To start monetizing your Telugu content website with Google AdSense:
While most chatbots respond to user requests in a synchronous way, there are scenarios when bots don't perform actions based on an explicit user request, such as for alerts or notifications. In today's DevByte video, I'm going to show you how to send messages asynchronously to rooms or direct messages (DMs) in Hangouts Chat, the team collaboration and communication tool in G Suite.
What comes to mind when you think of a bot in a chat room? Perhaps a user wants the last quarter's European sales numbers, or maybe, they want to look up local weather or the next movie showtime. Assuming there's a bot for whatever the request is, a user will either send a direct message (DM) to that bot or @mention the bot from within a chat room. The bot then fields the request (sent to it by the Hangouts Chat service), performs any necessary magic, and responds back to the user in that "space," the generic nomenclature for a room or DM.
Our previous DevByte video for the Hangouts Chat bot framework shows developers what bots and the framework are all about as well as how to build one of these types of bots, in both Python and JavaScript. However, recognize that these bots are responding synchronously to a user request. This doesn't suffice when users want to be notified when a long-running background job has completed, when a late bus or train will be arriving soon, or when one of their servers has just gone down. Recognize that such alerts can come from a bot but also perhaps a monitoring application. In the latest episode of the G Suite Dev Show, learn how to integrate this functionality in either type of application.
From the video, you can see that alerts and notifications are "out-of-band" messages, meaning they can come in at any time. The Hangouts Chat bot framework provides several ways to send asynchronous messages to a room or DM, generically referred to as a "space." The first is the HTTP-based REST API. The other way is using what are known as "incoming webhooks."
The REST API is used by bots to send messages into a space. Since a bot will never be a human user, a Google service account is required. Once you create a service account for your Hangouts Chat bot in the developers console, you can download its credentials needed to communicate with the API. Below is a short Python sample snippet that uses the API to send a message asynchronously to a space.
from apiclient import discovery from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials
The alternative to using the API with services accounts is the concept of incoming webhooks. Webhooks are a quick and easy way to send messages into any room or DM without configuring a full bot, i.e., monitoring apps. Webhooks also allow you to integrate your custom workflows, such as when a new customer is added to the corporate CRM (customer relationship management system), as well as others mentioned above. Below is a Python snippet that uses an incoming webhook to communicate into a space asynchronously.
To get started, take a look at the Hangouts Chat developer documentation, especially the specific pages linked to above. We hope this video helps you take your bot development skills to the next level by showing you how to send messages to the Hangouts Chat service asynchronously.