Skip to main content
AdOperator traffic source template AdOperator is a self-serve ad network selling popunder, push notification and in-page push traffic. This guide sets up AdOperator as a traffic source in ClickFlare. It covers passing AdOperator’s click data into your reports and sending conversions, with payout, back to AdOperator so its stats and your ClickFlare reports agree. You do everything from the campaign editor. The AdOperator traffic source is created inline, without leaving the campaign.
The AdOperator template’s postback needs two fixes before it works: the host must change to s2s.adoperator.com, and the payout must be added. Step 2 shows the exact URL to use.

At a glance

How it works

1

AdOperator sends the click

A visitor clicks your ad. AdOperator opens your ClickFlare campaign URL and fills in its macros: the unique click ID in conversion, plus the campaign, the publisher sub ID, the OS, the browser and the country.
2

ClickFlare stores the AdOperator click ID

ClickFlare saves the value of conversion as the visit’s External ID 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 AdOperator

ClickFlare fires the AdOperator postback, replacing {external_id} with the stored AdOperator click ID and {payout} with the revenue. AdOperator matches it to the original click.
The mirror to keep straight: in the campaign URL you write ClickFlare’s parameter (conversion) and AdOperator’s macro ({conversion}). The template does this for you. In the postback URL you write AdOperator’s parameters (c and value) and ClickFlare’s tokens ({external_id} and {payout}).

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.
  • Have an AdOperator advertiser account with funds. AdOperator’s minimum campaign budget is 20 USD.
  • Know your bid. AdOperator charges per click on push and in-page push, and per view on popunder. You enter that price in ClickFlare as the cost. See Cost.

Step 1 – Create the campaign and the AdOperator traffic source

  1. Go to Campaigns and click New.
  2. In Traffic Source, open the dropdown and click + New Traffic Source.
  3. Type adoperator in the search box and select the AdOperator template.
  4. Enter a Name, for example AdOperator.
  5. Leave Cost currency on USD. AdOperator budgets and bids are in USD.
The template fills in the Parameters table for you: The AdOperator template's Parameters table in ClickFlare, with AdOperator's macros pre-filled Each tracking field becomes a column you can group reports by. Publisher sub ID is the one you will use most. It tells you which publisher feeds convert, so you can blacklist or whitelist them in AdOperator’s campaign settings.
Don’t change or remove the externalId row. AdOperator says that without {conversion} in the campaign URL it cannot match a conversion to the original click.
To pass more AdOperator data, click Add Parameter, give it a name and parameter, and enter the AdOperator macro as the TS Token. ClickFlare assigns the next free tracking field. AdOperator’s documented URL macros are {subid}, {campaign}, {bid}, {os}, {browser}, {country} and {conversion}. The useful one the template doesn’t include is {bid}, the click price. Add it as a parameter named bid to see what you paid per click next to each visit.

Step 2 – Set up the postback

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

Get your postback URL from AdOperator

AdOperator uses one global postback for all your campaigns. You find it on any campaign’s page:
  1. In AdOperator, click Campaigns in the left menu and open or create a campaign.
  2. Scroll to Conversion Tracking. Under Add this postback to your tracker AdOperator shows:
c carries the click ID and value carries the payout. AdOperator’s own instructions say to replace {conversion} and {payout} with your tracker’s tokens. In ClickFlare those are {external_id} and {payout}.

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:
The Traffic source postback URL switched on, showing the AdOperator template's postback It sends the click ID ({external_id}) in the right parameter, but it has two problems. The host xml.adop.co is not the host AdOperator gives you, and its security certificate has expired, so the request can fail. And it sends no payout.
  1. Replace the whole URL with AdOperator’s postback, with ClickFlare’s tokens in place of AdOperator’s:
Compare it with the URL in AdOperator’s Conversion Tracking section. Only the tokens should differ: {conversion} becomes {external_id}, and {payout} stays {payout}, because both ClickFlare and AdOperator use that name.
  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 AdOperator traffic source selected.
Don’t keep {conversion} in the postback. It is AdOperator’s macro, not a ClickFlare token, so ClickFlare sends it as literal text and AdOperator cannot match the conversion. In the postback, the click ID is always {external_id}.
value is read as USD, the currency of your AdOperator account. If your offers pay in another currency, see Multicurrency in ClickFlare. To learn what each postback token does, see How to Configure a Traffic Source S2S Postback URL.

Step 3 – Finish the campaign and copy its URL

  1. Name the campaign.
  2. Set the Cost Model to CPC and enter your AdOperator bid as the cost. See Cost.
  3. Choose Redirect or Direct tracking. Redirect is the usual choice for popunder and push 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 AdOperator macro from the template, for example conversion={conversion} and subid={subid}. 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 AdOperator. See Creating a Campaign in ClickFlare.

Step 4 – Create the campaign in AdOperator

  1. In AdOperator, click Campaigns and create a campaign.
  2. Enter the campaign name and paste the ClickFlare campaign URL into Target Url.
  3. Choose the format: Popunder, Push Notifications or in-page push.
  4. Under Budget and Limits, set the Total Budget, Daily Budget and your bid. For popunder this is the CPV (cost per 1 view). Watch the CPV: a CPV of 0.001 USD is a CPM of 1 USD, and a typo here overspends fast.
  5. Set Targeting (geo, OS, browser) and, if you need it, Advanced Targeting (connection type, browser language, IP lists, domains, day and time).
  6. For push and in-page push, add your creatives (up to four per campaign).
  7. Click Start Campaign. AdOperator reviews it before it goes live.
Paste the URL exactly as ClickFlare gives it. AdOperator replaces each {...} macro when the ad is clicked.

Step 5 – Test the integration

AdOperator doesn’t document a test-conversion tool, so test with a small live budget.
  1. Launch the campaign with a low daily budget.
  2. In ClickFlare, open the campaign report and group by Publisher sub ID. Values like 12345 mean the macros are filling in. If you see the literal text {subid}, the URL was edited or pasted in the wrong field.
  3. Check that the visits have an External ID. An empty External ID means {conversion} didn’t reach ClickFlare, and no postback can work.
  4. When the first conversion arrives, go to Logs → Postback Status and filter by the campaign. A successful request to s2s.adoperator.com confirms ClickFlare sent it.
  5. In AdOperator, open Reports and check that the conversion shows on the campaign.

Choosing the event to send

AdOperator’s postback has no event parameter. Every postback it receives counts as one conversion type. Send the conversion you actually want AdOperator to count.
If your funnel has several steps (lead, then sale), create a custom conversion for each step in ClickFlare. Then map the AdOperator postback to the final step only, for example purchase. Earlier steps still show in ClickFlare. They just don’t reach AdOperator.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.
AdOperator’s postback is global: the same URL works for every campaign, because the click ID tells AdOperator which campaign the conversion belongs to. One AdOperator traffic source in ClickFlare is enough for all your AdOperator campaigns.

Cost

The template doesn’t pass cost. It has no Cost row, so ClickFlare can’t read AdOperator’s price from the campaign URL. Set the campaign’s Cost Model to CPC and enter your AdOperator price: If you buy popunder thinking in CPM, divide the CPM by 1,000 to get the CPV.
AdOperator’s {bid} macro carries the click price. Adding it as a tracking field (see Step 1) lets you check the real price per click against the cost you entered. It doesn’t set the cost by itself.
For AdOperator campaigns bought on a CPA goal, set the Cost Model to CPA, with your price per conversion. When the recorded spend differs from your AdOperator spend, correct it with a manual cost upload. See Cost Models.

Delayed revenue

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

Troubleshooting

  • The postback still uses the template’s xml.adop.co host. Change it to https://s2s.adoperator.com/conversion.
  • Traffic source postback URL is off on the AdOperator 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 or error AdOperator’s server returned.
  • The campaign URL in AdOperator is missing conversion={conversion}, or the macro was edited. Copy the URL from ClickFlare again.
  • The postback uses AdOperator’s {conversion} instead of ClickFlare’s {external_id}.
  • The externalId row was removed from the traffic source.
The template’s postback has no value parameter. Add &value={payout} at the end of the postback.
The macros were not replaced, usually because the URL was edited or pasted somewhere AdOperator doesn’t process macros. Paste the campaign URL from ClickFlare unchanged into Target Url. If only User agent is empty, AdOperator doesn’t fill {user_agent}. Remove the row or leave it. See Traffic Source Tokens Arriving Empty.
For the general checklist, see Conversions not showing.
FREQUENTLY ASKED QUESTIONS
Q1: Can I use the same AdOperator traffic source for all my AdOperator campaigns?
A1: Yes. AdOperator’s postback is global, and ClickFlare’s postback lives on the traffic source. Every campaign that uses it sends conversions the same way.
Q2: Why is it called conversion in the campaign URL and c in the postback?
A2: They are two halves of the same value. ClickFlare reads AdOperator’s click ID from its own conversion parameter. AdOperator expects it back in its own c parameter. Change neither.
Q3: Older guides mention a goal ID in the AdOperator postback. Do I need one?
A3: Not with the postback AdOperator shows today. Its Conversion Tracking section gives https://s2s.adoperator.com/conversion?c={conversion}&value={payout}, with no goal ID. If your account shows a different URL, use the one in your account and keep {external_id} and {payout} as the tokens.
Q4: Should I use Redirect or Direct tracking with AdOperator?
A4: Redirect is the usual choice and works with every AdOperator format. Use Direct only if AdOperator must see your lander’s domain as the destination. See Direct Campaign Tracking.
Q5: Does ClickFlare pull my AdOperator spend automatically?
A5: No. There is no AdOperator cost integration. Use the CPC cost model with your bid, and correct any gap with a manual cost upload.

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.