Setting Up Server-to-Server Tracking
JVZoo
Last Update 9 days ago
Server-to-Server (S2S) tracking allows you to send conversion data directly to your tracking platforms or ad platforms for better campaign optimisation. This automated data flow helps you scale successful campaigns, identify profitable traffic sources, and make data-driven decisions to improve your ROI — all without manual reporting or guesswork.
Server-to-Server tracking is a postback system that automatically sends event data from JVZoo to your external tracking platform. You can track two types of events:
- Purchase — fires when a transaction is completed
- Initiated — fires when an affiliate's visitor lands on a checkout page
You can set up multiple postback configurations, each with its own URL, type, filters, and product scope. This gives you precise control over what gets tracked and where.
Setting Up Your First Postback
- Log in to your JVZoo account
- Click My Account > Account Details
- Scroll down to Affiliate Settings
- Click Manage S2S Postbacks
You'll see your existing postback configurations here (if any), along with their name, URL, type, status, product scope, filters, and last call status.
Click Add New Postback to open the configuration form.
Name
Give this postback a clear, descriptive name so you can identify it later — for example, RedTrack - Purchase or Google Ads - Checkout Visit.
Choose what event this postback should fire on:
| Type | When It Fires |
| Purchase | After a successful transaction is completed |
| Initiated | When a visitor lands on the checkout page |
Each type has its own set of available placeholders — see the full reference below.
This is the URL JVZoo will call when the event fires. Use placeholders (e.g. {tid}, {affiliate_amount}) to pass dynamic data through to your tracking platform.
| https://tracking.yourplatform.com/track?clickid={tid}&sum={affiliate_amount}¤cy={currency}&transactionid={transaction_id}&transactiontype={transaction_type} |
| https://tracking.yourplatform.com/visit?tid={tid}&product_id={product_id}&affiliate_id={affiliate_id} |
For a full list of available placeholders for each type, see the Placeholder Reference below.
Tip: Always use HTTPS URLs. Include {random} to prevent URL caching issues.
Set the postback to Active or Inactive. Only active postbacks will fire.
Choose which products this postback applies to:
- All Products — fires for every product you promote
- Specific Products — select individual products to limit the scope
Notification Filters (Purchase type only)
Filters let you exclude certain transactions from triggering the postback:
- Exclude refunded transactions — postback won't fire on refunds
- Exclude zero-commission conversions — postback won't fire if your commission is $0
Note: The Initiated type has no filters — it fires on every checkout page visit that matches your product scope.
Once saved, your postback will appear in the list. You can:
- Click the log icon to view the full call history for that postback
- Check the Last Call Status column at a glance (Success, Failed, Skipped)
- Edit or deactivate it at any time from the Actions column
Placeholder Reference
Purchase Placeholders
| Placeholder | Description | Example |
| {currency} | ISO currency code | USD, EUR, GBP |
| {transaction_id} | Unique transaction ID | TXN_123456789 |
| {transaction_amount} | Full transaction value | 99.99 |
| {transaction_type} | Transaction type | SALE for purchases, RFND for refunds |
Product Information
| Placeholder | Description |
|---|---|
| {product_id} | Internal product identifier |
| {product_name} | Human-readable product name |
| Placeholder | Description | Example |
|---|---|---|
| {customer_email} | Customer email address | |
| {customer_name} | Customer full name | John Smith |
| {customer_country} | ISO country code | US, GB, DE |
| Placeholder | Description |
|---|---|
| {vendor_id} | Vendor identifier |
| {payment_method} | Payment method used (e.g. credit_card, paypal) |
| {transaction_time} | Unix timestamp of the transaction |
| {vendthru} | Vendor Thru custom field |
| Placeholder | Description | Example |
|---|---|---|
| {affiliate_id} | Affiliate partner identifier | 10956 |
| {affiliate_amount} | Commission amount | 15.99 |
| {commission_type} | Commission model | CPA or REV_SHARE |
| {tid} | Primary click tracking ID passed by the affiliate | click_abc123xyz789 |
| Placeholder | Description |
|---|---|
| {utm_source} | Traffic source (e.g. google, facebook) |
| {utm_medium} | Marketing channel (e.g. cpc, email) |
| {utm_campaign} | Campaign identifier |
| {utm_content} | Ad content variation |
| {utm_term} | Paid search keywords |
| Placeholder | Description |
|---|---|
| {sub_id1} | Custom tracking field 1 |
| {sub_id2} | Custom tracking field 2 |
| {sub_id3} | Custom tracking field 3 |
| {sub_id4} | Custom tracking field 4 |
| {sub_id5} | Custom tracking field 5 |
| Placeholder | Description |
|---|---|
| {gclid} | Google Click ID |
| {fbclid} | Facebook Click ID |
| {msclkid} | Microsoft (Bing) Click ID |
| {ttclid} | TikTok Click ID |
| {li_fat_id} | LinkedIn First-Party Ad Tracking ID |
| {twclid} | Twitter/X Click ID |
| {yclid} | Yahoo Click ID |
| Placeholder | Description |
|---|---|
| {random} | Random 32-character string to prevent URL caching |
| {other_params} | Additional custom parameters in URL format |
Initiated Placeholders
| Placeholder | Description |
|---|---|
| {product_id} | JVZoo product identifier |
| {funnel_id} | Funnel ID; empty if the visitor did not arrive via a funnel |
| Placeholder | Description |
|---|---|
| {affiliate_id} | Affiliate partner identifier |
| {tid} | Primary click tracking ID passed by the affiliate |
| {click_id} | JVZoo click ID; populated when the visitor arrived via a tracked affiliate link, otherwise empty |
| {session_id} | 6-character visitor session identifier, unique per visit |
| Placeholder | Description |
|---|---|
| {utm_source} | Traffic source |
| {utm_medium} | Marketing channel |
| {utm_campaign} | Campaign identifier |
| {utm_term} | Paid search keywords |
| {utm_content} | Ad content variation |
| Placeholder | Description |
|---|---|
| {sub_id1} | Custom tracking field 1 |
| {sub_id2} | Custom tracking field 2 |
| {sub_id3} | Custom tracking field 3 |
| {sub_id4} | Custom tracking field 4 |
| {sub_id5} | Custom tracking field 5 |
| Placeholder | Description |
|---|---|
| {gclid} | |
| {fbclid} | Facebook Click ID |
| {msclkid} | Microsoft (Bing) Click ID |
| {ttclid} | TikTok Click ID |
| Placeholder | Description |
|---|---|
| {country} | Visitor's 2-letter country code (e.g. US, GB) |
| {ip} | Visitor IP address |
| Placeholder | Description |
|---|---|
| {random} | Random 32-character string to prevent URL caching |
| {datetime_unix} | Current Unix timestamp |
| {datetime_full} | Current datetime in Y-m-d H:i:s format |
| {datetime_utc} | Current datetime in ISO 8601 UTC format |
Advanced URL Examples
| https://tracking.yourplatform.com/track?currency={currency}&transaction_id={transaction_id}&transaction_amount={transaction_amount}&transaction_type={transaction_type}&product_id={product_id}&product_name={product_name}&customer_email={customer_email}&customer_name={customer_name}&customer_country={customer_country}&vendor_id={vendor_id}&payment_method={payment_method}&affiliate_id={affiliate_id}&affiliate_amount={affiliate_amount}&commission_type={commission_type}&tid={tid}&utm_source={utm_source}&utm_medium={utm_medium}&utm_campaign={utm_campaign}&gclid={gclid}&sub_id1={sub_id1}&sub_id2={sub_id2}&random={random} |
| https://tracking.yourplatform.com/visit?tid={tid}&click_id={click_id}&session_id={session_id}&product_id={product_id}&affiliate_id={affiliate_id}&funnel_id={funnel_id}&country={country}&ip={ip}&utm_source={utm_source}&utm_medium={utm_medium}&utm_campaign={utm_campaign}&gclid={gclid}&sub_id1={sub_id1}&sub_id2={sub_id2}&random={random} |
Important Notes
- Postbacks are account-wide by default — a single configuration covers all campaigns unless you restrict it to specific products
- If your click IDs are longer than 26 characters, pass them via Sub IDs instead ({sub_id1} through {sub_id5} support up to 512 characters)
- CPA campaigns do not fire refund postbacks
- RevShare campaigns can track refunds and status changes via the {transaction_type} placeholder (SALE for purchases, RFND for refunds)
Common Tracking Platforms
- RedTrack - Be sure to add: type=initiatedcheckout
- Voluum
- ClickFlare
- BeMob
- And any other platform with postback/pixel URL support
Viewing Postback Logs
- Go to My Account > Account Details > Affiliate Settings > Manage S2S Postbacks
- Click the log icon next to the postback you want to inspect
Need Help?
- Use live chat for fast technical assistance - most issues are resolved in minutes
- Contact the Support team for platform-specific configuration help
