BuyGoods tracking
BuyGoods affiliate conversion tracking with postbacks
A practical BuyGoods postback workflow for subID mapping, offer-specific callbacks, payout checks, and the Tracked report evidence that confirms attribution.
BuyGoods affiliate conversion tracking depends on one value: the subID that identifies the original click. Put that value on the outbound offer link, keep it with the order, and return it in the BuyGoods postback. Commission amount, order ID, product, and conversion type add useful evidence, but they cannot repair a missing click join.
Tracked gives the media buyer a place to create that click, route the offer, receive the callback, and inspect the campaign journey. BuyGoods still owns the offer-link and postback-pixel contract, so treat this as a parameter mapping or bridge decision rather than a native connector.
The BuyGoods tracking path
Model the handoff before configuring either system:
Ad → Tracked campaign URL → page → /click/1 → BuyGoods offer link
→ BuyGoods stores subID → BuyGoods postback pixel
→ Tracked /postback → report and event journey
The affiliate campaign setup guide covers campaign routes, hosted pages, click slots, and test traffic. This guide concentrates on the BuyGoods fields that cross the offer boundary.
Choose global or offer-specific postback delivery
BuyGoods documents two useful scopes. Its tracking-pixels guide describes a global postback under Profile → Postback Pixels and offer pixels when you want one offer’s results. Its postback-pixel setup guide also documents Setup → Affiliates → select the affiliate → Postback Pixels → Add. Account navigation can vary, so follow the labels shown in your account.
Global delivery is useful when the callback contract and event handling are shared across offers. Offer-specific delivery is safer when one campaign needs a different event, payout rule, or test destination. Do not send a global callback and an offer callback for the same event unless you have a deliberate deduplication plan.
Map the BuyGoods subID to the Tracked click
BuyGoods documents {SUBID} through {SUBID5}, {ORDERID}, {PRODUCT_CODENAME}, and {COMMISSION_AMOUNT}. The global guide also lists {CONV_TYPE}, {FLAG_UPSELL}, {UPSELL_PARENT}, and {EMAILHASH} where the account and event expose them.
The offer link and postback use different casing conventions. BuyGoods shows the offer parameter in lowercase, such as subid, while the postback macro is uppercase, such as {SUBID}. Those are not interchangeable strings. The field chosen on the offer link must match the macro returned by the postback.
The following mapping is conceptual, not a copy-paste setup. Replace the bracketed values with the real BuyGoods offer URL, Tracked host, slot, and event contract:
BuyGoods offer link:
https://<your-buygoods-offer>/?subid={{click.id}}
BuyGoods primary-sale postback pixel:
https://<tracked-dispatcher-host>/postback?click_id={SUBID}&payout={COMMISSION_AMOUNT}
Set {{click.id}} in the Tracked offer URL; it resolves to the offer-click ID when Tracked redirects the visitor. If your campaign uses subid2, return {SUBID2} instead. Inspect the outgoing URL to confirm the macro became a real value. Keep the ID opaque, and do not place customer data into it.
Tracked’s generic callback requires click_id. It accepts payout, currency, timestamp, and conversion_type or the concise type alias as additional fields. The callback looks up the original click before creating the event. A missing click_id returns 400; an unknown click returns 404. Those responses are useful negative tests for the mapping.
The example above is for the primary sale: configure the BuyGoods trigger accordingly and leave type and conversion_type absent. In the current Tracked handler, explicitly typed callbacks are secondary funnel events and store zero payout, even if payout is supplied. Do not send every BuyGoods event to the untyped primary-sale URL. Map secondary events separately and verify their meaning before enabling delivery. The postback troubleshooting guide explains this distinction and its report checks.
Respect the postback response contract
BuyGoods describes a postback pixel as server-to-server delivery through cURL, secure cURL, HTTP POST, or another automated method. Its setup guide says the receiving script should echo something after success; otherwise BuyGoods may retry it.
Tracked’s public /postback route is a GET endpoint. Confirm that the BuyGoods delivery mode selected in your account can invoke the GET URL with query parameters. If the selected mode only sends a form POST, a small bridge is required to receive the form, validate the fields, and call Tracked’s GET route. Do not label that bridge a native integration.
Test one fresh click end to end
Start with a new Tracked click so every value has one owner:
- Open the campaign URL and confirm the intended hosted, proxied, or redirected page loads.
- Click the offer action behind
/click/1and inspect the final BuyGoods URL. - Confirm the real Tracked click ID appears in the chosen lowercase
subidfield, not as a literal macro or an empty value. - Add the matching BuyGoods postback pixel at the correct global or offer-specific scope.
- Test with the traffic link, as BuyGoods instructs, and confirm the callback returns an explicit success response.
- Verify the event on the original click with the expected payout, event type, and offer. Reconcile it against the order in BuyGoods. Test missing and unknown IDs; check duplicate handling in a test campaign before replaying a callback.
- For upsells, refunds, or recurring events, verify event semantics before using the data for offer comparison or spend decisions.
An HTTP 200 is transport evidence, not a complete attribution proof. The postback URL guide gives the full server-to-server verification checklist. When comparing BuyGoods offers, keep the payout and approval state separate from EPC as described in the affiliate offer tracking guide.
Common BuyGoods failures
The subID field is in the wrong place
The offer link uses subid2, but the callback returns {SUBID}. Pick one slot and carry it through both configurations.
The macro was copied literally
If Tracked receives {SUBID} instead of a real click value, BuyGoods did not expand the macro or the callback was entered in the wrong field. Inspect the delivered request, not only the saved template.
BuyGoods retries a callback
The receiving endpoint may not have returned a body or a successful response. Check the bridge or endpoint response and inspect whether the first event was already stored before replaying the callback.
A global pixel mixes unrelated offers
Global postbacks can include account-wide activity. Use an offer-specific pixel when the report must isolate one offer, or retain the offer and product fields needed to separate events.
Where Tracked is today
Tracked supports the generic callback and campaign workflow around it. It does not expose a verified BuyGoods account connector, offer discovery, BuyGoods authentication, or a native postback-pixel adapter. Use a subID-to-Tracked click_id mapping when the provider can call the GET endpoint, or a bridge when the delivery mode is form-based. Confirm the field contract before live traffic.
Frequently asked questions
Does Tracked have a native BuyGoods integration?
Not as a verified current connector. Tracked can receive a generic BuyGoods callback when the network returns the original Tracked click ID, but BuyGoods account setup and offer management remain outside Tracked.
Which BuyGoods value should carry the Tracked click ID?
Use the BuyGoods subID slot supported by the offer and your account, such as subid or subid2. Return its matching macro, {SUBID} or {SUBID2}, as the Tracked click_id value.
Why does the BuyGoods example use lowercase and uppercase names?
BuyGoods documents lowercase parameter names on the outbound offer link and uppercase macro names in the postback template. The casing signals two different directions. Match the configured slot exactly.
Does a 200 response prove a BuyGoods sale was attributed?
No. Confirm that BuyGoods sent a real subID, Tracked resolved it to the intended click, and the conversion and payout appeared in the expected report. Reconcile the order separately in BuyGoods and check for duplicate events.
Official references: BuyGoods Setting Up Tracking Pixels, BuyGoods How to place a postback pixel, and BuyGoods FAQ.