Track affiliate sales live using the Reporting API

This guide shows how affiliate partners can track sales on Tiqets.com in near real time by:

  1. Adding tracking parameters to their outbound Tiqets links.

  2. Retrieving attributed orders via the Reporting API endpoint .

It’s designed to be friendly and practical so you don’t need to be deeply technical to implement the basics.


What you’ll achieve

By the end of this guide you will be able to:

  • Attribute completed orders back to the click that generated them.

  • Segment performance by campaign or placement.

  • Feed conversions into your own reporting or ad platforms (for example, by matching on GCLID).


How it works (high level)

  1. A customer clicks from your site/app to Tiqets.

  2. You add a unique click identifier to the Tiqets URL: tq_click_id.

  3. Optionally, you add a campaign label: tq_campaign.

  4. When an order is completed, you call the real time Reporting API and read your values back in the response:

    • tq_click_id ➜ returned as click_id

    • tq_campaign ➜ returned as campaign_name


When sending a customer to Tiqets.com, append these query parameters to your Tiqets URL.

tq_click_id: A unique reference for each click

Rules of thumb

  • Use any unique identifier you can generate and store on your side.

  • Keep it stable so you can match it later.

  • Do not include PII (no email addresses, phone numbers, names, etc.).

Examples of good values

  • An ad platform click ID (for example, a Google Ads GCLID) if you plan to reconcile conversions back to that campaign.

  • A UUID generated by your system.

tq_campaign: Campaign context for better reporting

Common examples include:

  • tq_campaign=top_banner_promotion

  • tq_campaign=homepage_card_3

  • tq_campaign=blog_article_cta

This is especially useful if you want to optimise performance by placement, content, or creative.

circle-info

Implementation tips

  • Make sure values are URL-encoded.

  • Store tq_click_id (and optionally tq_campaign) alongside the click timestamp in your own system.


Step 2 — Retrieve attributed orders via the Reporting API

Once orders are completed, you can retrieve them from the Reporting API.

Endpoint

GET /v2/reports/orders

triangle-exclamation

Useful query parameters

For live tracking, you’ll typically query a recent date range and paginate through results.

  • start_date: start day for orders that were finalised

  • end_date: last day for orders that were finalised (defaults to tomorrow)

  • page_size: number of results per page (default 10, max 100)

  • page: page number

Example request (cURL)

What to look for in the response

In each order record, you’ll find the key attribution fields:

  • click_id , this matches what you sent as tq_click_id

  • campaign_name , this matches what you sent as tq_campaign

  • order_reference_id , a stable identifier you can use for deduplication

  • order_fulfilled_at , when the order was finalised

Here’s a trimmed example:

circle-info

Always plan to handle pagination — if total is greater than your page_size, fetch the next pages until you’ve processed all results.


Step 3 — Match conversions back to your campaigns

A common workflow looks like this:

  1. When the user clicks out, store tq_click_id (and optionally tq_campaign) with your own click record.

  2. Poll the orders endpoint regularly for recently finalised orders.

  3. For each order, match click_id back to your stored click record.

  4. Use campaign_name for breakdowns by placement/campaign.

  5. Use order_reference_id to avoid double-counting.

If you pass GCLID in tq_click_id, you can also use that value to feed the conversion back into Google Ads (or your preferred platform), depending on your own measurement setup.


To keep things simple and robust:

  • Query a rolling window (for example, yesterday → tomorrow).

  • Keep a local record of processed order_reference_id values.

  • Poll at a steady cadence that meets your reporting needs.

As a rule of thumb, every 10–15 minutes is a good starting point for “live” reporting without putting unnecessary load on the API.

If you need faster feedback (for example, during a short promotional burst), you can temporarily increase this to every 5 minutes, but we recommend avoiding more aggressive intervals unless you have a clear need.

If you ever receive 429 Too Many Requests, simply slow down and retry with backoff.

This approach helps you pick up late-finalised orders without needing to reprocess your entire history.


Best practices

  • Never send PII in tq_click_id or tq_campaign.

  • Use order_reference_id for deduplication.

  • Respect API rate limits and handle 429 responses gracefully.

  • If your tq_campaign values contain spaces or special characters, ensure they are properly URL-encoded.

Last updated

Was this helpful?