Author Archives:
Android-based all-in-one room devices from Neat and Logitech certified for Google Meet
Getting started
- Admins: The Logitech Rally Bar 65 and the Neat Board 32, 50, and Pro are available for order starting today through authorized partners. Firmware updates enabling native Google Meet support will begin rolling out immediately.
- End users: There is no end user setting for this feature.
Rollout pace
- Rapid Release and Scheduled Release domains: Available now
Availability
- Available to all Google Workspace customers with Google Meet hardware devices
Resources
- Google Workspace Admin Help: Google Meet hardware certification program for ChromeOS and AOSP
- Logitech: Rally Board 65
- Neat: Neat Board Series
Source: Google Workspace Updates
Whiteboarding add-ons now available for Android-based Google Meet hardware
- Figma
- Lucidspark
- Miro
Getting started
- Admins: To use whiteboarding with room hardware, admins must first install the Figma, Lucidspark, or Miro add-on from the Google Workspace Marketplace. These add-ons can be installed for OUs with room devices or your entire domain. Visit the Help Center to learn more about installing Marketplace apps for your organization.
- End users: If their admin allows it, users can install the Figma, Lucidspark, and Miro add-ons from the Google Workspace Marketplace. Visit the Help Center to learn how to use add-ons with Google Meet.
Rollout pace
- Rapid Release and Scheduled Release domains: Available now
Availability
- Available to all Google Workspace customers with Google Meet hardware devices
Resources
- Google Meet Hardware Help: Use add-ons with Google Meet on Desk 27 and Board 65
- Google Meet Help: Use add-ons with Google Meet
- Google Workspace Admin Help: Install Marketplace apps for your organization
Source: Google Workspace Updates
Changes to Offline Click Conversion Import Support in the Google Ads API
Starting on June 15, 2026, the Google Ads API will no longer accept new adopters of offline conversion imports, including enhanced conversions for leads. As with our previous announcements for session attributes and IP address, and Customer Match, Data Manager API is now the primary API for importing offline conversions.
Developers who have not adopted offline conversion imports or Enhanced conversion for leads, or have not imported offline conversions between December 2025 and May 2026, will receive an error if they attempt to import offline conversions. Developers who have already adopted offline conversions or Enhanced conversions for leads can continue importing using the Google Ads API while they integrate with the Data Manager API.
See our migration guide for Google Ads API users to start integrating with the Data Manager API.
Technical details
- Developers will be allowlisted by their developer token.
- Once this change is rolled out, new adopters will receive the error
CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATUREwhen attempting to use theConversionUploadService.UploadClickConversionsmethod. - See the documentation for integrating with the Data Manager API for offline conversion imports for Google Ads API users.
Reach out to the Google Ads API support or Data Manager API support channels if you have any questions.
If you have any questions or want to discuss this post, please reach out to us on our “Google Advertising and Measurement Community” Discord server.
Source: Google Ads Developer Blog
How FotMob leveraged cross-device discovery to score record Wear OS adoption
FotMob recently experienced its largest single-day increase on Wear OS among its installed audience in 5 years, at 2-3x the daily average. The secret? A simple cross-device installation flow that helps users discover their Wear OS app directly from their phone.
FotMob is one of the world’s most popular football (some call it soccer!) platforms, known for its mobile app that provides real-time scores, statistical analysis, and news.
FotMob is available on mobile and Wear OS
In addition to the mobile app, FotMob is available on Wear OS, allowing users to keep on top of the latest scores and results directly from their wrist.
“Many FotMob users follow matches live, and that often happens when they’re not actively using their phone,” says Roy Solberg, Android Tech Lead at FotMob. “Wear OS gives fans a quick way to glance at scores, match events, and updates directly from their wrist, so we saw it as a natural extension of the FotMob experience.”
By providing a smooth experience across different form factors, FotMob ensures that their users can continue to get the most from their platform, in the most convenient form. This includes ensuring that settings and preferences–such as favorite teams–are synced across devices.
The Discovery Gap
Despite many FotMob users having a Wear OS device, FotMob realized that some users might not be aware of the Wear OS app. This led the team to consider technical options for how to educate users about and ultimately install the Wear OS app directly from within the core phone app.
Fortunately, the Wearable library on Android and Wear OS provides exactly the building blocks that FotMob needed to create an in-app experience that would allow their users to do just that.
Detecting Eligible Wear OS Devices
Within the FotMob phone app, the team used the NodeClient to identify connected Wear OS devices - candidates for the Wear OS app:
val connectedNodes = nodeClient.connectedNodes.await()
Additionally, the team defined a capability within the Wear OS app, indicating that FotMob was installed on the device. This is defined as an XML resource in the Wear OS package, and then queried within the phone app:
val nodesWithApp = capabilityClient
.getCapability(CAPABILITY_WEAR_APP, CapabilityClient.FILTER_REACHABLE)
.await()
.nodes
By looking for only nodes without the capability, the team ensured the FotMob phone app only lists Wear OS devices without the app.
Initiating the install flow
The FotMob team designed an educational half-page prompt that quickly makes the user aware of the opportunity, allowing them either to kick off the install flow, or dismiss it. This featured a prominent screenshot of the Wear OS experience, allowing the user to immediately see how the app might look on their watch.
To start the installation, the app uses the RemoteActivityHelper API, to launch the Play Store on the watch:
val remoteActivityHelper = RemoteActivityHelper(context)
remoteActivityHelper.startRemoteActivity(
Intent(Intent.ACTION_VIEW)
.setData("market://details?id=${context.packageName}".toUri())
.addCategory(Intent.CATEGORY_BROWSABLE),
nodeId
).await()
Results
“The Wearable APIs made the implementation straightforward,” says Roy. “Being able to detect connected devices and query capabilities meant we could quickly determine whether the watch app was already installed. From there it was mostly about designing a prompt that felt helpful to users rather than intrusive.”
The rollout of the cross-device installation feature saw the largest single-day increase in FotMob’s installed audience on Wear OS in 5 years, 2-3x higher than the normal install rate. Within 48 hours of the rollout reaching 100%, the watch app gained over 1,500 new installs¹.
“Within the first 10 days we saw a significant jump in new Wear OS installs,” says Roy. “The watch app has been around for years, but this confirmed that many users with compatible devices simply weren’t aware it existed.”
Evolving cross-device installs
In addition to the solution employed by FotMob, we’ve now launched a library to make it even easier to implement these cross-device installation journeys through the In-App Install Prompts library.
The following is an example of adding an installation prompt at the appropriate point in your app:
val crossDevicePromptManager = CrossDevicePromptManagerFactory.create(activity)
val request = CrossDevicePromptInstallationRequest.create()
try {
val info = crossDevicePromptManager.requestInstallationPromptFlow(request).await()
crossDevicePromptManager.launchPromptFlow(activity, info).await()
} catch (e: CrossDevicePromptException) {
Log.e(TAG, "Cross-device prompt failed with error: ${e.errorCode}", e)
}
Next steps: Start building your own cross-device journey today
Dive into the DataLayer sample to learn more about how to add cross-device functionality to your app, and explore the new In-App Install Prompts library, providing you with options for how you help your users achieve cross-device installation.
[1]. Install data from Play Developer Console
Source: Android Developers Blog
From policy to practice: supporting the future of AI in education
Explore insights from our global AI Policy Labs on building a safe, equitable and teacher-led future for every learner.
Source: The Official Google Blog
A new resource for optimizing for generative AI in Google Search
As people increasingly gravitate to generative AI experiences and find information in new ways, we're publishing a new resource to help website owners, SEOs, and developers understand how to optimize their content for appearance in generative AI features in Search, and in turn Google Search overall.
Source: Google Search Central Blog
Announcing Genkit Middleware: Intercept, extend, and harden your agentic apps
Source: Google Developers Blog
Bring Native Visibility to Your VoIP App Experience with Telecom’s Latest Alpha
Posted by Nataraj KR, Android Developer Relations Engineer
ConnectionService API to simplify VoIP integration. CallsManager streamlines call lifecycle management and audio routing while enabling interactions with remote surfaces like smartwatches, Bluetooth devices, and Android Auto. Additionally, it supports call extensions for richer features—such as participant handling, custom icons, call silencing and meeting summary on remote surfaces—all while maintaining backward compatibility down to Android O (API Level 26).
Building on this foundation, Jetpack Telecom v1.1.0 brings native-level visibility and convenience to third-party VoIP apps. This latest release introduces powerful new capabilities, including unified call history, call log exclusion, and native callback functionality, making call management more seamless than ever for users.
Here is a closer look at what’s new and how you can implement these features in your applications.
Bridging the Dialer Gap: Unified Call History and Callbacks
Historically, users have had to open individual third-party apps to view their VoIP call history or return a missed call. With the new integrated call logging feature, system dialer apps can now surface call logs directly from third-party VoIP apps.
Even better, users can now initiate a callback to a VoIP contact straight from their native system dialer, streamlining the communication experience.
How it works:
To opt-in to this feature, do the following:
- Register for Callbacks: Your VoIP app must register a new system-protected intent:
TelecomManager.ACTION_CALL_BACK. - Log the Call: Use
TelecomManager.addCall(or related Jetpack APIs) to ensure the system automatically logs the call. - Manage Call IDs: When a call is registered,
CallControlScope.getCallIdprovides a unique UUID. The system dialer uses this exactTelecomManager.EXTRA_UUIDwhen creating the callback intent. - Initiate the Callback: Your application must store and manage the call details associated with this UUID. When the system dialer fires the callback intent with the
EXTRA_UUID, your app can seamlessly resolve the ID and initiate the call with the correct details.
Fine-Grained Control: Call Log Exclusion
We recognize that not every VoIP call should be visible in the system's native dialer history. Whether for privacy reasons, ephemeral communication, or app-specific behavior, you need control over what gets surfaced.
To address this, we are introducing Call Log Exclusion. You can now prevent specific calls from being logged into the system call logs by setting the isLogExcluded boolean to true within CallAttributesCompat. By configuring this flag, the call remains completely hidden from the system logs, and the native dialer will not display it.
Important Note on Compatibility
These integrated logging and callback features are available for devices running Android 16.1 (SDK 36.1) and higher. Refer here to compile your app with Android SDK 36.1.
Get Started
We encourage developers to test these integrations and explore how unified call history and callbacks can improve the daily user experience of your VoIP applications.
To help you get started and see these APIs in action, we have put together a sample application demonstrating the new integrations.
View the sample app here: https://github.com/android/platform-samples/tree/main/samples/connectivity/telecom
Check out the release notes and documentation to start implementing these features today!
Note: Although Jetpack Telecom v1.1.0 APIs are accessible for integration, the system dialer's ability to render native call logs is being introduced in phases, beginning with Google Meet. To safeguard against spam, native dialers utilize secure package allowlists to control VoIP display. For local testing of your callback and logging implementations, we recommend using the open-source Telecom Sample Dialer app as your emulator environment.
Source: Android Developers Blog
Chrome Dev for Android Update
Hi everyone! We've just released Chrome Dev 150 (150.0.7838.2) for Android. It's now available on Google Play.
You can see a partial list of the changes in the Git log. For details on new features, check out the Chromium blog, and for details on web platform updates, check here.
If you find a new issue, please let us know by filing a bug.
Chrome Release Team
Google Chrome







