Why Use Server-to-Server Tracking?
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.
Introduction
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
Step 1: Access S2S Postback Settings
- 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.
Step 2: Add a New Postback
Click Add New Postback to open the configuration form.
Step 3: Configure Your Postback
Name
Give this postback a clear, descriptive name so you can identify it later — for example, RedTrack - Purchase or Google Ads - Checkout Visit.
Type
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.
Postback URL
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.
Purchase — Base Example:
https://tracking.yourplatform.com/track?clickid={tid}&sum={affiliate_amount}¤cy={currency}&transactionid={transaction_id}&transactiontype={transaction_type}
Initiated — Base Example:
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.
Status
Set the postback to Active or Inactive. Only active postbacks will fire.
Product Scope
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.
Step 4: Save and Test
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
Use these in your postback URL when the type is set to Purchase.
Required Transaction Data
| 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 |
Customer Data
| Placeholder | Description | Example |
|---|---|---|
{customer_email} |
Customer email address | user@example.com |
{customer_name} |
Customer full name | John Smith |
{customer_country} |
ISO country code |
US, GB, DE
|
Payment & Vendor Details
| 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 |
Affiliate Tracking
| 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 |
UTM Parameters
| 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 |
Sub IDs (Custom Tracking)
| 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 |
Platform Click IDs
| 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 |
System Parameters
| Placeholder | Description |
|---|---|
{random} |
Random 32-character string to prevent URL caching |
{other_params} |
Additional custom parameters in URL format |
Initiated Placeholders
Use these in your postback URL when the type is set to Initiated. These are visitor-level placeholders — transaction data is not available for this type.
Product Information
| Placeholder | Description |
|---|---|
{product_id} |
JVZoo product identifier |
{funnel_id} |
Funnel ID; empty if the visitor did not arrive via a funnel |
Affiliate Tracking
| 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 |
UTM Parameters
| Placeholder | Description |
|---|---|
{utm_source} |
Traffic source |
{utm_medium} |
Marketing channel |
{utm_campaign} |
Campaign identifier |
{utm_term} |
Paid search keywords |
{utm_content} |
Ad content variation |
Sub IDs (Custom Tracking)
| 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 |
Platform Click IDs
| Placeholder | Description |
|---|---|
{gclid} |
Google Click ID |
{fbclid} |
Facebook Click ID |
{msclkid} |
Microsoft (Bing) Click ID |
{ttclid} |
TikTok Click ID |
Visitor Data
| Placeholder | Description |
|---|---|
{country} |
Visitor's 2-letter country code (e.g. US, GB) |
{ip} |
Visitor IP address |
System Parameters
| 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
Purchase — Full Attribution Example:
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}
Initiated — Full Checkout Visit Example:
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 (SALEfor purchases,RFNDfor refunds)
Common Tracking Platforms
JVZoo S2S postbacks are compatible with any platform that supports postback URLs, including:
- RedTrack
- Voluum
- ClickFlare
- BeMob
- And any other platform with postback/pixel URL support
Viewing Postback Logs
Each postback configuration has a call history log. To view it:
- Go to My Account > Account Details > Affiliate Settings > Manage S2S Postbacks
- Click the log icon next to the postback you want to inspect
The log shows each call with its timestamp, type, transaction ID (where applicable), HTTP response code, status (Success / Failed / Skipped), and the full URL that was called.
Need Help?
- Use live chat for fast technical assistance - most issues are resolved in minutes
- Contact the Support team for platform-specific configuration help