Google Drive
Upload files to a Google Drive folder in CSV or JSONL format. Use Zeotap to export model results, audience lists, or enriched data as files in Google Drive for sharing, collaboration, and downstream processing.
Prerequisites
- A Google account with access to Google Drive
- A Google Drive folder where files should be uploaded (or use the root of My Drive)
- OAuth 2.0 authorization via Zeotap’s built-in Google connector
Authentication
Google Drive uses OAuth 2.0 authentication.
- In Zeotap, navigate to Destinations and click Add Destination
- Select Google Drive from the Cloud Storage category
- Click Connect with Google to start the OAuth flow
- Sign in with your Google account and authorize Zeotap to access your Drive files
- Zeotap requests the
drive.filescope, which limits access to only files created by or explicitly shared with Zeotap
Required Permissions
The OAuth 2.0 scope drive.file grants Zeotap permission to:
- Create new files in the specified folder
- Read and update files that Zeotap has created
- Zeotap does not have access to files it did not create
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Folder ID | Text | No | The ID of the Google Drive folder to upload files to. Found in the folder URL after /folders/. Leave blank to upload to the root of My Drive. |
Finding Your Folder ID
- Open Google Drive in your browser
- Navigate to the target folder
- Copy the ID from the URL:
https://drive.google.com/drive/folders/{folder_id} - Paste the ID into the Folder ID field in Zeotap
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| File Format | Select | Yes | Output file format: CSV or JSONL (Newline Delimited JSON). Default: CSV |
| Enable Gzip Compression | Toggle | No | Compress files with gzip before uploading. Default: Off |
Supported Operations
Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Insert | Yes | Uploads the full current dataset as new files on every run |
| Mirror | Yes | Uploads changed rows as new files with an _operation column (added / changed / removed) |
| Snapshot | Yes | Write the complete current dataset as new files on every run — no delta, no _operation column |
Audience Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Add | Yes | Upload new and updated members as a new file (departed members excluded) |
| Mirror | Yes | Upload membership changes as a new file with an _operation column |
| Snapshot | Yes | Write the complete current membership as new files on every run — no delta, no _operation column |
Features
| Feature | Supported |
|---|---|
| Field Mapping | No — Google Drive writes all mapped fields as file columns |
| Schema Introspection | No — Google Drive is a file-based destination without schema discovery |
How It Works
Zeotap writes data as files to the configured Google Drive folder:
- Data is serialized into the selected format (CSV or JSONL)
- If gzip compression is enabled, the file is compressed before upload
- Files are uploaded via the Google Drive API v3 multipart upload endpoint
- Each file is named with a date-partitioned path:
zeotap/{YYYY-MM-DD}/{batch_id}.{ext}[.gz] - Each sync run produces a new set of date-partitioned files
Sync mode semantics
- Insert writes the full current dataset as new files on every run.
- Mirror writes the full dataset on the first run, then only the rows that changed on later runs. Every row in a mirror-mode file carries an
_operationcolumn —added,changed, orremoved— so downstream consumers can apply updates and deletions. On the first run all rows are markedadded. In CSV files_operationis always the last column; treat the name as reserved in mirror mode. - Add (audience syncs) writes only new and updated audience members. Members who left the audience since the previous run are excluded from the files.
- Snapshot writes the complete current dataset as new files on every run and never diffs. There is no
_operationcolumn (the files are the whole dataset) and unchanged rows are included every time. Records that left are simply absent from the next drop rather than delivered taggedremoved, so treat each run’s output as authoritative and replace your prior copy rather than merging into it. Unlike Insert, snapshot is guaranteed to read the full model output on every warehouse: it never adopts native change tracking (Snowflake streams, Databricks CDF), which can only surface deltas.
Upload Method
Zeotap uses the multipart upload method, which sends file metadata and content in a single request. This is suitable for files up to 5 MB. For larger syncs, data is split into batches that each produce a separate file within the size limit.
Rate Limits
Google Drive API enforces the following rate limits:
| Limit | Value |
|---|---|
| Default quota (per user and per project) | 20,000 calls per 100 seconds |
| Sustained write/insert requests per account | Avoid exceeding 3 requests per second |
| Daily upload volume | 750 GB per 24-hour rolling window |
If Google Drive returns a 429 Too Many Requests response, the current batch fails and the sync run surfaces the rate-limit error. Reduce sync frequency or concurrency if you see sustained 429 responses.
Best Practices
- Use a dedicated folder for Zeotap exports to keep files organized
- Enable gzip compression for large datasets to reduce upload time and storage usage
- Use JSONL format when downstream consumers need structured data with nested fields
- Use CSV format when sharing data with non-technical stakeholders via Google Sheets import
- Set up folder sharing before configuring the destination if team members need access to exported files
Troubleshooting
Authentication failed
The OAuth token may have expired or been revoked. Reconnect the Google account by clicking Reconnect in the destination settings.
Permission denied
Ensure the Google account used for authentication has write access to the target folder. If the folder is in a Shared Drive, verify that the account has Contributor or Content Manager permissions.
Folder not found
Check that the folder ID is correct. The folder ID is the last segment of the folder URL. If the folder was deleted or moved to trash, create a new folder and update the configuration.
Rate limit exceeded
If you see 429 Too Many Requests errors, reduce sync frequency or reduce the number of concurrent syncs targeting Google Drive. Persistent rate limiting requires reducing request volume; Google recommends staying under 3 sustained write requests per second per account.
File upload failed
Large files may fail to upload if they exceed the 5 MB multipart upload limit. Zeotap batches data to stay within this limit. If individual rows contain very large data (e.g., long text fields), consider reducing the number of mapped fields.
Quota exceeded
Google Drive storage has a 15 GB free tier per account (shared with Gmail and Google Photos). If the account runs out of storage, uploads will fail. Upgrade to Google One or clean up existing files to free space.