# Retreaver integration

Source: https://skro.eu/docs/integrations/retreaver-and-skro

Connect Retreaver with Skro to associate inbound calls and conversion events with the campaigns that generated them.

## Step 1. Setup in Retreaver [#step-1-setup-in-retreaver]

1. Add the following essential elements to your Retreaver account:

- [Step 1. Create a Retreaver Call Tracking Campaign.](https://help.retreaver.com/hc/en-us/articles/360001080226-How-to-Set-Up-Your-First-Call-Tracking-Campaign)
- [Step 2. Create A Number Pool For Your Campaign](https://help.retreaver.com/hc/en-us/articles/360019902152-Real-time-Landing-Page-Tracking)
- [Step 3. Configure Your Number Pool For Real-Time Tracking](https://help.retreaver.com/hc/en-us/articles/360019902152-Real-time-Landing-Page-Tracking)
- [Step 4. Tell Retreaver Which Numbers To Replace On Your Landing Page](https://help.retreaver.com/hc/en-us/articles/360019902152-Real-time-Landing-Page-Tracking)

## Step 2. Set Up Parameter Mapping for Skro Click ID [#step-2-set-up-parameter-mapping-for-skro-click-id]

1. In Retreaver account, go to **Campaign settings** → **Retreaver JS Settings** → **Parameter Mappers** and click **Edit**.

![parameter mappers](/images/docs/retreaver/retreaver-int-3.png)

3. Add new URL parameter name mapping for Skro Click ID: **skro_click_id**. It is needed to fire Skro postback URL with correct click ID.

![parameter mappers](/images/docs/retreaver/retreaver-int-2.png)

## Step 3. Install JS tracking scripts [#step-3-install-js-tracking-scripts]

Select your tracking method:

<Tabs items={["Direct tracking", "Redirect tracking"]}>

<Tab value="Direct tracking" keepMounted>

1. Add your landing page as **Offer** in Skro.

![Add offer in Skro](/images/docs/retreaver/retreaver-int-8.png)

2. Select an Affiliate Network as **Retreaver**.

![Add Retreaver as Affiliate Network in Skro](/images/docs/retreaver/retreaver-int-7.png)

3. Create a campaign in Skro.

![Skro campaign](/images/docs/retreaver/retreaver-int-10.png)

4. Copy Skro tracking pixel from **Campaigns** → **Links** → **Direct** and paste it to your landing page between **HEAD** tags.

![retreaver integration step 1](/images/docs/retreaver/retreaver-int-1.png)

5. Copy this **Retreaver** tracking pixel to your landing page after Skro tracking pixel code.

<Callout type="success">

Remember to replace the **YOUR_CAMPAIGN_KEY** element in the script with the actual **Retreaver Campaign Key**, which can be taken from your Campaign settings → Retreaver JS Settings → Code → Advanced.

</Callout>

```javascript
<script type="text/javascript">
            (function () {
                var scriptElement = document.createElement('script');
                scriptElement.type = 'text/javascript';
                scriptElement.async = true;
                scriptElement.defer = true;
                scriptElement.src = document.location.protocol + '//dist.routingapi.com/jsapi/v1/retreaver.min.js';
                scriptElement.onload = scriptElement.onreadystatechange = function () {
        
                    Retreaver.configure({
                        host: 'api.routingapi.com',
                        prefix: document.location.protocol === 'https:' ? 'https' : 'http'
                    });
        
                    var campaign = new Retreaver.Campaign({campaign_key: 'YOUR_CAMPAIGN_ID'});
        
                    function getSkroClickIdFromCookies() {
                        const skroClickId = document.cookie.split(";").map(x => x.trim()).filter(x => x.startsWith("skro-click-id"))[0];
                        return skroClickId ? skroClickId.split("=")[1] : "";
                    }
        
                    campaign.request_number(function (number) {
                        var link = '<a href="tel:' + number.get('number') + '">' + number.get('formatted_number') + '</a>';
                        document.getElementById('phone-number').innerHTML = link;
                        
                        number.add_tags({
                            skro_click_id: window.skclid !== undefined ? window.skclid : getSkroClickIdFromCookies()
                        });
                    });
                };
                (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(scriptElement);
            })();
        </script>
```

6. Copy Skro generated **Offer URL** with tracking params and submit to the traffic source for approval.

![Skro tracking link](/images/docs/retreaver/retreaver-int-11.png)

</Tab>

<Tab value="Redirect tracking" keepMounted>

1. Add your landing page as **Offer** in Skro.

![Add offer in Skro](/images/docs/retreaver/retreaver-int-9.png)

2. Select an Affiliate Network as **Retreaver**.

![Add Retreaver as Affiliate Network in Skro](/images/docs/retreaver/retreaver-int-7.png)

<Callout type="warn">

```text
It is very important to map Skro click id to your offer URL. You must use this parameter name and macro: &skro_click_id={clickId}
```

</Callout>

3. Go back to Retreaver and navigate to **Campaign settings** → **Retreaver JS Settings** → **Code** and click **Copy**. Copy that code to your landing page between HEAD tags.

![Retreaver tracking pixel](/images/docs/retreaver/retreaver-int-6.png)

4. In Skro, go to **Campaigns** and click **Create** to add new campaign.

![Skro campaign](/images/docs/retreaver/retreaver-int-10.png)

5. After creating the campaign, copy the **Campaign Tracking URL** and submit to the traffic source for approval.

![Skro tracking link](/images/docs/retreaver/retreaver-int-12.png)

</Tab>

</Tabs>

## Step 4. Set up Webhooks for Retreaver campaign [#step-4-set-up-webhooks-for-retreaver-campaign]

In this example we are going to create two custom conversion events, **Phone Call** and **Purchase**.

1. In Skro, go to **Settings** → **Custom Conversions** and click **Create**.

2. Complete the required fields and click **Save & Close**.

![Event Purchase](/images/docs/retreaver/retreaver-int-5.png)

If you are using custom tracking domain then replace skrotrack.com with your custom tracking domain name.

<Callout type="success">

```text
Postback URL: https://skrotrack.com/postback?clickId=[skro_click_id]&payout=[revenue]&transactionId=[call_uuid]&p1=[caller_number]&p2=[caller_zip]&ce=Purchase
```

</Callout>

3. In Retreaver account, go to **Campaign settings** → **Webhooks** → **Add webhook** → choose the condition **If call converted** → select **GET** request → paste the Postback URL.

![Retreaver first postback](/images/docs/retreaver/retreaver-int-14.png)

4. Create another custom conversion for **Phone Call** events.

![Event Phone Call](/images/docs/retreaver/retreaver-int-13.png)

<Callout type="success">

```text
Postback URL: https://skrotrack.com/postback?clickId=[skro_click_id]&transactionId=[call_uuid]&p1=[caller_number]&p2=[caller_zip]&ce=PhoneCall
```

</Callout>

5. In Retreaver account, go to **Campaign settings** → **Webhooks** → **Add webhook** → choose the condition **When a call comes in** → select **GET** request → paste the Postback URL.

![Retreaver second postback](/images/docs/retreaver/retreaver-int-4.png)

The integration is ready.

## Verify the setup [#verify-the-setup]

Follow a campaign link and complete a test conversion using your provider’s test workflow. Confirm that the original click ID reaches the provider and is returned to Skro, then check the event and revenue in your campaign report.

<Callout title="Troubleshooting">

If data is missing, check the selected workspace, integration, campaign, and reporting date range. Compare parameter names and macro values with the examples in this guide before repeating the test.

</Callout>

## Related guides [#related-guides]

<Cards>

<Card title="Postback URL parameters" href="/docs/postback/parameters-in-postback-urls" />

<Card title="Custom conversions" href="/docs/postback/custom-conversions" />

</Cards>
