Skip to main content
Pushground traffic source template Pushground is a self-serve ad network selling push notification, in-page push and pop traffic, bought on CPC or CPM. This guide sets up Pushground as a traffic source in ClickFlare. It covers passing Pushground’s click data into your reports and sending conversions, with payout, back to Pushground so its stats and optimization agree with yours. You do everything from the campaign editor. The Pushground traffic source is created inline, without leaving the campaign.

At a glance

How it works

1

Pushground sends the click

A visitor clicks your ad. Pushground opens your ClickFlare campaign URL and fills in its macros: the click ID in click_id, your bid in bid, plus the source, site, campaign, creative, country, city and other details.
2

ClickFlare stores the Pushground click ID

ClickFlare saves the value of click_id as the visit’s External ID, records the cost, 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 Pushground

ClickFlare fires the Pushground postback, replacing {external_id} with the stored Pushground click ID and {payout} with the revenue. Pushground matches it to the original click.
The mirror to keep straight: in the campaign URL you write ClickFlare’s parameter (click_id) and Pushground’s macro ({click_id}). The template does this for you. In the postback URL you write Pushground’s parameter (click_id) and ClickFlare’s token ({external_id}). The parameter name is the same on both sides. The values in braces are not: Pushground fills in {click_id} on the click, ClickFlare fills in {external_id} on the conversion.

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.
  • Have an offer ready in ClickFlare, and its affiliate network set up to post conversions back to ClickFlare. See Creating an Offer and Adding an Affiliate Network.
  • Decide how you will buy. The template’s cost row reads Pushground’s CPC bid. If you plan to buy on CPM, read Cost before you launch.
  • Decide which conversion Pushground should receive. Pushground optimizes on what you send it. If your funnel has several steps (lead, then sale), pick the one that matters. See Choosing the event to send.

Step 1 – Create the campaign and the Pushground traffic source

  1. Go to Campaigns and click New.
  2. In Traffic Source, open the dropdown and click + New Traffic Source.
  3. Type pushground in the search box and select the Pushground template.
  4. Enter a Name, for example Pushground.
  5. Leave Cost currency on USD unless your Pushground account is billed in another currency.
The template fills in the Parameters table for you: The Pushground template's Parameters table in ClickFlare, with Pushground's macros pre-filled Each tracking field becomes a column you can group reports by. site_id and source are the ones you will use most: they tell you which placements convert, so you can blacklist or bid up sources in Pushground. user age is worth watching on push traffic: fresh subscribers usually click and convert differently from old ones. Note that the campaign ID row uses camp_id as the parameter name in the URL and Pushground’s {campaign_id} as the macro. That is fine. The parameter name only has to match between the campaign URL and the traffic source, and the template sets both.
Don’t change or remove the externalId row. Without click_id={click_id} in the campaign URL, ClickFlare has no Pushground click ID to send back, and Pushground cannot match any conversion.

Adding more Pushground macros

Pushground offers more macros than the template uses. Useful ones to add with Add Parameter: Click Add Parameter, give the row a name and parameter, and enter the Pushground macro as the TS Token. ClickFlare assigns the next free tracking field. Type the macros exactly as shown. {deviceName}, {userAge} and {trafficType} have a capital letter in the middle.

Step 2 – Set up the postback

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

Pushground’s postback format

Pushground documents a single server-to-server postback:
  • click_id is the click ID Pushground sent in your campaign URL, passed back unchanged.
  • amount is the payout of the conversion.
Pushground’s own instructions for trackers say the same thing: copy the Conversion Tracking Postback link, paste it into the tracker’s S2S field, and replace the placeholders with the tracker’s click ID and payout tokens. In ClickFlare, those tokens are {external_id} and {payout}, and the template has already done it.

Add it to the traffic source in ClickFlare

  1. Back 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:
It already sends the click ID ({external_id}) and the payout ({payout}), both as ClickFlare tokens. There are no placeholders to replace and no account ID to fill in. Pushground identifies the conversion from the click ID alone.
  1. 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.
  2. Click Save. You are back in the campaign editor with the Pushground traffic source selected.
The Traffic source postback URL switched on, showing the Pushground template's postback
Keep {external_id} in the postback. If you replace it with Pushground’s {click_id} or with {cf_click_id}, Pushground receives a value it never issued and cannot match the conversion.
Pushground reads amount as the payout of the conversion. If your offers pay in a currency other than your Pushground account’s, convert the payout before it reaches Pushground. See Multicurrency in ClickFlare. To learn what each postback token does, see How to Configure a Traffic Source S2S Postback URL.

How Pushground answers postbacks

Pushground returns 200 OK to every postback it receives, even when it cannot process it. A 200 in Logs → Postback Status therefore means the request reached Pushground. It does not prove Pushground matched the click. Check the conversion in Pushground’s stats as well. Only a 4xx or 5xx response points to a request that never got through.

Step 3 – Finish the campaign and copy its URL

  1. Name the campaign.
  2. Set the Cost Model to Not Tracked, so ClickFlare uses the cost Pushground passes. See Cost.
  3. Choose Redirect or Direct tracking. Redirect is the usual choice for push and pop traffic.
  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 Pushground macro from the template, for example click_id={click_id}, bid={bid} and site_id={site_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 Pushground. See Creating a Campaign in ClickFlare.

Step 4 – Create the campaign in Pushground

  1. In Pushground, start a new campaign from Create Campaign.
  2. Choose the format (push, in-page push or pop), targeting and bid as usual.
  3. Paste the ClickFlare campaign URL into the campaign’s tracking URL field.
  4. Check the S2S postback shown on the campaign screen. Pushground recommends confirming that the postback domain and link match what your tracker sends. Here that is https://lupush.com/conversion with click_id and amount.
  5. Launch the campaign.
Paste the URL exactly as ClickFlare gives it. Pushground replaces each macro in braces when the ad is clicked.

Step 5 – Test the integration

Pushground does not document a built-in test conversion tool, so test with a real click.
  1. Open the ClickFlare campaign URL in a browser, replacing {click_id} with a test value, for example click_id=test123.
  2. In ClickFlare, open the campaign’s report and check that the visit shows test123 as its External ID.
  3. Complete the offer, or post a test conversion to ClickFlare for that click.
  4. Go to Logs → Postback Status and filter by the campaign. You should see a request to lupush.com/conversion?click_id=test123&amount=....
A fake click ID like test123 proves ClickFlare builds and sends the postback correctly. It won’t show in Pushground’s stats, because Pushground never issued it. Once the campaign gets real clicks, the first real conversion should appear in Pushground within minutes.

Pushground’s pixel

Pushground also offers a browser pixel for landing pages. You place it in the <head> of your lander and pass {click_id} to the page. It tracks events such as view_content, which Pushground says should fire on at least 70% of clicks. The pixel is separate from the S2S postback. Use the postback for conversions, because it fires from ClickFlare’s server and does not depend on the visitor’s browser.

Choosing the event to send

Pushground’s postback has no event or goal parameter. Every postback it receives counts as a conversion. If your funnel has several steps, send Pushground only the one it should optimize on.
  1. In ClickFlare, create a custom conversion for each step, for example lead and purchase.
  2. On the Pushground traffic source, map the postback to the step Pushground should learn from, for example purchase.
Earlier steps still show in ClickFlare. They just don’t reach Pushground.
You can click + Another postback URL and map a second ClickFlare event to the same Pushground postback. Pushground then counts both as conversions, and adds both payouts. Its conversion rate and ROI stop meaning one thing. Do this only if you want Pushground to treat every step as a conversion.
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 cost per click. The cost row sends Pushground’s {bid} macro in the bid parameter, and ClickFlare records it as the visit’s cost. On the campaign, set the Cost Model to Not Tracked so ClickFlare uses the cost passed in the URL.
Pushground describes {bid} as the bid for the CPC price model. It is your bid, so if Pushground charges less than your bid for some clicks, ClickFlare’s cost is slightly higher than your real spend. Compare the Cost column with your Pushground spend after the first day.
On CPM campaigns, {bid} is not the price of the click. Pushground’s CPM macro, {bidcpm}, is a price per thousand impressions, so it can’t be used as a cost per visit either. For CPM buying, set the Cost Model to CPC and enter your CPM bid divided by 1,000 as the cost value. A pop impression is roughly one visit. For push and in-page push, divide your spend by clicks in Pushground to get a better figure. When the recorded spend differs from your Pushground spend, correct it with a manual cost upload. See Cost Models.

Delayed revenue

If you run search arbitrage (RSOC or AFD) behind Pushground, the feed reports revenue hours or days after the click. To pass that revenue to Pushground once it arrives, see Sending Delayed Revenue to Traffic Sources.

Troubleshooting

  • Traffic source postback URL is off on the Pushground 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.
  • The visit has no External ID, so click_id went out empty. Check that the campaign URL in Pushground contains click_id={click_id}.
  • Remember that Pushground answers 200 to every postback. A 200 in Logs → Postback Status does not mean the click was matched.
  • The postback uses Pushground’s {click_id} instead of ClickFlare’s {external_id}. ClickFlare doesn’t fill {click_id} with the Pushground click ID.
  • The externalId row was edited or removed from the traffic source.
The template sends amount={payout}, so it was removed or edited. Restore &amount={payout} at the end of the postback.Also check that your affiliate network sends the payout to ClickFlare. If ClickFlare records the conversion with zero revenue, it sends zero to Pushground.
  • The campaign’s Cost Model is not Not Tracked, so ClickFlare ignores the bid value.
  • The campaign is on CPM, where {bid} is not the click price. See Cost.
The macros were not replaced, usually because the URL was pasted somewhere Pushground doesn’t process macros, or a macro was edited. Paste the campaign URL from ClickFlare unchanged. See Traffic Source Tokens Arriving Empty.
For the general checklist, see Conversions not showing.
FREQUENTLY ASKED QUESTIONS
Q1: Can I use the same Pushground traffic source for all my Pushground campaigns?
A1: Yes. The postback is set once on the traffic source and every campaign using it sends conversions the same way. Create a second Pushground traffic source only if a campaign needs a different postback, for example a different event.
Q2: Why is it click_id in both the campaign URL and the postback?
A2: Pushground uses the same parameter name in both directions. In the campaign URL, click_id is the parameter ClickFlare reads and {click_id} is Pushground’s macro. In the postback, click_id is the parameter Pushground reads and {external_id} is ClickFlare’s token. Change neither.
Q3: Do I need my Pushground account ID or a password in the postback?
A3: No. Pushground matches the conversion on the click ID alone. The template’s postback works as it is.
Q4: Should I use Redirect or Direct tracking with Pushground?
A4: Redirect is the usual choice and works with every Pushground format. Use Direct only if Pushground must see your lander’s domain as the destination. See Direct Campaign Tracking.
Q5: What does the “user age” column show?
A5: The freshness of the push subscriber, not the visitor’s age. Use it to compare new and old subscribers and bid on the segments that convert.

Traffic source postbacks

Every token you can use in a postback.

Custom conversions

Split leads and sales into separate events.

Cost models

How CPC, CPA and RevShare costs are calculated.

Conversions not showing

The general checklist when postbacks don’t arrive.