Skip to main content
JuicyAds traffic source template JuicyAds is an adult advertising network selling banner, native and popunder traffic, bought on CPC or CPM by ad zone and site. This guide sets up JuicyAds as a traffic source in ClickFlare. It covers passing JuicyAds’ click data into your reports and sending conversions, with their value, back to JuicyAds so its stats and your reports agree. You do everything from the campaign editor. The JuicyAds traffic source is created inline, without leaving the campaign.

At a glance

How it works

1

JuicyAds sends the click

A visitor clicks your ad. JuicyAds opens your ClickFlare campaign URL and fills in its dynamic links: the click ID in dynamicS2S, the bid in dynamicBID, plus the publisher, site, ad zone, image, campaign and country.
2

ClickFlare stores the JuicyAds click ID

ClickFlare saves the value of dynamicS2S 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 JuicyAds

ClickFlare fires the JuicyAds S2S postback, replacing {external_id} with the stored JuicyAds click ID and {payout} with the revenue. JuicyAds matches it to the original click, including the zone or site it came from.
The mirror to keep straight: in the campaign URL you write ClickFlare’s parameter (dynamicS2S) and JuicyAds’ macro ({dynamicS2S}). The template does this for you. In the postback URL you write JuicyAds’ parameter (s2s) and ClickFlare’s token ({external_id}).

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.
  • Know where JuicyAds keeps your postback values. JuicyAds shows the c, token and data values per campaign, in the campaign’s Performance Tracking tab. The banner campaign must be approved before the full tracking options are available. Plan to create the JuicyAds campaign first and enter the values in the template’s postback once you have them. See Step 2.
  • Know your format. Banner and popunder campaigns use different postback URLs and pass different data. Popunders are sold by site only, so they have no zone or image data.

Step 1 – Create the campaign and the JuicyAds traffic source

  1. Go to Campaigns and click New.
  2. In Traffic Source, open the dropdown and click + New Traffic Source.
  3. Type juicy in the search box and select the JuicyAds template.
  4. Enter a Name, for example JuicyAds Banners. If you run both banners and popunders, create one traffic source for each, because their postbacks differ.
  5. Leave Cost currency on USD unless your JuicyAds account is billed in another currency.
The template fills in the Parameters table for you: The JuicyAds template's Parameters table in ClickFlare, with JuicyAds' macros pre-filled Each tracking field becomes a column you can group reports by. On banners, AdZone ID is the one you will use most: JuicyAds sells banners by zone, so it tells you which placements convert. On popunders, use Site ID, because pops are sold by site only. Campaign Image ID and Campaign Image Filename compare creatives. On popunder traffic, the five rows marked Banners only stay empty. That is expected. Date of transaction and Hour of transaction duplicate what ClickFlare already records for every visit. You can repurpose those rows if you need the fields for something else.
Don’t change or remove the externalId row. Without dynamicS2S={dynamicS2S} in the campaign URL, ClickFlare has no JuicyAds click ID to send back, and JuicyAds cannot match your conversions.
To pass more JuicyAds data, click Add Parameter, give it a name and parameter, and enter the JuicyAds macro as the TS Token. ClickFlare assigns the next free tracking field. For popunders, JuicyAds also offers {dynamicCON} (connection type, Wifi or carrier), {dynamicDTY} (device type) and {dynamicDOS} (device OS). They are not in the template.

Step 2 – Set up the postback

The postback is what sends conversions to JuicyAds. It lives on the traffic source, so every campaign that uses this JuicyAds traffic source sends conversions the same way. The JuicyAds template comes with a postback. When you turn on the postback, the field is already filled in with the banner endpoint:
The Traffic source postback URL switched on, showing the JuicyAds template's postback {external_id} and {payout} are ClickFlare tokens and are already in place. Replace the three REPLACE values (c, token and data) with the values from your JuicyAds account.

Get your values from JuicyAds

  1. In JuicyAds, open your campaign.
  2. Click the Performance Tracking tab, then S2S Postbacks in the menu.
  3. Choose the postback type:
  1. Copy the c (campaign) or u (user), token and, on banners, data values from the URL JuicyAds shows. Keep them exactly as JuicyAds gives them.

Finish the postback in ClickFlare

  1. Back in the New Traffic Source form, or on the saved JuicyAds traffic source, scroll to Passing conversion info to traffic source.
  2. Turn on Traffic source postback URL. The template’s banner postback appears.
  3. Replace c=REPLACE, token=REPLACE and data=REPLACE with your values from JuicyAds. Leave s2s={external_id} and amount={payout} as they are.
  4. For popunders, replace the whole URL with the popunder endpoint, which has no data parameter, and fill in c and token the same way:
  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.
If you paste a postback from JuicyAds instead of using the template’s, replace JuicyAds’ {dynamicS2S} and {Amount}, braces included. ClickFlare reads anything in braces as a token. It doesn’t know these two, so it sends them as literal text, and JuicyAds can’t match the conversion. Only {external_id} and {payout} belong in braces.
JuicyAds stresses one rule: what matters most is that the click ID goes back in s2s=. The template already does this, and fills amount too. Don’t change c, u, token or data once they match JuicyAds. To learn what each postback token does, see How to Configure a Traffic Source S2S Postback URL.

Tracking pixels

JuicyAds also offers Tracking Pixels for banner campaigns, under Performance Tracking. A pixel is a 1x1 image you place on your own thank-you page. It only works when you control that page, it only tracks JuicyAds traffic, and it doesn’t use ClickFlare’s data. With ClickFlare, use the S2S postback.

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 bid JuicyAds passes. On CPM banners, read Cost first.
  3. Choose Redirect or Direct tracking. Redirect is the usual choice for banner and popunder 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 JuicyAds macro from the template, for example dynamicS2S={dynamicS2S} and dynamicZNE={dynamicZNE}. 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 JuicyAds. See Creating a Campaign in ClickFlare.

Step 4 – Create the campaign in JuicyAds

  1. In JuicyAds, click Manage My Ads.
  2. Choose New Banner Campaign or New Popunder Campaign.
  3. Fill in the required fields and paste the ClickFlare campaign URL into the campaign URL field.
  4. Click Get Started, then complete Campaign Settings: bid type, campaign mode and targeting.
  5. Request the campaign.
Paste the URL exactly as ClickFlare gives it. JuicyAds replaces each {dynamic...} link when the ad is clicked. JuicyAds’ own examples join several macros with underscores in one parameter. You don’t need to: the template gives each macro its own parameter. Once the campaign is approved, go back to Step 2 if you haven’t added the postback yet.

Step 5 – Test the integration

JuicyAds has no test-conversion button. It asks you to test the postback before going live, then monitor it.
  1. Run a small amount of traffic, or click your own approved ad.
  2. Complete the offer the way a real visitor would.
  3. In ClickFlare, go to Logs → Postback Status and filter by the campaign. A successful request to juicyads.com confirms ClickFlare sent the postback, with a real click ID in place of {external_id}.
  4. In JuicyAds, open the campaign’s S2S Postbacks page. It lists the raw S2S events JuicyAds received.
  5. Once traffic flows, check the campaign’s Traffic Sources tab, which shows conversions per source, and the Statistics page, which adds KPIs and ROI.

Tracking several events

JuicyAds banner postbacks accept a goal parameter, so you can track up to three events separately, for example a join-page visit, a free signup and a sale. Without goal, every postback counts as goal 1.
  1. In ClickFlare, create a custom conversion for each step, for example signup and sale.
  2. On the JuicyAds traffic source, click + Another postback URL once per extra event.
  3. Map each postback to its ClickFlare event: signup to the goal=2 URL, sale to the goal=3 URL.
  • Three goals at most: goal=1, goal=2, goal=3.
  • One postback per goal. Don’t combine goals in one URL.
  • Events with no money attached, like a join-page visit, can still send {payout}. It is 0 when the conversion has no revenue.
  • JuicyAds documents goal for banner postbacks. Ask JuicyAds support before relying on it for popunders.
If JuicyAds should only learn from your final sale, keep a single postback and map it to that event. Earlier steps (leads, installs) still show in ClickFlare. They just don’t reach JuicyAds.JuicyAds itself suggests optimizing on the more frequent event when sales are rare, for example installs rather than sales. If that is your case, map the postback to the earlier event instead.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 JuicyAds’ {dynamicBID} macro, the bid at the time of the click or impression, 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.
JuicyAds’ {dynamicBID} is a price per click on CPC campaigns (for example 0.01) and a price per impression on CPM campaigns (for example 0.0001). On CPC banners and on popunders, where an impression is roughly one visit, it matches your spend. On CPM banners, only a share of impressions become clicks, so ClickFlare records the price of one impression for each visit and the cost comes out too low. For CPM banners, switch the Cost Model to CPC and enter your real cost per click, or correct the spend with a manual cost upload.
When the recorded spend differs from your JuicyAds spend, correct it with a manual cost upload. See Cost Models.

Delayed revenue

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

Troubleshooting

  • Traffic source postback URL is off.
  • The postback still contains REPLACE in c, token or data. Enter your values from S2S Postbacks.
  • Disable sending postbacks to traffic source is on in the campaign.
  • The postback contains {dynamicS2S} or {Amount} from a JuicyAds sample. ClickFlare sends them as literal text. Replace them with {external_id} and {payout}.
  • The c, u, token or data values were changed. Copy them from S2S Postbacks again.
  • The template’s banner postback is used on a popunder campaign. Popunders need the popunder endpoint.
  • Check Logs → Postback Status: a failed request shows the status code JuicyAds returned.
  • The campaign URL in JuicyAds is missing dynamicS2S={dynamicS2S}, so the visit has no External ID. Copy the URL from ClickFlare again.
  • 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 came through a lander whose link skips the ClickFlare click URL.
amount was removed, fixed to a sample value, or replaced with {Amount}. Set it to amount={payout}, as in the template.
On popunders this is expected: JuicyAds only fills {dynamicZNE}, {dynamicIMG}, {dynamicIMGNAME}, {dynamicDATE} and {dynamicHOUR} on banners. Use Site ID for popunders.On banners, the URL was edited or pasted somewhere JuicyAds doesn’t process dynamic links. Paste the campaign URL from ClickFlare unchanged. See Traffic Source Tokens Arriving Empty.
Some gap is normal: JuicyAds counts clicks on its side, ClickFlare counts visits that reach the tracker, and reports may use different time zones. For a large gap, check that every JuicyAds campaign uses the ClickFlare campaign URL, and that the lander links through the click URL.
For the general checklist, see Conversions not showing.
FREQUENTLY ASKED QUESTIONS
Q1: Can I use the same JuicyAds traffic source for all my JuicyAds campaigns?
A1: Yes, for one format. Use the Global c, token and data values and every banner campaign sends conversions through the template’s postback. Create a second traffic source for popunders, because their postback endpoint is different.
Q2: Why does the template’s postback say REPLACE?
A2: JuicyAds’ postback contains values unique to your account and campaign (c or u, token, and on banners data). The template can’t know them, so you replace the three REPLACE values with the ones from Performance Tracking → S2S Postbacks.
Q3: Why is it called dynamicS2S in the campaign URL and s2s in the postback?
A3: They are two halves of the same value. ClickFlare reads JuicyAds’ click ID from its own dynamicS2S parameter. JuicyAds expects it back in its own s2s parameter. Both names are fixed. Change neither.
Q4: Should I use Redirect or Direct tracking with JuicyAds?
A4: Redirect is the usual choice and works with banners and popunders. Use Direct only if JuicyAds must see your lander’s domain as the destination. See Direct Campaign Tracking.
Q5: Can JuicyAds optimize on my conversions?
A5: Once S2S events arrive, JuicyAds shows them per source on the campaign’s Traffic Sources tab, so you can block sources that don’t convert. Its Adsistant tools can automate that. Both only work with the postback in place.

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.