
With Synerise, businesses can optimize their marketing strategies and bridge the gap between digital advertising and brick-and-mortar sales. By integrating online and offline operations, you can accurately track conversions from Google Ads when customers purchase through an ad and choose in-store pickup and payment. Thanks to Synerise's integration with Google Ads, you can automate the process of sending offline conversions to your Google Ads account. This seamless attribution of offline conversions to specific ad campaigns empowers businesses to optimize their marketing strategies and successfully connect digital advertising with brick-and-mortar sales. It's important to note that an offline conversion can encompass various offline events, such as visiting a store, restaurant, or any other conversion event your business recognizes.

In this use case, we will create a workflow to send offline conversion data to Google Ads. The workflow will be triggered by a custom event - purchase through an ad with in-store pickup and payment. 

## Prerequisites 
---
- [Implement SDK to a website](/developers/web/installation-and-configuration) to which a profile is referred after clicking the ad.
- [Implement sending events about completing offline conversion](https://developers.synerise.com/DataManagement/DataManagement.html#operation/CustomEvent). It can include `value` and `currency` parameters (there is an option to send these additional parameters to Google Ads)
- Create a Google Ads account.
- Launch an ad campaign through Google Ads.
- [Create an event expression](/docs/automation/integration/google-ads/google-ads-send-offline-conversions#create-an-expression) to extract the `gclid` parameter from the URL of visited website.
- [Create an aggregate](/docs/automation/integration/google-ads/google-ads-send-offline-conversions#create-an-aggregate) that retrieves the value of the `gclid` parameter from the latest page visit to your website (or according to your business needs). 


  <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

  In this case, the conversion will be attributed to the last clicked ad before the conversion. This attribution is configurable, allowing you to determine which clicked ad should be associated with the conversion. You can configure these settings by specifying the date or other conditions, or by changing the aggregator from "last" to "first."

  </div></div></div>


## Create a workflow to send conversion data to Google Ads
---
Create a workflow which sends offline conversion data to Google Ads, after a customer pays for an order in a brick-and-mortar store.

1. Go to <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/icons/automation-hub-icon.svg" alt="Automation Hub icon" class="icon" > **Automation Hub > Workflows > New workflow**.  
2. Enter the name of the workflow.

### Define the trigger node
As a trigger, we will use the `offline.transaction` custom event for a transaction made in brick-and-mortar store when picking up an order.

1. As the first node of the workflow, add **Profile Event**.
2.  In the configuration of the node, from the **Choose event** dropdown menu, choose `offline.transaction` event.  
2. Click **Apply**.

### Configure the Send Offline Conversion node

1. As the next node, add **Google Ads > Send Offline Conversion**. 
2. In the configuration of the node, from the dropdown list, select the connection.  
   - If no connections are available or you want to create a new one, see [Create a connection](/docs/automation/integration/google-ads/google-ads-send-offline-conversions#create-a-connection).
   - If you selected an existing connection, proceed to next step.
2. In the **Google Ads customer ID** field, enter the ID of the Google Ads account. It can't contain dashes. [Learn how to find this number](https://support.google.com/google-ads/answer/1704344?hl=en).
2. In the **The Google click ID (GCLID) associated with this conversion** field, enter the part of the URL that starts with `?gclid=`.  
    For that purpose, you can enter a Jinjava tag that inserts the value of the [aggregate you created as the part of the prerequisites](#prerequisites): `{% aggregate AGGREGATE_ID %}{{ aggregate_result[0] }}{% endaggregate %}`. Replace the `AGGREGATE_ID` with an actual ID of the aggregate, you can find it in the URL while previewing the aggregate.
5. In the **Conversion action ID** field, enter the ID of the conversion. You can find it in the Google Ads panel. When you go to conversion action details, the URL contains the `ctId` parameter (for example, `ctId=123456789`) whose value is the conversion action ID. [Learn more about conversion action in Google Ads](https://support.google.com/google-ads/answer/6032150?hl=en).
6.  In the **Conversion time** field, enter the time of the conversion in the following format: `yyyy-mm-dd hh:mm:ss+|-hh:mm`.  
    For that purpose, you can use [a Jinjava code](/developers/inserts/automation) that inserts date of conversion dynamically, from the trigger, that is, offline conversion. For example, `{{ event.params.time|timestamp_to_time|datetimeformat('%y-%m-%d %H:%M:%S+2:00') }}`.     
7. Optionally, in the **Conversion value for the advertiser** field, enter the value. For that purpose, you can use [a Jinjava code](/developers/inserts/automation) that inserts the value dynamically based on the event context from the trigger, that is, offline conversion. For example, `{{ event.params.value }}`.
8. Optionally, in the **Currency associated with the conversion value** field, enter the currency. For that purpose, you can use [a Jinjava code](/developers/inserts/automation) that inserts the value dynamically based on the event context from the trigger, that is, offline conversion `{{ event.parmas.currency }}`.
9. In **Customer match consent import script** type jinjava script to import customer match consent from your database. You can use constant value.
10. In **Ad Personalization consent import source** type jinjava script to import ad personalization consent from your database. You can use sonstant value.
9. Confirm the settings by clicking **Apply**.  

<figure>
<img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/googlads_offline.png" alt="The view of the configuration of the Send Offline Conversion node"  class="large">
<figcaption>Configuration of the Send Offline Conversion node</figcaption>
</figure> 

### Add the finishing node
1. Add the **End** node.
2. In the upper right corner, click **Save & Run**.  
    **Result**:  
    <figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/ga_workflow.png" class="full" alt="The view of the workflow configuration"><figcaption>Workflow configuration</figcaption></figure>

## Check the use case set up on the Synerise Demo workspace
---
In Synerise Demo workspace, you can check the configuration of:
- [expression](https://app.synerise.com/analytics/expressions/3e366c6a-f4a4-4013-8c92-e3b22274e296) 
- [aggregate](https://app.synerise.com/analytics/aggregates/8ebdd493-0d08-3ad0-9aa8-d87c616ca286)
- [workflow](https://app.synerise.com/automations/automation-diagram/4bac04d4-f883-4800-8b83-215b9a123a43)


If you’re our partner or client, you already have automatic access to the **Synerise Demo workspace (1590)**, where you can explore all the configured elements of this use case and copy them to your workspace.  

If you’re not a partner or client yet, we encourage you to fill out the contact [form](https://demo.synerise.com/request) to schedule a meeting with our representatives. They’ll be happy to show you how our demo works and discuss how you can apply this use case in your business. 

## Read more
---

- [Aggregates](/docs/analytics/aggregates)
- [Automation Hub](/docs/automation)
- [Expressions](/docs/analytics/expressions)
- [Google Ads integration](/docs/automation/integration/google-ads)
- [Reusing event context from preceding nodes](/docs/automation/event-params-reuse)