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

# ShareChat as a Traffic Source

> Track ShareChat and Moj ads in ClickFlare and send conversions with their value back to ShareChat's S2S conversion API.

![ShareChat traffic source template](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/covers/templates/sharechat.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=161c6ef2ec78dc531f2313e4ef7a7055)

ShareChat is an Indian social media app, owned by Mohalla Tech, with a large audience in regional Indian languages. Its self-serve platform, ShareChat Ads Manager, runs native in-feed image and video ads on ShareChat and on Moj, its short-video app. This guide sets up ShareChat as a traffic source in ClickFlare. It covers passing ShareChat's click data into your reports and sending conversions, with their value, back to ShareChat so its optimization and your stats agree.

You do everything from the **campaign editor**. The ShareChat traffic source is created inline, without leaving the campaign.

The ShareChat template needs some work before launch. Its postback has two placeholders to replace: your ADVID in the path and the event name. This guide goes through each one.

## At a glance

| | |
| - | - |
| **Ad formats** | Native in-feed display (image) and native in-feed video, on ShareChat and Moj |
| **Click ID macro** | `%%DELIVERY_IDENTIFIER%%`, mandatory for conversion tracking |
| **Conversion tracking** | S2S postback to ShareChat's conversion API on `sc-s2s-external.sharechat.com` (Direct Integration) |
| **Payout passed back** | Yes, in the `eventValue` parameter |
| **Multiple events** | Yes, one postback per ShareChat event name |
| **Cost** | Not passed. The template's Cost row is empty. Cost Model: **CPC**. |
| **Conversion API** | No ClickFlare integration. The postback itself is ShareChat's server-to-server conversion API. |

## How it works

**1. ShareChat sends the click**

A visitor taps your ad. ShareChat opens your ClickFlare campaign URL and fills in its macros: the click ID in `clickId`, plus the campaign name, the ad ID, the advertising ID of the device and ShareChat's user identifier.

**2. ClickFlare stores the ShareChat click ID**

ClickFlare saves the value of `clickId` as the visit's **External ID**, stores the other values in tracking fields, and redirects the visitor to your lander or offer.

**3. The conversion reaches ClickFlare**

Your affiliate network or store posts the conversion back to ClickFlare, matched on the ClickFlare click ID.

**4. ClickFlare posts it back to ShareChat**

ClickFlare fires the ShareChat postback, replacing `{external_id}` with the stored ShareChat click ID, `{payout}` with the revenue, `{unix_conversion_timestamp}` with the conversion time in Unix seconds, and the tracking field tokens with the campaign name, ad ID, advertising ID and user ID from the click. ShareChat matches it to the original click.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`clickId`) and *ShareChat's* macro (`%%DELIVERY_IDENTIFIER%%`). The template does this for you. In the **postback URL** you write *ShareChat's* parameter (`clickId`) and *ClickFlare's* token (`{external_id}`). Here the two parameter names happen to be the same.

## Before you start

* **Set up your own tracking domain.** Run the campaign and the postback on your own custom domain. Shared domains get flagged by networks and blocked by browsers. See [Custom Domains](https://clickflare.com/docs/en/settings/custom-domains.md).
* **Have an offer ready in ClickFlare**, and its affiliate network set up to post conversions back to ClickFlare. See [Creating an Offer](https://clickflare.com/docs/en/tracking/creating-an-offer-1.md) and [Adding an Affiliate Network](https://clickflare.com/docs/en/tracking/adding-an-affiliate-network.md).
* **Register a data source in ShareChat with Direct Integration.** In ShareChat Ads Manager, open **Event Manager** from the left menu and click **Setup New Data Source**. Choose **Mobile app conversion APIs** and click **Get Started**. On **App Details**, enter the app name and Play Store URL, and click **Next**. On **Integration Partner**, don't pick any of the listed partners: click **Direct Integration** at the bottom.
* **Note your ADVID.** ShareChat identifies you in every postback with an ADVID. It is the app name you entered on **App Details**, exactly as written, including its case. In **Event Manager**, the panel on the right lists it under **Mobile app conversion API**. It is *not* the **Advertiser Id** shown at the top of that panel.
* **Talk to your ShareChat account manager.** ShareChat's ad-ops team verifies Direct Integration postbacks, and has to enable the **Conversion** campaign objective for your ad account. Until they do, the objective is locked. See Step 5 below.
* **Decide which conversions ShareChat should receive.** ShareChat optimizes on what you send it. If your funnel has several steps (registration, then purchase), decide now whether to send one event or several. See [Tracking several events](#tracking-several-events).

***

## Step 1 – Create the campaign and the ShareChat traffic source

1. Go to **Campaigns** and click **New**.
2. In **Traffic Source**, open the dropdown and click **+ New Traffic Source**.
3. Type `sharechat` in the search box and select the **ShareChat** template.
4. Enter a **Name**, for example `ShareChat`.
5. Set **Cost currency** to the currency your ShareChat Ads Manager account is billed in, usually INR. See [Multicurrency in ClickFlare](https://clickflare.com/docs/en/tracking/multicurrency-support-in-click-flare-how-it-works.md).

The template fills in the **Parameters** table for you:

| Name | TS Parameter | TS Token (ShareChat macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| Cost | *(empty)* | *(empty)* | `{cost}` | Nothing. ShareChat passes no cost here. See [Cost](#cost). |
| External ID | `clickId` | `%%DELIVERY_IDENTIFIER%%` | `{external_id}` | ShareChat's click ID. Required for the postback. |
| Campaign name | `campaign_name` | `%%CAMPAIGN_NAME%%` | `{trackingField1}` | The ShareChat campaign name. Sent back as `campaignName`. |
| gaid | `gaid` | `%%ADVERTISER_IDENTIFIER%%` | `{trackingField2}` | The device's Google advertising ID. Sent back as `gaid`. |
| adId | `adid` | `%%AD_ID%%` | `{trackingField3}` | The ad (creative). Sent back as `adId`. |
| userId | `userid` | `%%PUBLISHER_IDENTIFIER%%` | `{trackingField4}` | ShareChat's identifier for the user. Sent back as `userId`. |

![The ShareChat template's Parameters table in ClickFlare, with ShareChat's macros pre-filled](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/templates/sharechat/parameters.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=5f36b14dc3c702b395a34cc2311b0428)

Each tracking field becomes a column you can group reports by. **Campaign name** and **adId** are the ones you will use most: they tell you which campaigns and creatives convert.

The four tracking fields do a second job. The template's postback sends them back to ShareChat (`campaignName`, `gaid`, `adId`, `userId`), so ShareChat receives the same values it sent on the click. Don't remove these rows, and don't move them to other tracking fields, or the postback sends them empty.

> [!WARNING]
>
> Don't change or remove the `External ID` row. Without `%%DELIVERY_IDENTIFIER%%` in the campaign URL, ClickFlare stores no ShareChat click ID, and ShareChat can't match any conversion. ShareChat matches every postback on this value.

To pass more ShareChat data, click **Add Parameter**, give it a name and parameter, and enter the ShareChat macro as the **TS Token**. ClickFlare assigns the next free tracking field. ShareChat also offers `%%CAMPAIGN_ID%%`, the campaign ID, which the template doesn't include. Add it if you want a campaign ID column next to the name.

## Step 2 – Set up the postback

The postback is what sends conversions to ShareChat. It lives on the traffic source, so every campaign that uses this ShareChat traffic source sends conversions the same way.

1. In the **New Traffic Source** form, scroll to **Passing conversion info to traffic source**.
2. Turn on **Traffic source postback URL**. The template's postback appears:

```text theme={null}
https://sc-s2s-external.sharechat.com/a1s-s2s-service/v1/events/REPLACE_ADVID/post?clickId={external_id}&gaid={trackingField2}&campaignName={trackingField1}&adId={trackingField3}&userId={trackingField4}&EventTime={unix_conversion_timestamp}&eventName=REPLACE,&eventValue={payout}
```

![The Traffic source postback URL switched on, showing the ShareChat template's postback](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/templates/sharechat/postback.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=14dd9235ea86d4feb2e1b777ce1c7856)

It already sends the click ID (`{external_id}`), the event time (`{unix_conversion_timestamp}`), the value (`{payout}`) and the four click details, all as ClickFlare tokens. Replace the two placeholders:

| Placeholder | Replace it with | Where to find it |
| - | - | - |
| `REPLACE_ADVID` (in the path) | Your ADVID, for example `MyApp` | **Event Manager** in ShareChat Ads Manager, under **Mobile app conversion API**. Not the Advertiser Id. |
| `REPLACE,` (in `eventName=REPLACE,`) | The ShareChat event this postback reports, for example `transaction` | One of ShareChat's event names, below. Lowercase, exactly as written. |

The template has a stray comma after `REPLACE`. Replace `REPLACE,` including the comma, so the parameter reads `eventName=transaction&eventValue={payout}`. ShareChat accepts these event names:

| ShareChat event | Use it for |
| - | - |
| `install` | An app install |
| `registration` | A sign-up, registration or completed lead |
| `transaction` | A purchase, payment, deposit or any revenue event |
| `page_visits` | A key page or screen view |

The result, for a purchase:

```text theme={null}
https://sc-s2s-external.sharechat.com/a1s-s2s-service/v1/events/MyApp/post?clickId={external_id}&gaid={trackingField2}&campaignName={trackingField1}&adId={trackingField3}&userId={trackingField4}&EventTime={unix_conversion_timestamp}&eventName=transaction&eventValue={payout}
```

3. In the dropdown on the left, choose the ClickFlare event that should fire the postback. Keep **Conversions** to send every conversion. If your final action is a custom conversion (for example `purchase`), choose that instead.
4. Click **Save**. You are back in the campaign editor with the ShareChat traffic source selected.

> [!WARNING]
>
> Replace `REPLACE_ADVID` with your ADVID, not with the Advertiser Id that ShareChat Ads Manager shows. ShareChat can accept a postback with a wrong ADVID without an error, but the conversions won't land on your data source. Confirm the exact value, with its case, with your ShareChat account manager.

### The event time

The template fills `EventTime` with `{unix_conversion_timestamp}`. ClickFlare replaces it with the time of the conversion in Unix seconds, which is the format ShareChat expects. Leave it as it is.

### The value ShareChat receives

`eventValue={payout}` sends the conversion's payout as ClickFlare records it. For a `transaction`, that is the revenue, for example `499.00`. For events with no revenue, ShareChat's own integrations send `eventValue=1`. If a postback should count an event without a value, replace `{payout}` with `1` in that postback.

The postback sends no currency. Keep your payouts in one currency, ideally the one your ShareChat account uses, so the values mean the same thing on both sides. See [Multicurrency in ClickFlare](https://clickflare.com/docs/en/tracking/multicurrency-support-in-click-flare-how-it-works.md).

To learn what each postback token does, see [How to Configure a Traffic Source S2S Postback URL](https://clickflare.com/docs/en/tracking/how-to-configure-a-traffic-source-s2s-postback-url.md).

## Step 3 – Finish the campaign and copy its URL

1. Name the campaign.
2. Set the **Cost Model** to **CPC** and enter your average cost per click. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for ShareChat.
4. Click **Next** and, on **Destination**, add your lander (optional) and your offer.
5. Save, open **Tracking**, select your own tracking domain and copy the **campaign URL**.

The campaign URL already contains every ShareChat macro from the template, for example `clickId=%%DELIVERY_IDENTIFIER%%` and `adid=%%AD_ID%%`.

If you use a lander, its call-to-action must link to the ClickFlare **click URL**, not to the offer directly. Otherwise the visit reaches the offer without a ClickFlare click ID, and the conversion cannot be traced back to ShareChat.

See [Creating a Campaign in ClickFlare](https://clickflare.com/docs/en/campaigns/creating-a-campaign-in-click-flare.md).

## Step 4 – Create the campaign in ShareChat

1. In ShareChat Ads Manager, click **New Campaign** on the overview page. The form has three sections: **Campaign Info**, **Set Up Campaign** and **Creatives**.
2. In **Campaign Info**, pick your **Advertiser Categories**, enter a **Campaign Title** and, under **Campaign Objectives**, choose **Conversion**. If it is locked, ad-ops hasn't enabled it for your account yet.
3. Choose an **Ad Format**, for example **Native in-feed Display** or **Native in-feed Video**, and the placements: ShareChat, Moj or both.
4. In **Set Up Campaign**, set **Budget & Schedule** and **Target Audience** as usual.
5. In **Creatives**, upload your image or video. Wherever the creative asks for the **CTA** or **Landing Page URL**, paste the ClickFlare campaign URL.
6. Submit the campaign. It runs after ShareChat approves the creative.

Paste the URL exactly as ClickFlare gives it. ShareChat replaces each `%%...%%` macro when the ad is tapped.

## Step 5 – Test the integration

ShareChat Ads Manager has no self-serve postback check. ShareChat's ad-ops team verifies Direct Integration postbacks for you, and asks every Direct Integration advertiser to do this before running conversion campaigns.

1. Open your ClickFlare campaign URL on a phone, with test values in place of the macros, for example `clickId=cf-test-1`.
2. Complete the offer the way a real visitor would, so a conversion reaches ClickFlare.
3. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `sc-s2s-external.sharechat.com` confirms ClickFlare sent the postback. ShareChat answers with `200` and the message `Events received.` when it accepts it.
4. Note the time, and message your ShareChat account manager or ad-ops team with your ADVID, the event name you sent, the test click ID and the time.
5. In the same message, ask them to enable the **Conversion** objective for your ad account.

If the test conversion doesn't show in ClickFlare at all, open **Logs → Event Logs** to see whether the conversion arrived and which event it was recorded as.

***

## Tracking several events

ShareChat can receive several events from the same campaign, for example a `registration` and a `transaction`. Each event needs its own postback, with its own `eventName`:

```text theme={null}
https://sc-s2s-external.sharechat.com/a1s-s2s-service/v1/events/MyApp/post?clickId={external_id}&gaid={trackingField2}&campaignName={trackingField1}&adId={trackingField3}&userId={trackingField4}&EventTime={unix_conversion_timestamp}&eventName=registration&eventValue=1
https://sc-s2s-external.sharechat.com/a1s-s2s-service/v1/events/MyApp/post?clickId={external_id}&gaid={trackingField2}&campaignName={trackingField1}&adId={trackingField3}&userId={trackingField4}&EventTime={unix_conversion_timestamp}&eventName=transaction&eventValue={payout}
```

1. In ClickFlare, create a [custom conversion](https://clickflare.com/docs/en/settings/custom-conversions.md) for each step, for example `lead` and `purchase`.
2. On the ShareChat traffic source, click **+ Another postback URL** once per extra event.
3. Map each postback to its ClickFlare event: the `lead` custom conversion to the `eventName=registration` URL, `purchase` to `eventName=transaction`.
4. Have ad-ops verify each event, as in Step 5.

> **Rules for multi-event postbacks**
>
> * Use only ShareChat's event names: `install`, `registration`, `transaction`, `page_visits`. ShareChat accepts only these.
> * One postback per event. Don't combine events in one URL.
> * You can map more than one ClickFlare event to the same ShareChat event, for example two payment steps to `transaction`.
> * Send revenue in `eventValue` for `transaction`. Use `1` for events without revenue.

> **Sending only one event**
>
> If ShareChat should only learn from your final sale, keep a single postback and map it to that event. Earlier steps still show in ClickFlare. They just don't reach ShareChat.
>
> To send a postback only for some conversions, for example only those above a certain payout, use **Event filter** under the postback to add conditions.

## Cost

The template passes no cost. Its Cost row has no parameter and no macro, and ShareChat has no cost macro in its click URL. ClickFlare has no cost integration for ShareChat either.

Set the campaign's **Cost Model** to **CPC** and enter your average cost per click from ShareChat Ads Manager. If you buy on impressions, divide your spend by your clicks to get the cost per click. A CPM bid divided by 1,000 doesn't work here: on an in-feed ad, most impressions are not clicks.

> [!NOTE]
>
> Compare the **Cost** column with your ShareChat spend after the first days. When they differ, correct them with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md), and update the CPC value on the campaign.

See [Cost Models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md) and [How to Set Up Traffic Source Cost Tracking](https://clickflare.com/docs/en/tracking/how-to-setup-traffic-source-cost-tracking.md).

## Delayed revenue

If your offer reports revenue hours or days after the click, for example search arbitrage feeds or subscriptions, see [Sending Delayed Revenue to Traffic Sources](https://clickflare.com/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md) to pass that revenue to ShareChat once it arrives.

***

## Troubleshooting

> **ShareChat ad-ops can't find the test postback**
>
> * `REPLACE_ADVID` was replaced with the Advertiser Id instead of the ADVID, or the ADVID's case differs. ShareChat accepts the request, but files it under another data source.
> * `eventName` still says `REPLACE,`, the comma was left behind, or the name is one ShareChat doesn't accept.
> * The campaign URL was opened without `clickId`, so the postback sent `clickId=` empty.

> **Conversions show in ClickFlare but not in ShareChat**
>
> * **Traffic source postback URL** is off on the ShareChat traffic source.
> * **Disable sending postbacks to traffic source** is on in the campaign.
> * The postback is mapped to a different event than the one the conversion logged. Check **Logs → Event Logs** to see which event was recorded.
> * Check **Logs → Postback Status**: a failed request shows the status code ShareChat returned.

> **The Conversion objective is locked**
>
> ShareChat enables it per ad account for advertisers on S2S postbacks. Ask your ShareChat account manager or ad-ops team to turn it on.

> **Campaign name or adId columns are empty**
>
> The macros were not replaced, usually because the URL was edited or pasted somewhere ShareChat doesn't process macros. Paste the campaign URL from ClickFlare unchanged. Empty tracking fields also mean the postback sends empty `campaignName` and `adId`. See [Traffic Source Tokens Arriving Empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md).

For the general checklist, see [Conversions not showing](https://clickflare.com/docs/en/troubleshooting/conversions-not-showing.md).

***

**FREQUENTLY ASKED QUESTIONS**

> **Q1:** Can I use the same ShareChat traffic source for all my ShareChat campaigns?

**A1:** Yes, as long as they report to the same ADVID. The postback is set once on the traffic source and every campaign using it sends conversions the same way. Create a second ShareChat traffic source for campaigns that report to another ADVID or need a different event setup.

> **Q2:** What is the ADVID and why isn't it my Advertiser Id?

**A2:** The ADVID is the name of the data source you registered in **Event Manager**. ShareChat uses it to file the postback. The Advertiser Id is your ad account's ID. They are different values, and only the ADVID belongs in the postback.

> **Q3:** ShareChat's data source is called Mobile app conversion APIs. Does it work for web offers?

**A3:** ShareChat's Direct Integration is set up as a mobile app data source, with a Play Store URL. If you promote web offers, ask your ShareChat account manager how they want those conversions registered before you launch.

> **Q4:** Should I use Redirect or Direct tracking with ShareChat?

**A4:** Redirect is the usual choice. Use Direct only if ShareChat must see your lander's domain as the destination. See [Direct Campaign Tracking](https://clickflare.com/docs/en/campaigns/direct-campaign-tracking.md).

> **Q5:** Does ShareChat support view-through conversions?

**A5:** This setup is click-based. The postback can only reach ShareChat for visitors who tapped the ad, because the `clickId` ShareChat passes on the tap is what it matches on. Ask your ShareChat account manager about view-through measurement.

## Related

> **[Traffic source postbacks](https://clickflare.com/docs/en/tracking/how-to-configure-a-traffic-source-s2s-postback-url.md)**
>
> Every token you can use in a postback.

> **[Custom conversions](https://clickflare.com/docs/en/settings/custom-conversions.md)**
>
> Split registrations and purchases into separate events.

> **[Cost models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md)**
>
> How CPC, CPA and RevShare costs are calculated.

> **[Conversions not showing](https://clickflare.com/docs/en/troubleshooting/conversions-not-showing.md)**
>
> The general checklist when postbacks don't arrive.


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