The media platform helping Indonesians donate for good

Editor’s note from Ludovic Blecher, Head of Google News Initiative Innovation: The GNI Innovation Challengeprogram is designed to stimulate forward-thinking ideas for the news industry. The story below by Andrias Ekoyuono, Chief of Corporate Strategy at kumparan, is part of an innovator seriessharing inspiring stories and lessons from funded projects.

As an avid news reader, I would read stories in the media every day about social problems and natural disasters, which made me want to help by donating to those in need. However, it was difficult to find a way to donate because I had to search for other websites that could channel the funds. I would also have to ensure that the donation was channeled by a credible party. My main takeaway became this: the experience of giving donations after reading the news should be easier.

Enter kumparan, one of the most widely respected online media organizations in Indonesia. Launched in 2017, it consists of 130 journalists and a media network across 34 provinces which helps media startups grow. It serves as a key resource, giving local media the opportunity to disseminate information and voice concerns at the forefront of Indonesia’s national consciousness. Its establishment has helped the general public to understand and empathize with the problems facing their neighbors every day.

In 2020, kumparan received funding from the Google News Initiative Innovation Challenge to help create kumparanDerma, a tool that shortens and streamlines the donation process to provide aid during disasters and emergencies.

The platform allows news consumers to have direct social impact, as they can read articles and give to causes that matter to them in a one-step process through available payment options. There have been ten donation campaigns across Indonesia, including in Riau, East Nusa Tenggara, North Sulawesi, Kalimantan, East Java, and West Java, resulting in over 1,400 transactions with a total readership of roughly 600,000 article views.

These campaigns have raised money for a host of different causes, including support for people whose homes had been destroyed by an earthquake and funding for a child in a remote area who needed a mobile phone to access online school classes during the pandemic.

This is a photograph of the Chief of Corporate Strategy at kumparan, called Andrias Ekoyuono. He is standing up and looking directly at the camera wearing a white T-shirt with the kumparan logo across the chest in blue with orange highlights.

Andrias Ekoyuono, Chief of Corporate Strategy at kumparan

One of the fundraising campaigns was “Blurred Portrait of Sikka Children, Struggling with Pain Amid Limitations.” Two children in Sikka (East Nusa Tenggara) had been suffering from malnutrition and hydrocephalus for years. Both had received treatment from local health facilities in the past, but were unable to receive treatment for a period of five months because of the cost of transportation to obtain their medicines. As a result, kumparanDerma opened donations to support these children’s daily needs. While one of the boys sadly died, the money raised was eventually enough to help the surviving child and three others in similar circumstances.

kumparanDerma — with GNI’s support — has helped facilitate change through news readers’ donations, ensuring their generosity and compassion reach people across Indonesia. As we continue to expand kumparanDerma, we hope that building out donation processes through news platforms is just the beginning of the social impact we can make together.

Beta Channel Update for Chrome OS

The Beta channel is being updated to 96.0.4664.51 (Platform version: 14268.39.0) for most Chrome OS devices.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 vertical dots in the upper right corner of the browser). 

Daniel Gagnon,

Google Chrome OS 

Spaces in Google Chat can now be deleted

What’s changing 

We’re bringing the ability to delete a named space in Google Chat to the Google Workspace Business Standard and Business Starter editions. We plan to extend this capability to more Google Workspace editions next year. 

With this capability, creators of a space can fully delete it from Chat, which includes all owned contents of the space, room tasks, and files and attachments not saved elsewhere. In addition, members will no longer be able to access the space, its files, or the member list after it has been deleted. 


Deleting a space from the drop down menu

Deleting a space from the drop down menu

Who’s impacted

End users 

Why it’s important 

Through deletion, you can more easily navigate to and stay on top of your most relevant spaces and eliminate clutter in Google Chat. 

Additional details 

Important note: This feature is not available for Google Workspace editions that have Google Vault. If you upgrade from Google Workspace Business Standard or Business Starter to an edition that supports Google Vault, you will lose the ability to delete named Spaces. 

We anticipate that this feature will be available for all Google Workspace editions in 2022. We’ll provide an update on the Workspace Updates Blog when that becomes available. 

Getting started 

  • Admins: There is no admin setting for this feature 
  • End users: This feature will be available by default. To delete a space, from the dropdown menu press "Delete Space". Only the creator of the room has this ability and will delete the space for everyone. 

Rollout pace 

Availability 

  • Available to Google Workspace Business Standard, G Suite Basic and Business Starter customers 
  • Not available to Google Workspace, Google Workspace Essentials, Business Plus, Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Plus, Frontline, and Nonprofits, as well as Business customers

Announcing v202111 of the Google Ad Manager API

We're pleased to announce that v202111 of the Google Ad Manager API is available starting today. This release brings new video features including more Video Opportunity metrics and GRP settings for proposal line items.

Additionally, MCM users can now programmatically resend expired invitations using the new ResendInvitationAction. For altering revenue share or re-inviting an inactive child publisher, continue to use the ReInviteAction.

For the full list of changes for v202111 and all other active API versions, check the release notes. Feel free to reach out to us on the Ad Manager API forum with any API-related questions.

Host Google Meet meetings with up to 500 participants

Quick launch summary 

For select Google Workspace editions, users can now host meetings in Google Meet with up to 500 participants. See below for more information on availability.

500 participants in a meeting


We hope that by increasing the meeting size, it will be easier to connect and collaborate with your colleagues, clients, and customers. 


Getting started

  • Admins: No action required.
  • End users: No action required. The new participant limits will occur automatically for all meetings in your domain. If you need to host an even larger meeting, you can enable live streaming, allowing up to 100,000 viewers to watch at once.

Rollout pace


Availability

  • Available to Google Workspace Business Plus, Enterprise Standard, Enterprise Plus, and Education Plus customers
  • Not available to Google Workspace Essentials, Business Starter, Business Standard, Enterprise Essentials, Education Fundamentals, Frontline, Nonprofits, the Teaching and Learning Upgrade, or G Suite Basic and Business customers
Visit the Help Center to learn more about the participant limits for other Google Workspace editions.


Resources


Dev Channel Update for Desktop

The Dev channel has been updated to 97.0.4692.20 for Windows, Mac and Linux

A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.



Prudhvikumar Bommana

Google Chrome

Updates to the transition timeline for Classic Google Sites

What’s changing

In 2017, we announced that we would replace classic Google Sites with new Google Sites. We’re extending the previously announced timeline to make the migration process easier for Google Workspace customers. The new timeline is: 

  • Starting June 1, 2022 (previously December 1, 2021): You will no longer be able to edit any remaining classic Sites in your domain.  
  • Starting July 1, 2022 (previously January 1, 2022): Classic Sites will no longer be viewable unless they are converted to new Google Sites.

Additionally, the bulk conversion tool in the Classic Sites Manager will be temporarily unavailable as we make improvements to conversion fidelity for sites settings. We will update the Google Workspace Known Issues page when the feature is re-enabled. 

In the meantime, end-users and admins can still convert individual classic Sites to new Google Sites and use other tools in the Classic Sites Manager to make progress on migration. 

Note: This timeline change does not impact the transition for users with personal Google accounts

Who’s impacted

Admins and end-users  

Getting started

  • Admins: 
    • We recommend notifying your end-users about the updated timeline.
    • Use the Classic Sites Manager to help your users make the transition. 

  • Google Workspace end-users:
    • Users need to transition from classic to new Sites according to the new timeline outlined above. Visit our Help Center to learn how to convert a classic Site to a new Site.
    • To ensure a smooth transition, we recommend the following best practices when migrating your sites:
      • Create an archive of your classic Sites in the Classic Sites Manager so that you can refer to them later, if needed. 
      • Since sharing settings work differently in new Sites than in classic Sites, always check your sharing settings after conversion:


Availability


Manage your passes from Google Pay’s Business Console

Posted by:

Ryan Novas, Product Manager, Google Pay’s Business Console

Jose Ugia, Developer Relations Engineer, Google Pay

Last year we launched Google Pay’s Business Console, a platform that helps developers discover, integrate with, and manage Google Pay features for their businesses. Since then, integrating Google Pay products has become easier and faster, with features like a common business profile and a unified dashboard.

Today, we are adding Passes as a new section to Google Pay’s Business Console, so you can manage all your Google Pay resources from one place. You can find the new Passes section in the console’s left-hand navigation bar, and from there, access your tickets, loyalty programs, offers and other passes resources.

Google Pay’s Business Console features a more familiar and intuitive user interface that helps you reuse common bits of information, like your business information, and lets you easily navigate and discover Google Pay products, such as the Online API. Visit Google Pay’s Business Console today, and start managing your current Google Pay products, or discover and integrate with new ones.

The new Passes section in Google Pay’s Business Console lets you request access to the API and manage your passes alongside other Google Pay resources.
The new Passes section in Google Pay’s Business Console lets you request access to the API and manage your passes alongside other Google Pay resources.

Here is what early users are saying about managing Passes in the console:

“The cleaner and consistent look of Google Pay's Business Console helps us manage our Google Pay resources more intuitively." Or Maoz, Senior Director of R&D at EngagedMedia said.

The user management additions also helped EngagedMedia better represent their team in the console:

“The new user roles and controls on Google Pay's Business Console help us handle permissions more intuitively and accurately, and allow us to assign roles that better reflect our team structure more easily.”

We are committed to continuously evolving Google Pay’s Business Console to make it your go-to place to discover and manage Google Pay integrations. We’d love to hear about your experience. You can share feedback with us from the “Feedback” section in the console. We’re looking forward to learning how we can make Google Pay even more helpful for you in the future.

Learn more

Want to learn more about Google Pay?

Improving App Startup: Lessons from the Facebook App

Posted by the Google and Facebook teams. Authored by Kateryna Semenova from the Google Android team and Tim Trueman, Steven Harris, Subramanian Ramaswamy from the Facebook team.

Brown hand holding a stopwatch.

Introduction

Improving app startup time is not a trivial task and requires a deep understanding of things that affect it. This year, the Google Android team and the Facebook app team have been working together on metrics and sharing approaches to improve app startup. Google Android’s public documentation has a lot of information on app startup optimization. In addition to that we want to share how it applies to the Facebook app and what helped them to improve app startup.

There are now more than 2.9 billion people using Facebook every month. Facebook helps give people the power to build community and bring the world closer together. It is a place for people to share life’s moments, discover and discuss what’s happening, connect and nurture relationships, and help work together to build economic opportunity.

Facebook app developers are committed to ensure that people have the best possible experience and that the app works seamlessly on every device, in any country, and within different network conditions. Working together, the Google Android team and Facebook team aligned on metrics definition for app startup and best practices and shared them in this article.


Where to start

Start by measuring your startup times. This will let you know how good your user’s startup experience is, track any regressions, as well as how much to invest on improving it. At the end of the day, your startup times need to be tied to user satisfaction or engagement or user-base growth in order to prioritize your investments.

Android defines two metrics to measure app startup times: Time-To-Full-Display (TTFD) and Time-To-Initial-Display (TTID). While you can further split it into cold/warm startup times, this post will not disambiguate between them - Facebook's approach is to measure and optimize the startup time that’s experienced across all users interacting with the app (some of them will be cold, some warm).


Time-To-Full-Display

TTFD captures the time when your app has completed rendering and is ready for user interaction and consumption, perhaps including content from disk or the network. This can take a while on slow networks and can depend on what surface your users land on. Thus, it may also be helpful to show something right away and let users see progress is still happening, which brings us to TTID…


Time-To-Initial-Display

TTID captures the time for your app to draw its background, navigation, any fast-loading local content, placeholders for slower local content or content coming from the network. TTID should be when users can navigate around and get to where they want to go.

Don’t change too much: One thing to watch out for is visually shifting your app’s content between TTID and TTFD, like showing cached content then snapping it away once network content comes in. This can be jarring and frustrating for users, so make sure your TTID draws enough meaningful content to show users as much as possible of what to expect for TTFD.


Focus on user success

Your users are coming to your app for content that might take a while to load, and you want to deliver that content to them as quickly as you can.

Facebook app developers focus on a metric based on Time To Full Display (TTFD), including all content and images, because that represents the full experience of what users came to the app for. If a network call for content or an image takes a long time or fails, developers want to know so that they can improve the entire start to finish startup experience.


What’s a good target for TTID and TTFD?

Facebook’s startup metric is the percentage of app starts that they consider “bad,” which is any start that either has a TTFD longer than 2.5 seconds OR any part of startup that is unsuccessful (e.g. an image fails to load or the app crashes). Facebook focuses on driving this percentage of bad starts down either by improving successful starts that take longer than 2.5 seconds, or by fixing issues causing unsuccessful starts. 2.5 seconds was chosen based on research that showed this was meaningful to Facebook users (this also matches the Largest Contentful Paint (LCP) metric in the Web Vitals recommendations for web sites).

Including the full experience, especially of any network calls to fetch recent content, can make your TTFD startup metrics seem really slow compared to TTID. This is actually a good thing! It represents the real experience people have with your app. Improvements you make to this may drive increased usage and perception of your app’s performance for your users like it has at Facebook.

Measuring TTFD can be tricky depending on your app. If it’s too hard, it’s fine to start with Time To Initial Display (TTID). That may miss the performance of loading some of your content if you have placeholders or images, but it’s good to start somewhere even if it’s just a subset of what your users see interacting with your app every day.


Instrumenting TTID

In Android 4.4 (API level 19) and higher, logcat provides a “Displayed” value capturing the time elapsed between launching the process and the completion of drawing the first frame of the corresponding activity on the screen.

The reported log line looks similar to the following example:

ActivityManager: Displayed com.android.myexample/.StartupTiming: +3s534ms

Instrumenting TTFD

To instrument TTFD, call reportFullyDrawn() in your Activity after all your content is on screen. Be sure to include any content that replaces placeholders, as well as any images you render (be sure to count when the image itself is displayed, not just its placeholder). Once you instrument calling reportFullyDrawn(), you can see it in logcat:

ActivityManager: Fully drawn {package}/.MainActivity: +1s54ms

Recommendations From Facebook App Developers

Facebook app developers have been optimizing the app for billions of users across a multitude of devices, platforms and countries for many years. This section shares some of the key lessons that Facebook app developers applied to optimize their app startup.

  • Understand first, then optimize - Once you’ve defined a good startup metric, instrumenting it in your app can allow you to understand and prioritize improving your startup performance to deliver a better experience for your users. By starting with instrumentation, you can prove there is an opportunity, you can identify where to focus your efforts, and you can see how much you’ve improved things as you start optimizing.
  • Fix crashes first - After you’ve instrumented your starts, make sure your app starts reliably. Crashes during startup are the most frustrating and quickest way to get users to abandon your app; measure and address these first.
  • Don’t forget about functional reliability - Also, don’t forget about functional reliability: did your app show some content quickly, but fail to load all content or take a long time to load images? Your app may be starting fast, but failing to function as a customer wants (e.g., if tapping a button doesn’t work) - this worsens the customer experience.
  • Aim for consistency - Inconsistent performance is more frustrating than consistent but slower than average startup performance. Take a look at the long tail of your starts and see if there are any fixes or ways to mitigate these slow starts. Don’t forget to look at your offline and lossy network startup performance starts.
  • Parallelize work - Most modern phones have at least 4 CPU cores, so there's room to multitask! Don’t block the main thread unless you have to. Move I/O and non-critical paths work off the main thread.
  • Be lazy - Once you’ve got a reliable and consistent startup, take a look through everything you’re doing to display your first visible screen of content—is there any work in there that’s not necessary? Remove, delay, or move to the background any work that’s not directly related to a startup experience until after the app has started (but be careful to watch your app’s responsiveness as a counter-metric). Try to keep your app’s onCreate() as lightweight as possible.You can also benefit from using the Jetpack App Startup library to initialize components at application startup. When doing so, make sure to still load all the required modules for the starting activity, and don’t introduce flickers where the lazily-loaded modules become available.
  • Show progress, but don’t shift the UI too much - Try not to shift what’s presented to users around too much during startup. It’s frustrating to try to tap on something, only to have it change and do the wrong thing. This is similar to the Cumulative Layout Shift (CLS) concept from web vitals.For network-based loads with indeterminate durations, dismiss the splash screen and show placeholders for asynchronous loading. Consider applying subtle animations to the content area that reflect the loading state. Make sure that the loaded content structure matches the skeleton structure as closely as possible, to allow for a smooth transition once the content is loaded.
  • Cache it - When a user opens your app for the first time, you can show loading indicators for some UI elements. The next time a user comes to your app, you can show this cached content while you load more recent content. Ever seen your FB feed update after your app is loaded as we fetch updated content from the network? Cutting network time out of your startup, if you can, is a great way to speed things up and introduce a more consistent startup performance experience. However, showing cached content may not always be the best approach as the next point suggests, and this is why it is important to measure what works better for the customer.
  • Go fast & slow - Slightly slower, fresh & relevant content may be better than fast stale content. Showing fresh content to your users may be more valuable than starting up super fast only to refresh the content soon after startup. Evaluate whether it’s better to optimize for showing fresh content as quickly as possible with a timeout for showing stale content if the network is slow, or to just show what’s available immediately if the network is offline.
  • Consistent session start surface - You may find it helpful to reset users to your main content after your app is in the background for a long time. Devices can keep your app in memory for a long time.
  • Look at the inner workings - Trace and actually look at what’s executing during startup or attach a debugger—you might be surprised what you find! Once you’ve got a good understanding of the critical path for your starts, you can efficiently optimize your app’s performance. Invest in your biggest opportunities because you’ll know where they are.
  • Make it easy to do the right thing - Sometimes developers use bad patterns and architecture because there are too many ways to do things. Don’t be afraid to consolidate the patterns used in your app, and optimize them so it’s easy to pick how to complete a task and for that task to be performant. A good example of this would be eager code execution patterns. If you’re running code for content that appears after the first full screen draw, you’re by definition hurting performance. Lazy code execution is a good pattern. Only run code eagerly when it is blocking the critical path for your startup.

Recommendations From Google Android Team

Google Android team’s recommendations to measure and optimize app startup are available in the public docs: App startup time. This section summarizes some of the key points that ties into Facebook’s recommendations above that all Android app developers should consider.

  • TTID and TTFD are important metrics for app startup. Google Android ranks apps with TTID in the Play Console. TTFD is a super-set of TTID, so any improvements in TTID should apply to both metrics.
  • Call reportFullyDrawn() to report TTFD and to let the system know that your activity is finished rendering. To improve app startup, the Android system adjusts optimizations to prioritize work that happens before reportFullyDrawn() is called. Calling this method when your app is in fully usable state will improve your app startup time. Every application should be using this API! And don’t forget to measure it.
  • Monitoring your app's technical performance with Android vitals will help you improve your app startup. Using the Play Console, you can view data to help you understand and improve your app's startup time and more.
  • We know a bug in production is much more expensive to fix compared to a fix at development time. The same applies to performance as well. Setup your application for measuring app startup early with local performance tests by using Jetpack Macrobenchmark: Startup.
  • Instrumenting is key to understanding and optimizing startup as we’ve discussed above. Android offers system tracing that can help to dig deep and diagnose app startup problems.
  • The Jetpack App startup library provides a straightforward, performant way to initialize components at application startup. Both library developers and app developers can use this library to streamline startup sequences and explicitly set the order of initialization. You can use this library to set which components load at what points during startup.
  • A typical issue that affects app startup is doing too much during initialization - for example, inflating large or complex layouts, blocking screen drawing, loading and decoding bitmaps, garbage collection, etc.

Recap

This article captures some key measures of startup and best practices to improve startup experience that helps drive user engagement and adoption for the Facebook Android app. It also shares metrics, libraries and tools recommended by the Google Android team. Any Android app stands to benefit from applying some of the strategies described in the document. Measure and make your app startup delightful and fast for your users!

Learning on the go with Classroom on Android

The past two years have seen a rapid rise in the use of educational tools by teachers and students everywhere – driven primarily by the need for distance learning. Now that educators and schools have experienced the benefits of these tools, their use continues to grow, even as many schools return to in-person and hybrid learning.

While this industry-wide shift to more hours online can be an opportunity for many, it can also be a challenge for some teachers and students, especially in places where communities rely heavily on mobile phones or because of limited internet connectivity.

Google Classroom and other Google Workspace for Education tools are designed to be used anytime, anywhere and on any device. In many countries around the world, the investments we’ve made in our mobile apps have already helped tens of millions of students keep learning remotely by using personal or shared phones.

With this in mind, we’ve launched three new features to improve access to Classroom in mobile-first and limited internet conditions.

Use Classroom when you’re offline

With the Classroom Android app, students can now continue to work and learn,, even when offline or when faced with spotty internet connections. Now students have the option – when they are online – to download assignment attachments to their phone for viewing and editing later when they are offline.

Although the ability to submit and download assignments, or pose questions and get answers, still requires an internet connection, offline mode gives students the flexibility to take schoolwork anywhere and keep learning on the go.

Gif showing how to make a file available offline in Google Classroom

Scan and upload multiple pictures with ease

Many more students today are taking and submitting photos of assignments that are easier and more ideal to complete by hand — like math or science homework.

The Classroom Android app now has a handy scan feature, which students can use to capture and combine multiple pictures into a single file. The upload action in the app now allows for easy selection and submission of multiple different types of files in a single step.

These improvements will help students submit their assignments more efficiently, even if they’re in a rush to meet a deadline.

Gif showing smart image capture in Google Classroom

Easier grading on mobile for teachers

For teachers who are primarily using a phone, we’ve made big updates to the experience of viewing and grading assignments on the Classroom Android app.

Teachers can now seamlessly swipe between students and assignments and add grades on the app. Teachers can also give feedback to students by enabling comments on individual files, even if there are multiple files in an assignment. They can comment on a file or highlight specific passages to leave more targeted feedback pinpointing improvement areas for students.

Gif of grading on mobile in Google Classroom

The vast majority of people who are new to the internet today use phones rather than computers. With these new Classroom Android app features, we’re providing students and teachers everywhere with a better mobile experience.

We are fully committed to investing in helping educators and schools spark learning and close equity gaps with more supportive, inclusive, and productive educational tools