Verify implementation

After going through validating events, you'll want to verify your implementation. The validation server validates that your events have the correct structure, but to verify that they are being sent correctly to your property, you'll need to do the following:

If you're not seeing your events after going through these steps, check troubleshooting for common implementation errors.

Send an event from a client

Choose your client:

Send an event to your property

Check the Realtime view

After sending an event using the measurement protocol, check the Realtime view for your property. Events typically show up within a few seconds.

Navigate to the realtime view by opening Google Analytics, then going to Realtime in the left nav. You'll want to focus on the bottom charts: "Event count by Event name" and "Conversions by Event name."

Realtime view showing an event


No events

Choose your client:

If your events aren't showing up in the Realtime view, there are a few common issues you should look for:

  • Are you using the correct api_secret

    Check that you're using the api_secret for the right stream. If you set up the measurement protocol for multiple streams, each stream will have its own secret.

  • Is your api_secret still valid

    In order to help combat spam, you're able to revoke api_secrets. Make sure that the api_secret you are using is still valid. It's possible that another user with access to your stream may have revoked access to it by mistake.

Invalid IDs

Since the Measurement Procotol supports IDs from the Firebase SDK and gtag.js, it's easy to get mixed up on which IDs you should be using. The IDs you should use changes depending on whether you are using the Firebase SDK or gtag.js. The following outlines which IDs you should be using:

Firebase SDK

If you're using the Firebase SDK the IDs you should use are:

You should not use the following:

  • firebase_instance_id - This ID should not be included in your request. This ID is used for identifiying a given instance of the app, but is Firebase specific. It's used for tasks such as FCM messages.


If you're using gtag.js, the IDs you should use are:

  • measurement_id - Include this ID in the query parameters for the request. This ID uniquely identifies a Data Stream. All users of your website will have the same measurement_id. Found in the Google Analytics UI under:
    Admin > Data Streams > choose your stream > Measurement ID
  • client_id - Include this ID in the POST body for the request. This ID uniquely identifies a given user instance of a web client. This value will be different for every user of your app. See these examples for how to retrieve this value.