Fact-checked by Grok 2 weeks ago

Google Cloud Messaging

Google Cloud Messaging (GCM) was a free cross-platform service developed by that enabled third-party application developers to send notification messages and data payloads from server applications to client apps on devices, devices, and web applications. Launched in 2012 at as the successor to the deprecated Android Cloud to Device Messaging (C2DM) service, GCM provided a scalable infrastructure for reliable push messaging without requiring developers to manage their own servers. By 2016, GCM was delivering over 150 billion messages daily across , , and web platforms, supporting features such as single-device targeting via unique registration tokens, device group messaging for multi-device users, and topic-based subscriptions allowing unlimited subscribers for broadcast-style notifications. Key capabilities included downstream messaging with payloads up to 4 KB, upstream messaging from devices to servers, and high reliability, with 95% of notifications to connected devices delivered within 250 milliseconds even under variable network conditions. In 2016, Google integrated GCM into Firebase as Firebase Cloud Messaging (FCM), enhancing it with additional tools like improved analytics, a notifications console, and better integration with other Firebase services. On April 11, 2018, Google announced the deprecation of GCM's server and client APIs, urging developers to migrate to FCM for continued support and new features; the GCM APIs were fully removed on April 11, 2019, though existing GCM registration tokens remained compatible with FCM.

History and Development

Origins and Launch

Google Cloud Messaging (GCM) emerged in 2012 as a response to the growing need for an efficient push notification system on devices, particularly to counter the limitations of constant polling that drained battery life and increased data usage in mobile applications. Prior to GCM, developers relied on the beta-stage Cloud to Device Messaging (C2DM) , introduced in 2010, which imposed restrictions such as a 1KB limit per and daily quotas of 200,000 s per sender account (with the option to request higher limits). GCM addressed these constraints by offering a free, quota-free alternative that enabled scalable data delivery from servers to devices, mirroring the capabilities of Apple's Notification (APNs) launched in 2009 but tailored for the open ecosystem. Officially announced and launched at on June 27, 2012, GCM marked the official deprecation of C2DM the day prior, positioning it as the evolved standard for push messaging in Android 4.1 and earlier versions back to Android 2.2 Froyo. Developed by engineers within the Android team, the service was designed to integrate seamlessly into the platform, supporting third-party apps in categories like , , and games by allowing real-time notifications without requiring persistent server connections on the device side. At launch, GCM's core features included support for downstream messaging from application servers to devices, using unique device registration for targeted , and payloads up to 4KB to accommodate notification , commands, or small updates. This token-based simplified device identification and ensured reliable message routing through Google's cloud infrastructure, while the increased payload size over C2DM enabled more versatile use cases without compromising .

Evolution and Key Updates

Following its initial launch in 2012, Google Cloud Messaging (GCM) underwent significant enhancements starting in 2013 to improve bidirectional communication and scalability. In May 2013, at , Google announced the integration of GCM with , enabling more reliable message delivery through persistent connections that supported up to 200,000 messages per second with an average latency of 60 milliseconds. This update also introduced upstream messaging, allowing devices to send data directly to application servers, facilitating features like chat acknowledgments and real-time syncing. Additionally, notification sync was added as a new to streamline notification handling across devices. By 2014 and 2015, GCM expanded its capabilities to handle more complex use cases. Support for larger payloads was enhanced, with notification messages limited to 2 KB and data messages up to 4 KB, enabling richer content delivery such as detailed updates or media references without requiring multiple requests. Topic messaging, which allows broadcasting to groups of subscribed devices for targeted notifications (e.g., news alerts to interested users), was refined with unlimited free topics and new server-side APIs for batch subscriptions and management. Priority levels were introduced to differentiate message urgency, with high-priority messages ensuring faster delivery for time-sensitive content while normal priority suited routine updates. These changes were bolstered by deeper integration with Google Play Services for improved reliability and reduced dependency on custom implementations. A major milestone came in May 2015 with the release of GCM 3.0 at , which simplified device registration across , , and , enhanced error handling through better retry mechanisms, and added built-in analytics for monitoring delivery rates and performance. This update also introduced support for devices and web applications, enabling unified messaging across platforms. In 2015, with the release of 6.0 , GCM was updated to improve compatibility with Doze mode, a new battery optimization feature, ensuring message delivery during idle periods without excessive power drain by leveraging high-priority messages to wake devices when necessary. By mid-2016, GCM's scale had grown dramatically, reaching over two billion active devices and delivering 170 billion messages daily.

Technical Architecture

Core Components

Google Cloud Messaging (GCM) relies on a distributed comprising server-side , client-side integrations, and standardized protocols to facilitate reliable message delivery between applications and devices. At its foundation, the system involves third-party application servers managed by developers, Google's GCM connection servers for routing and queuing, and client applications on devices that receive and process messages. This setup allows for efficient downstream messaging from servers to devices and limited upstream communication from devices to servers. The components form the backbone of GCM's messaging pipeline. Third-party application s, operated by developers or service providers, initiate message transmission by sending requests to Google's infrastructure using either HTTP/HTTPS or XMPP protocols. These s handle application logic, such as composing message payloads, and authenticate with GCM using API keys obtained from the Console. Google's GCM connection s, including the HTTP at gcm-http.googleapis.com/gcm/send and the XMPP at gcm-xmpp.googleapis.com:5235, manage the receipt, queuing, and forwarding of messages to target devices, ensuring scalability and reliability even when devices are offline. The XMPP-based connection supports persistent, bidirectional connections for applications, while the HTTP suits simpler, request-response scenarios. On the client side, GCM integration occurs within applications via the library, which provides the necessary APIs for registration and message handling. The client registers with GCM servers upon installation or launch, obtaining a unique registration —initially through the GoogleCloudMessaging.register() method and later via the Instance ID service for more secure, scoped tokens that identify specific instances. This is sent to the third-party application server for targeting future messages. The library manages background connections, battery-efficient delivery, and invocation of callbacks like onMessageReceived() to process incoming payloads, abstracting low-level network details from developers. Devices require 2.2 or higher and for full functionality. GCM employs straightforward protocols to ensure interoperability and ease of implementation. Message payloads are formatted in , supporting up to 4KB of data per message, with fields for targeting (e.g., registration tokens or topics), collapse keys for deduplication, and custom data. HTTP requests use methods over for one-way downstream sends, while XMPP enables persistent streams via XML stanzas encapsulating payloads, facilitating acknowledgments and upstream messages up to 4KB. XMPP usage was later deprecated in favor of HTTP in successor systems, but it was integral to GCM for applications needing low-latency, . Security is embedded throughout GCM's components to protect message integrity and confidentiality. All communications between third-party servers and GCM connection servers, as well as between GCM servers and client devices, mandate SSL/TLS encryption to prevent interception and tampering. Authentication relies on server keys included in HTTP headers (e.g., Authorization: key=API_KEY) or XMPP SASL PLAIN mechanisms, ensuring only authorized senders can dispatch messages. Client registrations use device-specific credentials tied to accounts (for pre-Android 4.0.4 devices), further securing issuance. These measures align with standard practices, though developers are advised to store API keys securely on their servers.

Message Flow and Delivery

The registration process in Google Cloud Messaging (GCM) initiates when a client application on an Android device contacts the GCM servers, typically upon app installation or periodic token refresh, by broadcasting an intent such as com.google.android.c2dm.intent.REGISTER that includes the sender ID (project number) and application ID (package name). The GCM servers validate the request and respond via a broadcast intent com.google.android.c2dm.intent.REGISTRATION, providing a unique registration token that identifies the device and app instance for future message routing. The client app then securely transmits this token to the application server for storage, enabling targeted message delivery. In the downstream flow, the application server transmits messages to GCM servers using an HTTP POST request to the endpoint https://gcm-http.googleapis.com/gcm/send, including authentication via an API key, one or more target registration tokens, and a payload limited to 4 KB of data or notification content. Upon receipt, the GCM servers route the message to the intended device, prioritizing delivery over a persistent TCP connection established by Google Play services on ports 5228, 5229, or 5230; if the connection is unavailable, GCM falls back to queuing the message for deferred delivery once the device reconnects. For upstream flow, the client uses the GoogleCloudMessaging.send() method to transmit messages to GCM servers over the persistent connection (ports 5228-5230), specifying the sender ID, a unique for tracking, an optional time-to-live, and data payload, along with a collapse key to group similar messages for deduplication if multiple are pending. GCM then forwards the upstream message to the application server via the Cloud Connection Server (), an XMPP endpoint at gcm-xmpp.googleapis.com:5235 to which the server maintains a persistent connection. The server must respond with an acknowledgment using the to confirm receipt and halt further retries. GCM operates on a model, lacking absolute guarantees of receipt or order, with messages carrying a configurable time-to-live () parameter defaulting to 4 weeks (2,419,200 seconds), beyond which expired messages are dropped. Common failures, such as invalid or expired registration , trigger error responses like NotRegistered or InvalidRegistration, requiring the to unregister the and re-register ; network or server-side issues, meanwhile, invoke handling via canonical IDs for updates or immediate retries for transient errors. During offline periods, GCM servers automatically queue incoming downstream messages for the affected , attempting delivery upon reconnection while applying for retrying failures, such as HTTP 500 or 503 errors from the server endpoint. For upstream messages, unacknowledged transmissions prompt GCM to retry with backoff, and collapse keys ensure deduplication by retaining only the latest message in a group during queuing. Registration tokens, serving as core identifiers in these flows, must be refreshed periodically to maintain validity amid device changes or app updates.

Implementation Guide

Note: Google Cloud Messaging (GCM) is deprecated and its APIs were removed on April 11, 2019. The following describes legacy implementation details for historical reference. Developers are urged to use Firebase Cloud Messaging (FCM) for new or ongoing projects; see the Deprecation and Transition section for migration guidance.

Server-Side Integration

Server-side integration for Google Cloud Messaging (GCM) involved implementing HTTP/JSON requests from an application server to send messages to registered Android devices. Developers used the HTTP server protocol to issue POST requests to the endpoint https://gcm-http.googleapis.com/gcm/send, which allowed for both single-device and multicast messaging. The request body had to be valid JSON, including an Authorization header with the format key=YOUR_SERVER_API_KEY, where the API key was obtained by enabling the GCM API in the Google Developers Console and creating a server key under APIs & auth > Credentials. GCM supported two primary message types: notification messages and data messages. Notification messages included fields like title and body, which the Android system automatically displayed to the without requiring intervention; for example, a JSON payload might specify "notification": {"title": "Update Available", "body": "New version released"}. Data messages, in contrast, consisted of custom key-value pairs under a data object, such as "data": {"score": "42", "time": "10:30"}, which the client application processed upon receipt. Both types could be combined in a single request, but the total size was limited to 4 KB. For delivery, the registration_ids parameter accepted an array of up to 1,000 device registration tokens, enabling efficient broadcasting to multiple devices in one call; this replaced the single registration_id for individual sends. Authentication relied on the server , which had to be kept secure and not in client . If the key was invalid or missing, the server returned a 401 Unauthorized with a response like {"error": "Unauthorized"}. Similarly, malformed or invalid parameters triggered a 400 Bad Request response, such as {"error": "InvalidJson"} for syntax issues or {"error": "MismatchSenderId"} if the sender ID did not match the project's configuration. Responses included a message_id for successful deliveries and a canonical_ids count indicating refreshed registration tokens, which developers should monitor to update stored tokens and avoid future delivery failures. To ensure reliable messaging, best practices included assigning a unique message_id in requests to support idempotency, allowing the server to deduplicate retries if a response was lost; for instance, including "message_id": "m-123" enabled checking against response message_id values. Developers should also handle IDs by replacing old tokens with new ones when canonical_ids exceeded zero in the multicast response, preventing undelivered messages due to token expiration. These measures, combined with adherence to general rate limits to avoid throttling (GCM supported high volumes, up to millions of messages daily per project, without a strict per-second cap), optimized delivery and error handling in production environments.

Client-Side Setup on Android

To implement Google Cloud Messaging (GCM) on the client side in an Android application, developers had to first integrate the necessary library and configure the app's manifest file to enable message reception and device registration. The process involved adding the Google Play Services GCM dependency to the project's build.gradle file, typically as implementation 'com.google.android.gms:play-services-gcm:17.0.0', which provided the core APIs for GCM functionality including token generation and message handling. This dependency required Google Play Services to be installed on the device and ensured compatibility with Android API level 8 or higher. Additionally, the AndroidManifest.xml had to declare permissions such as android.permission.INTERNET for network access, android.permission.WAKE_LOCK to keep the device awake during message processing, and com.google.android.c2dm.permission.RECEIVE to authorize receipt of cloud-to-device messages. A custom permission like <permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature"/> was also added to secure message reception, along with entries for a broadcast receiver (e.g., <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> with intent filters for com.google.android.c2dm.intent.RECEIVE and com.google.android.c2dm.intent.REGISTRATION) and services for handling registration and messages. Registration began after manifest setup, where the app obtained a unique registration from Google's servers to identify the device instance for targeting. Developers created an InstanceIDListenerService subclass (e.g., MyInstanceIDListenerService) to listen for token refresh events, declared in the with <intent-filter><action android:name="com.google.android.gms.iid.InstanceID"/></intent-filter>. To acquire the , an IntentService (e.g., RegistrationIntentService) was implemented to call InstanceID.getInstance(context).getToken(senderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null) asynchronously, where senderId was the project's numerical ID from the Google Developers Console. The resulting string was stored locally in SharedPreferences for persistence and sent to the via HTTP POST for association with the user account; if registration succeeded, a flag like SENT_TOKEN_TO_SERVER was set to avoid redundant requests on restarts. This served as the for downstream messages and had to be refreshed if invalidated. Message handling occurred through a subclass of GcmListenerService (e.g., MyGcmListenerService), registered in the manifest as <service android:name=".MyGcmListenerService" android:exported="false"> <intent-filter> <action android:name="com.google.android.gms.gcm.MESSAGE_RECEIVED"/> </intent-filter> </service>, which overrode the onMessageReceived(String from, Bundle data) method to process incoming payloads. In this method, the app extracted data from the Bundle extras (e.g., data.getString("message")), determined if the message required foreground display or background processing, and used NotificationManager to create and show notifications for user-visible alerts, such as:
java
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("GCM Message")
    .setContentText(message);
NotificationManager manager = (NotificationManager) getSystemService([Context](/page/Context).NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
For high-priority messages, the service could also invoke an IntentService to perform additional tasks like without waking the main thread. Errors during reception, such as network issues, were logged via Log.e for . Token management ensured reliable delivery by handling refreshes and updates, as tokens could become invalid upon app reinstalls, device restores, security changes, or other events. The onTokenRefresh() method in the InstanceIDListenerService subclass triggered a new registration flow, re-obtaining the token via InstanceID.getToken() and updating the immediately to prevent message loss; this method was invoked automatically by the GCM framework. Developers had to check the stored token on launch or after updates—if absent or the refresh flag was set—reregister and resend it to the , using keys like TOKEN in SharedPreferences for retrieval (e.g., getString(TOKEN, null)). Failure to manage tokens could result in undelivered messages, so apps should implement retry logic for sends during registration.

Deprecation and Transition

Announcement and Timeline

Google announced the deprecation of Google Cloud Messaging (GCM) on April 11, 2018, through an official post on the Google Developers Blog, stating that the service would be sunsetted in favor of Firebase Cloud Messaging (FCM) to provide developers with a more integrated and feature-rich platform. The announcement emphasized that GCM's server and client APIs were deprecated effective immediately, with full removal scheduled for April 11, 2019, giving developers one year to transition. In April 2019, Google extended the shutdown timeline slightly, confirming that key GCM endpoints would be discontinued by May 29, 2019, to allow additional time for migration while reiterating that no further support or updates would be provided beyond this date. During this period, issued repeated warnings to app developers via official channels, urging immediate upgrades to avoid disruptions, as GCM would cease to function entirely after the cutoff. The primary reasons for deprecating GCM centered on aligning it with the broader Firebase ecosystem, which offered improved , enhanced , and seamless integrations with other Google services like remote configuration and app indexing—features not available in the legacy GCM framework. This shift was part of Google's strategy to consolidate developer tools under , eliminating redundant services and focusing innovation on FCM, which had already incorporated GCM's core functionality since its launch in 2016 while adding capabilities such as a unified notifications console and better message targeting for user re-engagement. No new features were added to GCM following the 2018 announcement, marking the end of its active development lifecycle.

Migration to Firebase Cloud Messaging

(FCM) serves as a direct successor to Google Cloud Messaging (GCM), designed to be a that maintains compatibility with GCM's core infrastructure. Existing GCM registration tokens continue to function seamlessly with FCM, allowing developers to send messages to current users without immediate disruption during the transition. However, to fully leverage FCM's capabilities and ensure long-term support, applications must upgrade to the SDK, as GCM libraries are no longer maintained. The migration process begins on the client side by replacing the GCM library with the SDK. For Android applications, developers should add the Firebase BoM () to their project-level build.gradle file and include the com.google.firebase:firebase-messaging dependency in the app-level build.gradle, such as version 25.0.1 or later. Client code updates are minimal: replace GoogleCloudMessaging imports with FirebaseMessaging, and use FirebaseMessaging.getInstance().getToken() to retrieve tokens, which will initially match existing GCM tokens but generate new FCM-specific ones upon SDK upgrade. This ensures while enabling access to new features like improved token refresh handling. On the server side, update the messaging endpoint from GCM's https://android.googleapis.com/gcm/send to FCM's https://fcm.googleapis.com/fcm/send for the HTTP protocol, or migrate to the more secure HTTP API at https://fcm.googleapis.com/v1/projects/{project_id}/messages:send. keys from GCM projects can be reused initially, but for the API, generate a service account key via the Console under Project Settings > Service Accounts. Applications using the protocol must transition to , as the APIs were deprecated on June 20, 2023, and fully shut down starting July 22, 2024, after which they return errors for all requests. Key differences in FCM include cross-platform support for web and in addition to , enabling unified messaging across ecosystems without separate GCM implementations. Payload sizes are expanded to 4096 bytes for most messages (2048 bytes for topic messages), compared to GCM's stricter limits, allowing richer data transmission. The HTTP v1 introduces OAuth 2.0 authentication for enhanced security, deprecating the legacy XMPP and plain HTTP methods used in GCM. For managing the transition, use the Firebase Console to import existing GCM projects, monitor token lifecycle, and test messages via the Notifications composer. Post-shutdown of legacy APIs on July 22, 2024, all servers must use the v1 endpoint to avoid delivery failures, with the console providing analytics for verifying migration success.

Adoption and Impact

Real-World Applications

Google Cloud Messaging (GCM) was widely adopted by major applications for delivering push notifications on devices, enabling efficient real-time communication without constant polling. For instance, Google's own app utilized GCM to send email alerts, allowing users to receive instant notifications for new messages directly on their devices. Similarly, messaging platforms like integrated GCM for chat notifications, combining it with XMPP for reliable delivery of incoming messages even when the app was not in the foreground. In gaming, titles such as from employed GCM to notify players of in-game events like attacks or resource updates, enhancing engagement in competitive multiplayer environments. Social media apps, including (now X), leveraged GCM for news feed updates and mentions, ensuring timely alerts that drove user interaction. Location-based services like incorporated GCM for ride alerts and geofencing notifications, while file-syncing tools such as used it for background alerts, informing users of file updates without draining life through inefficient polling. These implementations highlighted GCM's role in diverse mobile ecosystems, from communication to productivity. GCM's scalability was evident in its handling of massive volumes, processing over 150 billion messages daily by late across more than 750,000 applications. Real-world examples included the transit app, which served over 30 million users by using GCM topics for city-specific alerts, such as notifications about . The One app similarly applied topic messaging for personalized content, allowing subscribers to topics like specific podcasts to receive tailored news updates. This capability enabled low-power push delivery, reducing battery consumption compared to traditional polling methods. Studies on push notifications, including those powered by GCM, demonstrated significant impact on user behavior; for example, enabling push notifications increased app launches by 88% on average, according to from Localytics. By 2013, such mechanisms had boosted overall app engagement rates substantially, fostering greater retention and interaction in production environments.

Limitations and Legacy Effects

Google Cloud Messaging (GCM) had a strict 4KB limit on message payloads, constraining the volume of transmissible in individual notifications and often necessitating multiple messages or external fetching for larger needs. Delivery reliability was hampered by network variability, with messages sometimes experiencing significant delays due to intermittent connections and server-side queuing, as persistent connections could time out after short periods like 10 minutes. GCM also lacked native tools, forcing developers to build custom tracking mechanisms for monitoring delivery success rates and engagement metrics. A key criticism of GCM was its heavy reliance on for operation, rendering it incompatible with non-Google devices such as tablets or models without , which limited its reach in certain markets and ecosystems. The 2019 of GCM, with APIs shut down on , compelled widespread migrations to (FCM), and incomplete transitions disrupted push notification functionality for affected applications during the cutoff period. This event exposed vulnerabilities in legacy dependencies, as many apps retained GCM-referencing code into subsequent years, increasing maintenance burdens and security risks. GCM's shortcomings directly informed FCM's enhancements, such as improved token management and delivery guarantees, addressing core reliability gaps identified in the predecessor. On a broader scale, GCM solidified messaging as an essential industry standard for mobile communication but simultaneously revealed the limitations of platform-specific solutions, spurring demand for more versatile, cross-platform alternatives that support diverse ecosystems beyond .

References

  1. [1]
    Time to Upgrade from GCM to FCM- Google Developers Blog
    ### Summary of Google Cloud Messaging (GCM) and Migration to FCM
  2. [2]
    Cloud to Device Messaging (Deprecated) - Google for Developers
    C2DM was officially deprecated on June 26, 2012, and was shut down completely as of July 30, 2015. Existing C2DM developers are encouraged to migrate to ...
  3. [3]
    Google Cloud Messaging for Android (GCM) Unveiled, to Replace ...
    Aug 13, 2012 · Google has unveiled its Google Cloud Messaging for Android (GCM) service, which improves upon the deprecated Cloud to Device Messaging ...
  4. [4]
    Google Cloud Messaging: State of the Union
    Mar 1, 2016 · Every day, GCM delivers over 150 Billion messages to devices on various platforms including Android Devices, iOS Devices and Web Browsers. It ...Missing: announces | Show results with:announces
  5. [5]
    Firebase expands to become a unified app platform
    May 18, 2016 · Google Cloud Messaging, the most popular cloud-to-device push messaging service in the world, is integrating with Firebase and changing its ...
  6. [6]
    Android Cloud To Device Messaging - Android Developers Blog
    May 27, 2010 · C2DM keeps the messages in the server store, and delivers them when the device comes back online. Basically, you can leave all the hard work of ...Missing: history | Show results with:history
  7. [7]
    GCM Service Driven Communication With An Android Application In ...
    The limitations of Cloud to Device Messaging (C2DM) are: Each notification message size is limit to 1024 bytes. Google limits the number of messages a ...
  8. [8]
    The History of Push Notifications | Alertzy
    Following Apple's lead, Google launched Google Cloud Messaging (GCM) in 2012, providing a similar service for Android devices. GCM allowed developers to send ...
  9. [9]
    Introducing Android 4.1 (Jelly Bean) preview platform, and more
    Google Cloud Messaging for Android: This is the next version of C2DM and goes back to Froyo. Getting started is easy and has a whole bunch ...<|separator|>
  10. [10]
    Sessions | Google I/O 2012
    Aug 21, 2024 · Google Cloud Messaging for Android. Cloud-to-device-messaging (C2DM) is coming out of beta and getting a new name: Google Cloud Messaging ...
  11. [11]
  12. [12]
    android - Size of notification payload in GCM/FCM - Stack Overflow
    Jul 7, 2015 · Some parts of the documentation say you can send up to 4KB of data, and here it says "A notification message can have a maximum of 2kb payload".FCM Data Message size limits - can't actually send full 4096 bytes of ...How to send notification using fcm larger than 4kb - Stack OverflowMore results from stackoverflow.comMissing: features | Show results with:features
  13. [13]
    Google Cloud Messaging Joins Play Services, Gets 3 New Features
    May 15, 2013 · At Google I/O 2013 on Wednesday, Google announced its Cloud Messaging (GCM) service is now part of Google Play Services, and has gained three ...Missing: initial | Show results with:initial
  14. [14]
    Google Cloud Messaging - We've Come a Long Way
    Dec 17, 2015 · We're now happy to announce that we're allowing unlimited free topics for your app. This means app developers can place an unlimited number ...
  15. [15]
    Set and manage Android message priority - Firebase - Google
    While normal priority messages are suitable for general updates, choose high priority when you need to ensure immediate delivery for urgent matters or actions.Message Processing For High... · Setting Priority For... · Deprioritization Of High...
  16. [16]
    GCM 3.0 Sends Messages to Android, iOS and Chrome - InfoQ
    Jun 1, 2015 · With GCM 3.0, Google has attempted to simplify the registration process and to make their cloud notification system work similarly on ...
  17. [17]
    Does Your Android Support Doze, Google's Best Battery-Saving ...
    May 13, 2016 · Second, your software needs to support Google Cloud Messaging (GCM Push) so that you can still receive notifications while the device is in Doze ...
  18. [18]
    Firebase expands to become a unified app platform
    May 18, 2016 · It's built for scale and already sends 170 billion messages per day to two billion devices.
  19. [19]
    Implementing an XMPP Connection Server
    ### Summary of GCM XMPP Connection Server
  20. [20]
  21. [21]
    GCM Architectural Overview | Android Developers
    ### Summary of GCM Architecture and Mechanics
  22. [22]
    Google Cloud Messaging (GCM) - 4Js
    Google Cloud Message services allow push servers to send notification message data to registered Android™ or iOS devices. The system involves the following ...
  23. [23]
    GCM Cloud Connection Server (XMPP) | Android Developers
    The GCM Cloud Connection Server (CCS) is an XMPP endpoint that provides a persistent, asynchronous, bidirectional connection to Google servers.
  24. [24]
    Migrate from legacy FCM APIs to HTTP v1 | Firebase Cloud Messaging
    Apps using the deprecated FCM legacy APIs for HTTP and XMPP should migrate to the HTTP v1 API at the earliest opportunity.
  25. [25]
    From GCM to FCM : The “Why and How” of Cloud Messaging Apps ...
    Oct 30, 2018 · Note that the new FCM version of gcm-http.googleapis.com/gcm/ is fcm.googleapis.com/fcm/ (without “http”):. FCM supports HTTP and XMPP ...
  26. [26]
    Getting an API key to use with Google Cloud Messaging
    Nov 8, 2013 · Step #1: Log into https://cloud.google.com/console with your Google account Step #2: In the navigation on the left, go into "APIs & auth > APIs"GCM - How to Generate a Server API Key For Android Push ...Where can I find the API KEY for Firebase Cloud Messaging?More results from stackoverflow.com
  27. [27]
    Android Push Notification (GCM), is there any Daily Limit?
    Feb 22, 2013 · It must contain at least 1 and at most 1000 registration tokens. Use this parameter only for multicast messaging, not for single recipients.Max number of devices can GCM send push notifications togcm how many devices can receive a push message at a timeMore results from stackoverflow.com
  28. [28]
    HTTP status and error codes for JSON | Cloud Storage
    The following document provides reference information about the status codes and error messages that are used in the Cloud Storage JSON API.Http Status And Error Codes · 400--Bad Request · 403--Forbidden
  29. [29]
    Google Cloud Messaging · codepath/android_guides Wiki - GitHub
    Jun 8, 2018 · It is now known as Firebase Cloud Messaging (FCM) after a new site launched during the Google's I/O 2016 conference that unifies analytics and ...
  30. [30]
    Android Implementation | Instance ID - Google for Developers
    The following examples will help you implement Instance ID in an Android client. Note that these examples use the GCM scope, which is useful only for ...
  31. [31]
    Time to Upgrade from GCM to FCM - Google Developers Blog
    Apr 11, 2018 · In 2016, we unveiled Firebase Cloud Messaging (FCM) as the next evolution of Google Cloud Messaging (GCM). Since then, we've been working ...
  32. [32]
    GCM Deprecation Update (April 17, 2019) - Google Groups
    Apr 17, 2019 · A number of public GCM endpoints will be shut down by May 29—these are the URLs that you use to send messages to subscriptions from your server.<|control11|><|separator|>
  33. [33]
    Migration from GCM to FCM without changing Android native code ...
    Google Developer page has announced the message like the following: As of April 10, 2018, Google has deprecated GCM. The GCM server and client APIs are ...
  34. [34]
  35. [35]
    Time to Upgrade from GCM to FCM - The Firebase Blog
    Apr 10, 2018 · But rest assured, your existing GCM tokens will continue to work with FCM so you won't lose the ability to send messages to your existing users.
  36. [36]
    Firebase Android SDK Release Notes
    For more details, refer to the Cloud Messaging v25.0.1 release notes. Cloud Storage for Firebase version 22.0.1. Bumped internal dependencies. Crashlytics ...Missing: announcement | Show results with:announcement
  37. [37]
    FCM Error Codes | Firebase Cloud Messaging - Google
    The limit is 4096 bytes for most messages. For messages sent to topics, the limit is 2048 bytes. The total payload size includes both keys and values. messaging ...
  38. [38]
    How Does WhatsApp overcome the GCM Push notifications delay?
    Sep 9, 2014 · WhatsApp uses both GCM/FCM and a modified XMPP server (FunXMPP) for push notifications, and uses high priority for immediate delivery.How does whatsapp instantly receive a message? - Stack OverflowDoes whatsapp use c2dm aka GCM on android? - Stack OverflowMore results from stackoverflow.com
  39. [39]
    Notifications from the Twitter app are easier on your battery
    Dec 13, 2018 · In this article, we'll share what we did to save battery life on our users' devices in the hope this will help other developers optimize their apps as well.
  40. [40]
    Do Push Notifications Boost Mobile App Engagement?
    Users who enable push notifications from mobile applications average 88% more launches of those apps compared with users who disable push notifications, ...Missing: 2013 | Show results with:2013
  41. [41]
    Delay in getting GCM notification - Google Groups
    The GCM client on the device abandons the persistent connection after 10 minutes; The GCM server abandons the persistent connection after 10 minutes. There is ...
  42. [42]
    Dependencies of Firebase Android SDKs on Google Play services
    Some Firebase Android SDKs depend on Google Play services, which means they will only run on devices and emulators with Google Play services installed.
  43. [43]
    How Secure Messaging Apps Leak Sensitive Data to Push ... - arXiv
    Our research investigated secure messaging apps' usage of Google's Firebase Cloud Messaging (FCM) service to send push notifications to Android devices.
  44. [44]
    The End of Google Cloud Messaging, and What it Means for Your ...
    Apr 19, 2018 · On April 10, 2018, Google announced the deprecation of its Google Cloud Messaging (GCM) platform. ... google cloud messaging, pinpoint, push ...
  45. [45]
    What Is A Push Notification? Push Notifications Explained - CrustLab
    Feb 20, 2025 · ... Google Cloud Messaging and finally Firebase Cloud Messaging, a cross-platform cloud service for managing messages and push notifications.<|control11|><|separator|>