> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Marketcall and ClickFlare Integration Guide

> Track Marketcall offers in ClickFlare: pass the click ID in subid for calls and leads, and add a Custom postback under Automation, Postbacks.

![Marketcall and ClickFlare Integration](https://mintcdn.com/clickflare/gS923ib4WFySqxSL/images/integrations/covers/marketcall.png?fit=max\&auto=format\&n=gS923ib4WFySqxSL\&q=85\&s=f1ae84834b106a0fbbc5710292d3dfd1)

Marketcall is a pay-per-call and lead generation network, mostly for US verticals such as insurance, finance, home services, real estate, travel and rehab. Advertisers pay for qualified phone calls and for leads. You work in Marketcall's affiliate area: you apply to an offer, which creates a campaign under **My Campaigns**, and then send traffic to it.

To track Marketcall offers in ClickFlare, two links have to carry the ClickFlare click ID in both directions:

* **The offer URL** sends the ClickFlare click ID to Marketcall in `subid`. For **lead offers** that's Marketcall's tracking link. For **call offers** it's your own landing page, where Marketcall's call tracking code shows a tracked phone number.
* **The postback URL** sends it back to ClickFlare with every call or lead, together with your payout. You create it in Marketcall under **Automation → Postbacks**.

This guide covers both flows, how to stop one call from being counted twice, what Marketcall's call statuses mean for your numbers, and how to check that it all works.

> [!TIP]
>
> Only need the two values? The [Click ID & postback macros](/docs/en/integrations/click-id-and-postback-macros.md?q=marketcall) page has them ready to copy with your tracking domain.

***

## At a glance

To set up Marketcall with ClickFlare:

1. Set the domain and reporting time.
2. Create the Marketcall network.
3. Calls: add dynamic call tracking.
4. Create the offer with subid.
5. Add the postback in Marketcall.

Each step is explained in [Setup](#setup).

| | Marketcall + ClickFlare |
| - | - |
| **How it connects** | Custom postback under Automation, Postbacks |
| **What reaches ClickFlare** | Calls, leads, payout and call or lead ID |
| **Timing** | Real time, per conversion |
| **Key parameters** | `subid={cf_click_id}`, `{subid}`, `{earn}`, `{call_id}`, `{lead_id}` |
| **Works with** | Call offers with dynamic call tracking, and lead offers |
| **Good to know** | Use txid=`{call_id}` or `{lead_id}` so updates don't count twice. |

***

## How the data flows

```text theme={null}
Ad click
  → https://trk.yourdomain.com/cf/r/CAMPAIGN?...
     (ClickFlare records the click and generates the click ID)

Call offers:
  → https://your-landing-page.com/?subid=CF_CLICK_ID
     (Marketcall's call tracking code reads subid and shows a tracked number)
  → Visitor calls the number

Lead offers:
  → https://trkmcl.com/abc123/xyz789?subid=CF_CLICK_ID
     (Marketcall stores the ClickFlare click ID in subid)
  → Visitor submits the lead form

  → Marketcall fires your postback:
     https://trk.yourdomain.com/cf/cv?click_id=CF_CLICK_ID&payout=45.00&txid=MARKETCALL_CALL_ID
     (ClickFlare matches the conversion to the original click)
```

The two links mirror each other:

| Link | Built from | Marketcall side | ClickFlare side |
| - | - | - | - |
| **Offer URL** (in ClickFlare) | Marketcall's parameter + ClickFlare's token | `subid` | `{cf_click_id}` |
| **Postback URL** (in Marketcall) | ClickFlare's parameter + Marketcall's macros | `{subid}`, `{earn}`, `{call_id}` or `{lead_id}` | `click_id`, `payout`, `txid` |

> [!NOTE]
>
> **Offer URL = their parameter + your token. Postback URL = your parameter + their token.** Marketcall writes the click ID into `subid` on the way in and reads it back with the `{subid}` macro on the way out. `{earn}` is your payout.

***

## What you'll need

* An active ClickFlare account with your **own tracking domain** set up. Shared domains get flagged by networks and blocked by browsers. See [Tracking domains](/docs/en/settings/tracking-domains.md).
* A Marketcall affiliate account with an approved campaign for the offer you want to run.
* For call offers: a landing page you control, approved for the campaign, where you can add Marketcall's code before `</head>`.

***

## What the Marketcall template contains

ClickFlare has a **Marketcall** affiliate network template. It fills in the Marketcall macros ClickFlare needs.

![The Marketcall template in ClickFlare: Click Id is \{subid} and Payout is \{earn}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/marketcall/clickflare-marketcall-template-parameters.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=f9b49bb1ca20150f7f6520c032ca04aa)

| Field | Marketcall macro (AN Token) | ClickFlare parameter | What it does |
| - | - | - | - |
| **Click Id** | `{subid}` | `click_id` | Returns the ClickFlare click ID that the offer URL put in `subid`. Pre-filled by the template. |
| **Payout** | `{earn}` | `payout` | Your payout for the call or lead. Pre-filled by the template. |
| **Transaction ID** | `{call_id}` for calls, `{lead_id}` for leads (add it) | `txid` | Marketcall's ID for the call or lead. The template leaves it empty. See [Stop one call counting twice](#stop-one-call-counting-twice). |
| **Event Type** | leave empty | `ct` | The conversion type. Leave it empty, or see [Calls and leads as separate columns](#calls-and-leads-as-separate-columns). |

***

## Setup

Everything in ClickFlare is done from inside the campaign editor. Create the offer and the affiliate network inline as you go.

**1. Set up your own tracking domain**

Add a custom tracking domain before anything else, for example `trk.yourdomain.com`. The postback URL is built on this domain, so changing it later means updating the postback in Marketcall too. See [Tracking domains](/docs/en/settings/tracking-domains.md).

**2. Report conversions by postback time**

Go to **Settings → General Settings** and set **Conversion registration time reporting** to **Postback Timestamp**.

Marketcall reports a call on the day it happened, and a call can change status days later. With the default **Visit Timestamp**, ClickFlare reports it on the day of the original click, so the dates differ between the two platforms. See [Conversion registration time](/docs/en/settings/conversion-registration-time-reporting.md).

> [!NOTE]
>
> This is an account-wide setting. It changes the date conversions are reported on for every campaign.

**3. Create the campaign**

Go to **Campaigns → New Campaign**, choose **Redirect tracking**, pick your traffic source and select your tracking domain. See [Creating a campaign](/docs/en/campaigns/creating-a-campaign-in-click-flare.md).

**4. Create the Marketcall affiliate network**

While creating the offer for the campaign, create a new affiliate network in its **Affiliate Network** field. You can also create it first under **Affiliate Networks → + New**. Either way:

1. Search for **Marketcall** and pick the template.
2. Name it after the offer type, for example "Marketcall - Calls". If you run both call and lead offers, create a second one, "Marketcall - Leads", so each has its own transaction ID.
3. Set **Transaction ID** to `{call_id}` for calls, or `{lead_id}` for leads.
4. Leave **Event Type** empty.
5. Under **Conversion tracking**, select your own **Tracking Domain** and keep **S2S Postback URL** as the tracking method.
6. Set **Payout currency** to the currency Marketcall pays you in. Marketcall's own examples use USD.

ClickFlare builds the postback URL from these fields:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id={subid}&payout={earn}&txid={call_id}
```

![The Conversion tracking section of the Marketcall network in ClickFlare, with the generated postback URL: click\_id=\{subid}\&payout=\{earn}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/marketcall/clickflare-marketcall-postback-url.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=dc1f7eb59f7d7e7adb31cc9a5d736a1a)

Copy the postback URL and save the network.

**5. Calls: set up dynamic call tracking on your landing page**

Skip this step for lead offers. For call offers, Marketcall shows each visitor a tracked phone number, so it can tie the call to the visit and to its `subid`.

1. In Marketcall, go to **Call Tracking → Sites** and click **Add a site**.
2. Fill in your landing page URL and a **Tracking session duration**. Marketcall usually uses 30 minutes.
3. For **Number Substitution**, choose **DOM Selector** with `a[href^="tel:"]`, or another selector that matches the phone links on your page.
4. Set the **Phone Number Format**, for example `(XXX) XXX-XXXX`, and click **Add**.
5. Click **Get the code**, choose the approved campaign, and paste **both** codes into your landing page before `</head>`.

Marketcall's code reads `subid` from the page URL. ClickFlare puts it there in the next step.

**6. Create the offer in ClickFlare**

In the offer form:

1. Name the offer.
2. Select the Marketcall affiliate network you just created.
3. Paste the URL into **Offer URL** with `subid={cf_click_id}` at the end:

For **call offers**, use your landing page with the call tracking code:

```text theme={null}
https://your-landing-page.com/?subid={cf_click_id}
```

For **lead offers**, use the tracking link from **My Campaigns** in Marketcall:

```text theme={null}
https://trkmcl.com/abc123/xyz789?subid={cf_click_id}
```

![The Offer URL field of the ClickFlare New Offer form with a Marketcall link ending in subid=\{cf\_click\_id}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/marketcall/clickflare-marketcall-offer-url.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=73631eef69d93222a44b2e40e439ac26)

If you pasted the URL without `subid`, you can turn on **Append Click ID to Offer Url** instead. ClickFlare then adds `subid={cf_click_id}` from the template. Use one or the other, not both.

> [!WARNING]
>
> Write `{cf_click_id}` with braces. Without them Marketcall stores the literal text `cf_click_id`, the postback returns that text, and the conversion cannot be matched to a click.

Set the payout to **Auto** so ClickFlare uses the `payout` value from the postback.

**7. Add the postback in Marketcall**

In Marketcall, go to **Automation → Postbacks** and add a postback. Then set:

| Field | Value |
| - | - |
| **Template** | **Custom** |
| **Object** | **Call** for call offers. For lead offers, choose the lead object if your panel lists one. |
| **HTTP Method** | **GET** |
| **Trigger** | **Status** |
| **Status** | **All**, or one status. See [Call statuses](#call-statuses-and-what-clickflare-counts). |
| **Campaign** | **All**, or one campaign |
| **Link** | The ClickFlare postback URL you copied |

The macros Marketcall supports, such as `{call_id}`, `{action}` and `{duration}`, are listed under **Parameters** on the same page. Save the postback.

If you run lead offers too, add a second postback for leads with the lead network's URL, which ends in `txid={lead_id}`.

**8. Add a lander (optional)**

For lead offers, if you send traffic through a lander before the Marketcall link, the lander's CTA must use the **ClickFlare click URL**, not the Marketcall link. ClickFlare then adds the click ID when it redirects to the offer. See [Paths with landers and offers](/docs/en/campaigns/campaign-s-path-destination-to-landers-offers.md).

For call offers, your landing page already is the offer: no separate lander is needed.

**9. Save the campaign and launch**

Save the campaign, copy the campaign URL from the **Tracking** tab and use it in your ads. Before you spend money on traffic, run the checks in [Verify the setup](#verify-the-setup).

***

## Stop one call counting twice

By default ClickFlare keeps **one conversion per click ID**. If several postbacks arrive with the same click ID and no transaction ID, ClickFlare treats them as the same conversion and keeps the last one received. When they carry a `txid`, ClickFlare compares it: the **same** `txid` replaces the earlier conversion, a **different** `txid` adds a new one.

Marketcall can send more than one postback for the same call or lead:

* A postback with **Status: All** can fire when the call is created and again when its status changes. The `{action}` macro shows which one it was (create or update).
* Marketcall's own lead guide for its Keitaro tracker adds **two** postbacks with the same URL: one on a **Created** trigger and one on an **Updated** trigger. If your panel offers these triggers, the same lead fires twice.

Both cases are safe as long as the `txid` is Marketcall's ID for the call or lead:

| txid | What ClickFlare does with a create and an update |
| - | - |
| `{call_id}` (calls) or `{lead_id}` (leads) | **Recommended.** Same ID, so the update replaces the first postback. One conversion, with the latest payout. |
| empty | One conversion per click. Safe for duplicates, but two real calls from the same click merge into one. |
| `{date}` or anything that changes per send | Wrong: every update adds another conversion. |

If you can't add a transaction ID, keep a single postback on a single trigger, so each call or lead fires once.

> [!NOTE]
>
> Marketcall documents `{lead_id}` in its lead postback examples, and lists `{call_id}` as the Marketcall call identifier on the postback page. Check that both appear under **Parameters** in your panel before you rely on them.

***

## Call statuses and what ClickFlare counts

Every Marketcall call gets a status. The ones that matter for your numbers:

| Status | Meaning |
| - | - |
| **HOLD** | The advertiser is reviewing the call. When the hold time runs out, the call is approved automatically. |
| **Approved** | Paid. Marketcall notes that approved calls can still be adjusted after later quality, compliance or fraud reviews. |
| **Cancelled by Merchant**, **Refused** | Not paid. You can appeal refused calls, usually within 7 days, shorter on some offers. |
| **Non-unique**, **Non first** | A repeat call from the same caller. |
| **Parsed**, **No connect**, **No target** | The call never reached a buyer. |
| **Tarificated**, **Chargeable** | The buyer had no balance at the time of the call. |

ClickFlare doesn't read a status from the postback. It records a conversion for every postback it receives, with the payout in it. So the **Status** field on your Marketcall postback decides what you see:

* **Status: All** gets calls into ClickFlare fast. With `txid={call_id}`, each status change replaces the conversion with the latest payout. Ask your manager what `{earn}` holds for a refused call, because a call that ends refused may keep a payout in ClickFlare if the update doesn't change it.
* **One status, such as Approved**, makes ClickFlare count only paid calls, but they arrive after the hold time.

To see the status in ClickFlare without changing how it counts, add `&param1={state_title}` to the end of the postback in Marketcall. ClickFlare stores it as an extra parameter you can report on. See [Postback parameters](/docs/en/tracking/click-flare-parameters-in-postback-urls.md).

***

## Calls and leads as separate columns

If one campaign gets both calls and leads, you can report them as their own conversion types:

1. Create two [custom conversions](/docs/en/settings/custom-conversions.md) in ClickFlare, for example with the parameters `call` and `lead`.
2. Add `&ct=call` to the end of the call postback in Marketcall, and `&ct=lead` to the lead postback:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id={subid}&payout={earn}&txid={call_id}&ct=call
```

> [!WARNING]
>
> The `ct` value must **exactly match** a parameter of a custom conversion in ClickFlare. If it doesn't, ClickFlare records a regular conversion instead.

***

## Verify the setup

**1. Click through the campaign**

Open the ClickFlare campaign URL. For calls, check that your landing page loads with `subid=` and a real ClickFlare click ID in the address bar, not the literal text `{cf_click_id}`, and that the phone number on the page changes to a Marketcall number. For leads, check the same on the first request to the Marketcall link.

**2. Generate a test call or lead**

Call the number from the landing page, or submit a test lead, from the session you just opened. In Marketcall, open **Calls** and click **Call Tracking Info** to see the session details.

**3. Check the conversion in ClickFlare**

The conversion should appear on the campaign with the payout from Marketcall. In **Logs → Event Logs**, check that it arrived with a `txid` (the call or lead ID). A short test call may be parsed or refused and pay 0.

***

## Troubleshooting

> [accordion] Calls show in Marketcall but not in ClickFlare
>
> Work through these in order:
>
> * **subid is empty in Marketcall.** The landing page URL in the ClickFlare offer is missing `subid={cf_click_id}`, or the call tracking code isn't on the page that receives it.
> * **The call tracking code is incomplete.** Both codes from **Get the code** must be in the page before `</head>`, and the page must be the one you added under **Call Tracking → Sites**.
> * **The caller used a number outside the tracking session.** A call after the session ends, or to a number copied from elsewhere, can't be tied to the visit.
> * **The postback doesn't cover the call.** Check **Object**, **Status** and **Campaign** on the postback in **Automation → Postbacks**.
>
> See [Troubleshooting S2S postbacks](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md) for the general checks.

> [accordion] The same call shows twice in ClickFlare
>
> The postback has a `txid` that changes on every send, or you have two postbacks with different URLs for the same calls. Use `txid={call_id}` (or `{lead_id}` for leads) on every postback for the same calls.

> [accordion] Two different calls from one click show as one
>
> The postback has no `txid`. Add `{call_id}` as the transaction ID in the ClickFlare network and in the postback in Marketcall.

> [accordion] The payout is 0 or in the wrong currency
>
> * Check that the postback has `payout={earn}` and the offer's payout is set to **Auto** in ClickFlare.
> * A call that's parsed, refused or not connected pays 0.
> * Set the affiliate network's **Payout currency** in ClickFlare to the currency Marketcall pays you in.

***

## FAQ

> [accordion] Does ClickFlare integrate with Marketcall?
>
> Yes. ClickFlare has a Marketcall affiliate network template. You pass the click ID in subid and Marketcall fires ClickFlare's postback with `{subid}`, `{earn}` and the call or lead ID.

> [accordion] Can Marketcall send the postback as JSON?
>
> The postback page has an **HTTP Method** setting and a **JSON** tab under **Parameters**. ClickFlare accepts a JSON POST too, with the body keys `cf_click_id`, `payout`, `txid`, `ct` and `param1` to `param20`. Either works. GET is simpler to set up here. With JSON, map `{call_id}` (or `{lead_id}`) to `txid` so calls don't count twice.

> [accordion] Marketcall offers me a Keitaro tracker. Do I need it?
>
> No. Marketcall gives affiliates access to its own Keitaro instance, and its guides are written for it. With ClickFlare you don't need Keitaro: ClickFlare plays the same role, and the subid and postback setup above replaces Keitaro's.

> [accordion] Can I pass more data to Marketcall?
>
> Marketcall's guides mention `subid1`, `subid2` and `subid3` as extra tracking values on its own landing pages. Ask your manager whether your tracking links and call tracking code accept them too. Either way, keep `subid` for the click ID.

> [accordion] Can I send the conversion back to my traffic source?
>
> Yes. Once ClickFlare records the Marketcall call or lead, it can send it to the traffic source through the traffic source's postback or conversion API integration. Marketcall also has its own Facebook, TikTok, Google, Snapchat and NewsBreak postback templates. Use either one, not both, or the traffic source counts the call twice.

***

## Related

> [card] [Macro reference](/docs/en/integrations/click-id-and-postback-macros.md)
>
> Every network's values

> [card] [Custom conversions](/docs/en/settings/custom-conversions.md)
>
> Calls and leads as columns

> [card] [Postback issues](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md)
>
> Troubleshoot S2S


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.