Skip to content

File GCP

Leads that Signals receives are written as files into a Google Cloud Storage bucket you own. Each export produces a timestamped object in the bucket and path you nominate.

It pairs particularly well with BigQuery, since a file in Cloud Storage can be loaded or queried as an external table without an intermediate step.

  • The GCP Bucket Name.
  • A GCP JSON Key for a service account with write permission to that bucket.
  • The path within the bucket that files should be written to, if you do not want them at the root.

In Studio, open Destinations, find the Files category, and click the File GCP tile. This connector authenticates with a service account key you add manually, which means the connection does not depend on any individual’s access remaining in place.

Select the Integration Type, which is the lead generation source the leads come from. The options are Meta Lead Ads, Snapchat Lead Generation Ads, TikTok Lead Ads, LinkedIn Lead Ads and Google Forms. Then select the lead ads connection name you want to deliver from, and give the instance a name. The instance name is yours to choose and does not have to match anything.

Set the data export frequency, which can be Realtime, Every 1 hour, Every 3 hours or Every 1 day. Then click Next.

Enter the following, then click Validate Credentials.

FieldWhat it isWhere to find it
GCP Bucket NameName of your storage bucket.Google Cloud console, Cloud Storage, Buckets.
GCP JSON KeyService account JSON key with write permission to the bucket.Google Cloud console, IAM and Admin, Service Accounts, then Keys, Add key, Create new key, JSON.
Relative PathFolder path inside the bucket where files should be stored.Your own convention.

Once validated, the file path and name are shown so you can confirm where exports will land. Click Finish.

Studio creates the folder structure for you. A folder named Datahash is created inside the path you give, or at the root if you leave the path blank, and inside it a subfolder named after the lead ads connection. Each export is written there with a timestamp in the filename.

One connection writes one source to one bucket and path. To deliver a second source, or into a second location, add another instance from Manage Existing Connections. To change an existing one, click the connection name there, click the edit icon in the top right, update the values, click Validate Credentials and click Finish.

Leads are delivered as submitted. Personal data is not hashed on this destination, because the system receiving it is your own and the point is that people and applications can read it.

Once an object lands in your bucket, encryption, retention, lifecycle and access are governed by your bucket configuration and IAM policy, not by Signals.

Which fields arrive is decided by the lead form on the connected source, so a field you need that is not appearing has to be added there.

  • Create a dedicated service account for this connection with write access to one bucket. Do not grant project-wide storage access.
  • When the JSON key is rotated, update the instance with the new key.

The key is rejected at validation. The JSON is malformed or truncated, the key has been disabled, or it belongs to a different project than the bucket.

Permission denied even with a valid key. The service account is missing write permission on the bucket. If the bucket uses customer-managed encryption, it also needs use of the key.

No objects are appearing. Confirm the path on the connection is the path you are looking in, then confirm the source has produced leads.

Delivery stopped without any configuration change. Check whether the key was rotated or the service account deleted.