Google Ads Data Manager API
Renta sends rows from your data warehouse to Google Ads through the Data Manager API as one of two objects: Customer Match audiences and click conversions.
A Customer Match row carries the identifiers Google matches people by, such as email, phone number, and postal address. A click conversion row carries the click that led to the sale, the moment it happened, and its value.
Authentication
Renta authenticates with Google OAuth. Authorize the Google account that already has access to the Google Ads account you want to write into.
On the consent screen Google asks for two permissions: access to your Google Ads accounts and data, and access to your customer data in Google Ads and the Google Marketing Platform. Renta uses them to list the accounts you can reach, to read your Customer Match lists and conversion actions, and to write the rows a pipeline delivers.
Your credentials are encrypted, and you can revoke the authorization at any time from your Google Account.
Connect Google Ads Data Manager API destination
- Navigate to the Connections > Catalog section in the left sidebar and open the Destinations tab.
- Open the Reverse ETL category and click the Google Ads Data Manager API card.

Click Log in to your Google Ads Data Manager API account. Google opens in the same tab.

Choose the Google account that has access to your Google Ads account, review the permissions, and click Allow. Google returns you to Renta.

Renta confirms the granted access and shows the authorized account. Finish the setup:
- Destination name.
Specify a name for this destination. This is used exclusively in the Renta interface.
Click Save to finish.

The new destination appears in the Destinations list with the Active status. You can now use it in Reverse ETL pipelines.

Create a pipeline
Once the destination is connected, create a pipeline to send a data model to Google Ads.
A Reverse ETL pipeline reads from a data model: a SQL query saved in the Data models section that defines which warehouse data to sync. Create the data model before setting up the pipeline.
Create a Google Ads pipeline
In the left sidebar, click New pipeline. On the Source step, switch the toggle to Reverse ETL and pick your data warehouse, such as Google BigQuery.

Choose the warehouse connection that holds your data models and click Next step.

On the Destination step, select Google Ads Data Manager API under Already connected and click Next step.

Choose the Google Ads connection you created earlier and click Next step.

Pipeline configuration
On the final step, choose what Renta writes to Google Ads, where it lands, and which columns fill it.
What Renta sends
Pick the Google Ads object and the data model behind it. The settings below the choice differ per object, so make this choice first.

| Object | Description |
|---|---|
| Customer Match user list | Each row becomes a member of a Customer Match audience you can target or exclude in campaigns. Rows carry identifiers only, so this is the choice for audience building and suppression lists. |
| Click conversions | Each row becomes a conversion recorded against a conversion action of the Import type. Use it to report sales that close outside the website, so Google Ads can attribute them to the click that started them. |
Then pick the Data model. The columns available for matching and mapping below come from this model.
A Click conversions pipeline needs a conversion action of the Import type in the target Google Ads account. Create one under Goals > Conversions in Google Ads before setting up the pipeline.
Google Ads account
Tell Renta which account the data lands in.

- Login account.
The account Renta connects through, out of everything the authorized Google user can reach. - Google Ads account.
The account the audience or the conversions land in. When the login account is a manager (MCC), this list holds the accounts it manages. When it is an ordinary account, both dropdowns name the same account.
Audience and consent
A Customer Match pipeline writes into a user list, and Google needs to know how the people in it consented.

-
Audience mode Choose where the members go.
Mode Description Use existing user list Writes into a Customer Match list that already exists in the account. Renta keeps it up to date and never touches lists other pipelines own. Create new user list Renta creates a Customer Match list when the pipeline is created and writes into it from then on. Name it yourself, or leave the field empty to reuse the pipeline name. -
Existing user list For the existing mode, pick the list this pipeline keeps up to date. The dropdown holds the Customer Match lists Google Ads reports for the selected account.
-
Consent status Declare whether the people in the model consented to their data being used for ads and for personalization.
Value Description Granted The person agreed to this data use. Denied The person refused, and Google restricts how the data is used. Unspecified The consent state is unknown, so Google falls back to the account settings.
Consent applies to the whole sync, not to individual rows. If your model mixes people with different consent states, split it into separate models and pipelines.
Record matching
Tell Renta which column identifies a person, so the same warehouse row updates the same Google Ads member instead of adding a second one.

The left dropdown offers the unique key of the data model, and the right one offers the Google Ads identifier holding the same value. Renta sends the matched value with every row, so you do not need to repeat it in the mapping block below.
Field mapping
Connect the columns of your data model to Google Ads fields. The list on the right depends on the object you chose.

| Mapping type | Description |
|---|---|
| Standard | Takes the value from a data model column. |
| Static | Sends the same fixed value in every row. |
| Variable | Sends a value from the sync itself, such as the data model name or the time the run started. |
A Customer Match user list pipeline offers the identifier fields Google matches people by.
| Field | Description |
|---|---|
| The strongest identifier on its own. Renta lower-cases and trims the value, then hashes it. | |
| Phone number (E.164) | Digits with the country code, such as +4915112345601. A number in any other format does not match. |
| First name, Last name, Region code, Postal code | The four parts of a postal address identifier. Google accepts them only together, so a row missing any of the four is sent without its address. |
A Click conversions pipeline offers the fields that describe the conversion itself.
| Field | Description |
|---|---|
| Google click id (gclid), gbraid, wbraid | The click the conversion is attributed to. Google Ads writes these into your landing-page URLs, and gbraid and wbraid cover traffic from iOS apps and browsers. |
| Conversion timestamp (RFC-3339) | When the conversion happened. Required, and the only field a conversion cannot go without. |
| Conversion value, Currency code (ISO-4217) | What the conversion was worth. Send both together, otherwise Google cannot read the amount. |
| Transaction / order id | Your own id for the sale. Google uses it to recognise a conversion it has already received. |
| Email (enhanced conversions), Phone (enhanced conversions) | Hashed identifiers Google falls back to when no click id is available. |
Every row needs at least one identifier Google can act on: an email, a phone number, a complete address, or, for conversions, a click id. Renta refuses to save a mapping that offers none of them, and drops individual rows whose identifier columns turn out empty at run time.
Renta hashes email, phone number, and name parts with SHA-256 before the request leaves, so the raw values never reach Google. Region code and postal code are sent as written, because Google matches on them directly. A value that already arrives hashed is passed through untouched.
Sync behavior
Set what happens to a Google Ads record whose row disappears from the data model.

| Option | Description |
|---|---|
| Ignore | The Google Ads record stays as it is. This is the default, and the only option that applies to conversions. |
| Remove from list | Renta removes the member from the Customer Match audience. Available for Customer Match pipelines only. |
Then name the pipeline.

Integration name is the name of your pipeline. Edit it to match your preferences.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time (the exact time each run starts), then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the Reverse ETL tab, where you can track its runs and progress.

Sync strategy
Renta syncs incrementally. A run compares the data model against the state the previous run recorded and sends only what moved, which keeps an audience current without re-uploading it every night. The first run has nothing to compare against, so it delivers the model in full.
| Row state | What Renta does |
|---|---|
| New | Adds the member to the audience, or uploads the conversion. |
| Changed | Sends the row again. Google re-matches an audience member on its identifiers, and recognises a repeated conversion by its transaction id. |
| Unchanged | Sends nothing. |
| Deleted | Follows the deleted-row policy: leaves the record alone, or removes the member from the audience. |
Limits
- Matching is Google's, not Renta's.
Renta reports a row as delivered once Google accepts it. Whether it then matches a real Google user, and how long an audience takes to become targetable, is decided inside Google Ads. Audience size stays hidden until the list holds enough matched members. - Conversions cannot be withdrawn.
Google treats an accepted conversion as final, so a conversion pipeline only ever adds. Removing a row from the model does not remove the conversion. - A run stops when rejections pile up.
Renta halts the run when more than 30% of a batch, or more than 10% of the rows delivered so far, come back rejected. Rows already delivered stay in Google Ads, and the next run picks up where this one stopped. - Consent is set per pipeline.
Both consent fields apply to every row of the sync. Different consent states need different pipelines.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.