Google BigQuery integration
यह सामग्री अभी तक आपकी भाषा में उपलब्ध नहीं है।
The Google BigQuery integration streams selected Pushwoosh message events to your BigQuery dataset. Use it to analyze push, email, and SMS lifecycle events in BigQuery, build custom reports, or connect the data to your downstream analytics workflows.
Integration overview
Anchor link toPrerequisites
Anchor link toPrepare the following before you open the integration setup.
-
Use a Google Cloud project with billing enabled. Free Trial credits are supported. BigQuery Sandbox is not enough because the Storage Write API requires billing.
-
Make sure you have a paid Pushwoosh account.
Pricing
Anchor link toYou pay Google directly for BigQuery usage. Pushwoosh does not charge for the integration itself.
For current rates, free tiers, and regional details, see BigQuery pricing.
Costs can include:
- Data ingestion: Pushwoosh streams events with the BigQuery Storage Write API.
- Storage: BigQuery stores the rows written to your destination table.
- Queries: BigQuery charges for queries based on your selected pricing model.
Integration type
Anchor link toSource: Data is sent from Pushwoosh to your BigQuery dataset.
Supported platforms
Anchor link toPushwoosh streams events from iOS, Android, Huawei, Chrome, Safari, Firefox, and Web platforms.
Synchronized entities
Anchor link toSelected push, email, and SMS lifecycle events are streamed to BigQuery. Pushwoosh writes one row per selected event to the destination table.
Use cases
Anchor link to- Near real-time message analytics: analyze push, email, and SMS lifecycle events in BigQuery shortly after they are processed in Pushwoosh.
- Custom reporting: build BigQuery reports for selected event kinds, applications, campaigns, and message identifiers.
- Downstream data workflows: connect Pushwoosh event data to your analytics, reporting, or data processing workflows.
How the integration works
Anchor link toAfter you save the configuration, Pushwoosh begins streaming selected message events to your BigQuery table in near real time. For every message event that flows through Pushwoosh, the system checks whether the event kind is selected in your configuration.
If it is, Pushwoosh appends a new row to your destination table. If the table does not exist yet, Pushwoosh creates it automatically using the schema described below. Events typically appear in BigQuery within 30 seconds of being processed in Pushwoosh.
Set up the integration in Google Cloud
Anchor link toChoose a Google Cloud project
Anchor link toSign in to Google Cloud Console, then pick or create the project that will own the BigQuery dataset.

Enable the required APIs
Anchor link toIn Google Cloud Console, go to APIs & Services → Library and enable these APIs:
- BigQuery API
- BigQuery Storage API

Pushwoosh uses these APIs to create the destination table and stream events into BigQuery.
Create a Service Account
Anchor link toPushwoosh uses the Service Account to write events to your BigQuery dataset.
-
Go to IAM & Admin → Service Accounts.
-
Click Create service account.
-
In Service account name, enter a name, for example,
pushwoosh-bigquery.Google Cloud automatically generates the Service account ID from the name.

-
Click Create and continue.
Grant IAM roles
Anchor link to-
Grant the Service Account these IAM roles:
- BigQuery Data Editor: lets Pushwoosh create the table and append rows.
- BigQuery User: lets Pushwoosh use the Storage Write API.

-
Click Continue.
-
Click Done.
Create a JSON key
Anchor link toPushwoosh uses the JSON key to authenticate as the service account.
-
Open the service account you created.
-
Go to Keys → Add key → Create new key.

- Select JSON.
Google Cloud downloads the JSON key file to your computer.

Create a dataset
Anchor link toThe dataset is where Pushwoosh stores the streamed event table.
-
In Google Cloud Console, open BigQuery.
-
In Explorer, select the project you prepared for the integration.
-
Click Create dataset.

-
In Dataset ID, enter a dataset ID, for example
pushwoosh_data. -
In Data location, select the dataset region.

- Click Create dataset.
Configure the integration in Pushwoosh
Anchor link to-
In your Pushwoosh account, go to Settings → 3rd Party Integrations for the application you want to connect.
-
Find Google BigQuery in the list of available services and click Configure.

- Fill in the configuration fields.
- GCP Project ID: enter the project ID from Google Cloud, for example
my-company-12345. - Service Account JSON: paste the full contents of the JSON key file you downloaded from Google Cloud.
- Dataset ID: once GCP Project ID and Service Account JSON are filled, Pushwoosh fetches the datasets your Service Account can access. Select the destination dataset. If the dropdown is empty, check that the Service Account has access and that the dataset exists in the project you specified.
- Dataset region: select the region of your BigQuery dataset.
- Table name: leave blank to use the default
pushwoosh_eventstable. Pushwoosh creates the table with the schema described below. - Events: select the events you want to stream. You can change this list later.
- Stream events to BigQuery: enable this toggle. Turn it off to pause streaming without deleting the configuration.
- Click Test connection.
Pushwoosh validates the credentials against BigQuery without writing data.
You may see one of these connection statuses:
- Connection successful: the credentials work and the Service Account can access the dataset.
auth_failed: the JSON key is invalid or revoked.dataset_not_found: the dataset ID is incorrect or the Service Account cannot access it.missing_permission: the Service Account is missing one of the required roles.
- Click Apply.
Pushwoosh saves the configuration and starts using it within about 30 seconds. After that, selected events start streaming to BigQuery.
Verify the integration
Anchor link to-
Send a test push, or trigger another message that produces one of the event kinds you selected.
-
Wait about 30 seconds.
-
Open BigQuery Studio.
-
Go to your project, then open the dataset and the destination table you configured. If you left Table name blank, open
pushwoosh_events. -
Click Preview.
You should see the event row in the table.

Table schema
Anchor link toPushwoosh writes each selected event as a separate row in the destination table. To make queries faster and easier to filter, the table is partitioned by day using timestamp and clustered by app_id and event_kind.
| Field name | Type | Description |
|---|---|---|
event_kind | STRING | Pushwoosh event kind, for example Push Sent or Email Opened. |
message_id | STRING | Pushwoosh message code, such as the campaign or message identifier. |
device_id | STRING | Pushwoosh hardware ID of the device that produced the event. |
user_id | STRING | Your external user ID if known. Empty for anonymous devices. |
timestamp | TIMESTAMP | Event time in UTC. |
app_id | STRING | Pushwoosh application code. |
platform | STRING | Source platform, for example ios, android, or web. |
properties | JSON | Additional event fields. Use JSON_VALUE to query fields, as shown below. |
Query properties
Anchor link toThe properties column stores additional event fields as JSON. Use JSON_VALUE to extract individual fields in your queries.
For example, to see which campaigns drove the most opens over the last 7 days, click + to create a new query, paste the SQL below, and click Run.
SELECT event_kind, JSON_VALUE(properties, '$.campaign_id') AS campaign_id, COUNT(*) AS eventsFROM `your-project.your_dataset.pushwoosh_events`WHERE event_kind = 'Push Opened' AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)GROUP BY 1, 2ORDER BY events DESCTo review event counts for the last hour, run this query:
SELECT event_kind, COUNT(*) AS eventsFROM `your-project.your_dataset.pushwoosh_events`WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)GROUP BY event_kindORDER BY events DESCUpdate the integration
Anchor link toRotate the Service Account key
Anchor link to-
In Google Cloud Console, go to IAM & Admin → Service Accounts.
-
Open your Service Account.
-
Go to Keys and create a new JSON key.
-
Keep the old key active until you confirm the new key works.
-
In Pushwoosh, open the Google BigQuery configuration modal.
-
Paste the new JSON into Service Account JSON.
-
Click Apply.
Pushwoosh validates the new key, replaces the stored credential, and starts using it after the next configuration reload, which takes about 30 seconds.
After you confirm that events are still flowing, delete the old key in Google Cloud Console.
Change the destination dataset or table
Anchor link to-
In Pushwoosh, go to Settings → 3rd Party Integrations.
-
Open Google BigQuery settings.
-
Select a different dataset or enter a new table name.
-
Click Apply.
Pushwoosh reopens the stream with the new destination within about 30 seconds. Rows already written stay in the old table. Pushwoosh does not backfill historical data.
To keep the stored Service Account key unchanged when you update other settings, leave Service Account JSON empty before you click Apply.
Troubleshooting
Anchor link to| Issue | What to check |
|---|---|
Test connection fails with auth_failed | The Service Account JSON is malformed or the key has been revoked in Google Cloud. Create a new key and paste the full JSON file again. The file starts with {, ends with }, and contains a private_key block. |
Test connection fails with dataset_not_found | The Dataset ID is misspelled or does not exist in the project you specified. Dataset IDs are case-sensitive. Select the dataset from the dropdown to avoid typos. |
Test connection fails with missing_permission | The Service Account is missing BigQuery Data Editor or BigQuery User. Grant both roles at the project level, or grant them at the dataset level for more restrictive access. |
| Test connection passes, but no rows appear in BigQuery | Wait at least 30 seconds. Check that the event kind you are sending is selected in Events. For example, if only Push Opened is selected and nobody opens the push, no rows appear. |
| Configuration looks correct, but the modal shows empty fields | Reload the page. The configuration is fetched on each modal open and cached for 30 seconds by the underlying service. If you just saved the settings, wait a moment and open the modal again. |
Can I use a free Google Cloud account?
Anchor link toYes, as long as billing is enabled on the project. The Free Trial credits are enough to run this integration at typical volumes for the full trial period. BigQuery Sandbox without billing will not work because the Storage Write API requires billing.
Does Pushwoosh see my BigQuery data?
Anchor link toNo. The Service Account credential you upload authorizes Pushwoosh to write to the dataset you select. Pushwoosh does not read from your dataset and has no access to the rest of your project.
Can I export to multiple BigQuery datasets?
Anchor link toOne destination is supported per application. If you need the same events in two datasets, set up a BigQuery scheduled query in your project to copy data from pushwoosh_events into another table.
Can I change the table schema?
Anchor link toThe schema is fixed across all customers. If you need additional columns, extract them from the properties JSON in your own views or scheduled queries.
What happens if I disable the integration temporarily?
Anchor link toTurn off Stream events to BigQuery and click Apply. Pushwoosh stops appending events for this application within about 30 seconds.
Events produced while the integration is off are not buffered or backfilled when you turn it back on. Pushwoosh keeps the configuration, including credentials, dataset, and event selection.
How do I delete the integration completely?
Anchor link toContact support@pushwoosh.com to delete the integration configuration. The dataset and rows already written to BigQuery remain in your Google Cloud account.
Are there delivery guarantees?
Anchor link toThe integration uses at-least-once delivery. Under normal operation, duplicates are rare. A process restart between an append and a commit can produce a small number of duplicate rows. Deduplicate in SQL if your downstream pipeline requires exactly-once results.
Why is there no Push Clicked event?
Anchor link toPushwoosh currently exposes Push Sent, Push Delivered, and Push Opened for push notifications in this integration. A dedicated push click step is not available. Email and SMS have their lifecycle events.