| description | Step-by-step guide to send event data from RudderStack to Google Pub/Sub. |
|---|
Google Pub/Sub is an asynchronous messaging service that allows you to decouple the services that produce events from the services that process events. With Pub/Sub, you get durable message storage as well as a real-time message delivery system. The Google Pub/Sub servers run reliably with a consistent performance in all the Google Cloud regions over the world.
RudderStack allows you to configure Google Pub/Sub as a destination and send your event data to it directly.
To enable sending data to Google Pub/Sub, you will first need to add it as a destination to the source from which you are sending your event data. Once the destination is enabled, events from our SDK will start flowing to Google Pub/Sub.
| Connection Mode | Web | Mobile | Server |
|---|---|---|---|
| Device mode | - | - | - |
| Cloud mode | Supported | Supported | Supported |
{% hint style="info" %} To know more about the difference between Cloud mode and Device mode in RudderStack, read the RudderStack connection modes guide. {% endhint %}
Once you have confirmed that the platform supports sending events to Google Pub/Sub, perform the steps below:
- From your RudderStack dashboard, add the source. From the list of destinations, select Google Pub/Sub.
{% hint style="info" %} Please follow our Adding a Source and Destination guide to add a source and destination in RudderStack. {% endhint %}
- Give a name to the destination and click on Next. You should then see the following screen:
- Enter the following details:
- Connection Settings
-
Project ID and the Credentials: Follow these steps to obtain the project ID as well as the required credentials:
- Create a service account from Google Cloud Console.
- You can get the Project ID when you log in to your Google Cloud Console.
- Use the Select a role dropdown to add the Pub/Sub Publisher role.
- Create a key as JSON and download it.
- Paste this downloaded JSON in the Credentials field
-
Enter the Event Name as well as the corresponding Topic ID. You can get the topic id from your topics page, as shown:
-
- Connection Settings
{% hint style="info" %}
You can send an event type like page, identify, track.
For the track events you can specify the event name based on the event name in the payload.
For example:
- If the event name is
pageit will send all the calls with thetypepage. - If the event name is
product added, it will send all the track events with theeventasproduct added. {% endhint %}
{% hint style="success" %}
If you want to send all the events to a particular stream irrespective of the type or name, you can use * as the event name.
{% endhint %}
{% hint style="warning" %}
The topic ID is case-sensitive and has to be exactly as seen in Google Pub/Sub. On the other hand, the event name is case insensitive, and thus Page or page will both be considered as valid.
{% endhint %}
- Finally, click on Next to complete the configuration. Pub/Sub should now be added and enabled as a destination in RudderStack.
The page call contains information related to the page, such as the URL of the web page visited by the user.
{% hint style="info" %}
For more information on the page method, please refer to our RudderStack API Specification guide.
{% endhint %}
A sample page payload is as shown in the snippet below:
rudderanalytics.page({
path: "path",
url: "url",
title: "title",
search: "search",
referrer: "referrer"
});The identify call captures the relevant details about the visiting user.
{% hint style="info" %}
For more information on the identify method, please refer to our RudderStack API Specification guide.
{% endhint %}
A sample identify payload is as shown in the snippet below:
rudderanalytics.identify("abc123", {
name: "FirstName LastName",
email: "example@gmail.com"
});The track call captures the information related to the actions performed by the user, along with their properties, or traits.
{% hint style="info" %}
For more information on the track method, please refer to our RudderStack API Specification guide.
{% endhint %}
A sample track payload is as shown in the snippet below:
rudderanalytics.track("Track me", {
category: "category",
label: "label",
value: "value"
});- If there is no topic ID set for an event, it will not be sent.
- If an event is set with a topic id, the payload will be sent to Pub/Sub to that particular topic id.
{% hint style="info" %}
If you have set all event type, event and * for mapping the priority will be given to event ,
then type , followed by *.
{% endhint %}
For example, let the type of event be track, the event name be product added. The mapping is done as:
Now all the events should go to the topic mapped with product added.
If you come across any issues while configuring or using Google Pub/Sub with RudderStack, please feel free to contact us. You can also start a conversation on our Slack channel; we will be happy to talk to you!


