# Connect Reverse ETL Source to Yandex.Metrica Offline Events

This guide takes you through the steps to connect a Reverse ETL source to the Yandex.Metrica Offline Events destination.

## Set up connection 

{{< warning >}}
**The Reverse ETL feature supports only source-driven pipeline configuration.**

Make sure you have [set up a RETL source]({{< ref "sources/reverse-etl/_index.md" >}}) and connected it to your Yandex.Metrica Offline Events destination before following the below steps.
{{< /warning >}}

1. [Confirm the connection settings]({{< ref "destinations/reverse-etl-destinations/yandex-metrica-offline-events/setup-guide.md#connection-settings" >}}) for Yandex.Metrica Offline Events destination and click **Continue**.

{{< info >}}
To sync the data successfully, make sure to give RudderStack the necessary permissions to access your Yandex.Metrica account. Also, enter the **Counter ID** and **Goal ID** in the configuration settings.
{{< /info >}}

2. In the [Data Mapping]({{< ref "data-pipelines/reverse-etl/developer-guides/visual-data-mapper.md" >}}) section, select the **Object**.
3. Specify the [Sync mode]({{< ref "data-pipelines/reverse-etl/developer-guides/sync-modes.md" >}}) to specify how RudderStack should sync the data to Yandex.Metrica.
4. In **Choose identifier**, specify the warehouse column that RudderStack uses to identify your records.

{{< info >}}
You can map this warehouse column to any of the following Yandex.Metrica fields:

- User ID
- Client ID
- YCLID
{{< /info >}}

5. Map the other warehouse columns to specific Yandex.Metrica fields using the **Map fields** setting.

{{< image src="images/event-stream-destinations/yandex-metrica-map-fields.webp" >}}

### Supported mappings

RudderStack maps the following properties to the corresponding Yandex.Metrica properties:

{{< info >}}
RudderStack [sends the offline conversion events](https://yandex.com/dev/metrika/doc/api2/management/offline_conversion/upload.html#upload__response) as [`identify`]({{< ref "event-spec/standard-events/identify.md" >}}) calls to Yandex.Metrica.
{{< /info >}}

| RudderStack property | Yandex.Metrica property | Description |
| :----| :----| :----|  
| `userId` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | `USER_ID` | Mapped when the user ID is assigned by the site owner. |
`userId` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | `CLIENT_ID` | Mapped when the site visitor ID is assigned by Yandex.Metrica. |
| `userId`<br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | `YCLID` | Mapped when the click ID on a Yandex.Direct ad is assigned by Yandex.Direct. |
| `properties.target` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | `Target` | The goal ID. |
| `timestamp` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | `DateTime` | Date and time of the conversion in UNIX timestamp. |
| `properties.price` | `price` |  Cost of the goal specified using a dot (`.`) as the decimal operator. | 
| `properties.currency` | `currency` | Currency using the three-letter code as per ISO 4217 standards. | 
| `properties.comment` | `comment` | Sent as a query parameter. | 

## FAQ

#### Why can't I add a Reverse ETL source from the destination page?

The Reverse ETL feature supports only source-driven pipeline configuration. It means that you must configure a Reverse ETL source in RudderStack and then connect it to a new or existing destination. Note that this destination should not be connected to any other source.

See [Reverse ETL FAQ]({{< ref "data-pipelines/reverse-etl/developer-guides/faq.md" >}}) for more information.

<br />
