
- The offer URL sends the ClickFlare click ID to BuyGoods in
subid2. - The postback URL sends it back to ClickFlare with every sale, together with your commission and the order ID.
How the data flows
subid2 on the way in and reads it back with {SUBID2} on the way out. The link parameter is lowercase and the macro is uppercase: both refer to the same slot.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.
- A BuyGoods affiliate account, approved to promote the offer you want to run.
What the BuyGoods template contains
ClickFlare has a BuyGoods affiliate network template. It fills in the BuyGoods macros ClickFlare needs.
Setup
Everything in ClickFlare is done from inside the campaign editor. Create the offer and the affiliate network inline as you go.Set up your own tracking domain
trk.yourdomain.com. The postback URL is built on this domain, so changing it later means updating the postback in BuyGoods too. See Tracking domains.Report conversions by postback time
Create the campaign
Create the BuyGoods affiliate network
- Search for BuyGoods and pick the template.
- Keep the name “BuyGoods”.
- Check that Click Id is
{SUBID2}, Payout is{COMMISSION_AMOUNT}and Transaction ID is{ORDERID}. - Leave Event Type empty.
- Under Conversion tracking, select your own Tracking Domain and keep S2S Postback URL as the tracking method.
- Set Payout currency. BuyGoods sends no currency macro and shows affiliate payouts in US dollars, so USD is the usual choice. If you’re unsure, ask your affiliate manager.

Get your affiliate link from BuyGoods
aff_id is your affiliate ID and is already filled in. Some offers use a path, for example /b/report.php?aff_id=12345. Either way, the link already has a ?.Create the offer in ClickFlare
- Name the offer.
- Select the BuyGoods affiliate network you just created.
- Paste the BuyGoods link into Offer URL and type
&subid2={cf_click_id}at the end yourself:

- Leave Append Click ID to Offer Url off. ClickFlare builds that parameter from the template’s macro, so it would add
SUBID2in uppercase instead of the lowercasesubid2BuyGoods expects.
payout value from the postback.Add the Postback Pixel in BuyGoods
- For all your offers (recommended): click your name or profile icon in the top right and open Postback Pixels.
- For one product only: on the dashboard, click the product name, open Settings and go to the Postback pixels tab.
Add a lander (optional)
Save the campaign and launch
Why the transaction ID matters
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 you only see one of them (the last one received). Thetxid parameter tells ClickFlare that each postback is a separate conversion, so its value has to be different on every conversion.
{ORDERID} is BuyGoods’ unique order ID, and the right choice for two reasons:
- Upsells stay apart. A front-end sale and its upsells arrive on the same click. Trackers use
{ORDERID}to tell them apart, as each upsell is recorded as its own order, so ClickFlare counts each one. Check this on your first upsell (see Verify the setup). - Retries don’t double count. BuyGoods expects a response from your postback URL. If it doesn’t get one, it treats the call as failed and retries for up to three days. A retried postback carries the same order ID, so ClickFlare doesn’t count it twice.
txid out. With a random value, every retry counts as a new sale. Without txid, the upsells overwrite the front-end sale.
Upsells
BuyGoods offers often have upsells after the main order. The front-end sale and each upsell fire their own Purchase postback, each with its own{COMMISSION_AMOUNT} and order ID. A buyer who takes the main bundle and one upsell sends two postbacks, and ClickFlare records two conversions on the same click.
Split front-end sales and upsells
BuyGoods’ official macro list covers{SUBID} to {SUBID5}, {ORDERID}, {PRODUCT_CODENAME} and {COMMISSION_AMOUNT}. Tracker templates also use {CONV_TYPE}, which is frontend for the main sale and upsell for an upsell. It isn’t in the official list, so test it on your account before you rely on it.
To report front-end sales and upsells as separate columns, set Event Type to {CONV_TYPE} in the ClickFlare affiliate network, or add &ct={CONV_TYPE} to the postback URL:
¶m1={CONV_TYPE}¶m2={PRODUCT_CODENAME}. See Postback parameters.
Refunds and chargebacks
BuyGoods has no refund or chargeback event for affiliate postbacks. Refund and chargeback notifications exist on the vendor side, and affiliate postbacks fire only on purchases. A sale that is later refunded stays in ClickFlare. Compare ClickFlare with your BuyGoods reports before payday, and adjust the conversions BuyGoods refunded.Verify the setup
Click through the campaign
subid2= followed by a real ClickFlare click ID, not the literal text {cf_click_id}.Generate a test sale
subid2 on that click.Check the conversion in ClickFlare
txid (the BuyGoods order ID). If you take an upsell, a second conversion should arrive with a different txid.Troubleshooting
Sales show in BuyGoods but not in ClickFlare
Sales show in BuyGoods but not in ClickFlare
- The pixel isn’t active or isn’t on Purchase. Check Status and Event on the postback pixel.
- subid2 is empty. The offer URL is missing
subid2={cf_click_id}, or the lander CTA links straight to BuyGoods instead of using the ClickFlare click URL. If the parameter is missing,{SUBID2}arrives empty. - The sub numbers don’t match. The offer URL uses
subidbut the postback reads{SUBID2}, or the other way around. - The parameter is uppercase. Append Click ID to Offer Url adds
SUBID2=in uppercase. Turn it off and type&subid2={cf_click_id}yourself. - The pixel is on another product. A product-level pixel only fires for that product. Use the profile-level Postback Pixels to cover all offers.
Each sale shows twice in ClickFlare
Each sale shows twice in ClickFlare
txid={ORDERID} merge into one conversion, but an older pixel with a different txid, or none, counts again. Keep one pixel and remove the other.The payout is 0
The payout is 0
- The postback uses
{COMMISSION}, which BuyGoods doesn’t replace. Change it to{COMMISSION_AMOUNT}in the ClickFlare affiliate network and in BuyGoods. - Check that the offer’s payout is set to Auto in ClickFlare.
ClickFlare receives a literal {SUBID2} or cf_click_id
ClickFlare receives a literal {SUBID2} or cf_click_id
- A literal
{SUBID2}means BuyGoods didn’t replace the macro. BuyGoods macros are uppercase: check the spelling. - A literal
cf_click_idmeans the offer URL in ClickFlare has the token without braces. It must be{cf_click_id}.
FAQ
Why subid2 and not subid?
Why subid2 and not subid?
subid2 is the ClickFlare template’s default, and it leaves subid free for your own labels. BuyGoods reports break sales down by SubID, so a readable label in subid is more useful there than a click ID.Can I pass more data to BuyGoods?
Can I pass more data to BuyGoods?
&subid={campaign_id}&subid3={trackingField1}. BuyGoods returns them in {SUBID} and {SUBID3}. Keep subid2 for the click ID.Can I track checkout starts?
Can I track checkout starts?
Can I send the conversion back to my traffic source?
Can I send the conversion back to my traffic source?