Skip to main content
Skip table of contents

Thank-You Page Tracking

This page is Part 2 in a 3-part series on how to develop a custom integration with Katalys.

  1. Landing Page Tracking

  2. Thank-You Page Tracking (this page!)

  3. Order Status Reporting


Katalys requires Advertisers to include our tracking pixel 1) on Landing Pages (for fraud detection, user verification, and direct linking) and 2) on Thank-You pages (for capturing conversions). On this page, we will describe considerations for placing the Katalys Tracking Script on Thank-You pages, and how to send additional properties into the Katalys Marketing Platform.

Basics

Add our tracking JavaScript snippet to your post-sale Thank-You page, after the customer has completed an order. Most clients prefer to see their own Order ID in the Katalys Marketing reporting, so we highly recommend you set the Required Fields in your snippet. See below for examples and available fields.

HTML
<script type="text/javascript" src="{{YOUR-CUSTOM-URL}}" async></script>
<script type="text/javascript">
_revoffers_track = window._revoffers_track || [];
_revoffers_track.push({ 
  action: "convert",
  order_id: "{{ORDER-ID}}",
});

// ... see below for field definitions
</script>

Recommended Fields

  • order_id:   {string}  example: “12345”
    We use this field to disambiguate orders placed by your customers. It is important that this value be globally unique for your e-commerce account!

  • sale_amount:  {float|string}  example: 25.67
    This should be a numeric value without currency.

  • subtotal_amount:  {float|string}  example: 24.95
    This is sale_amount minus shipping and tax.

  • email_address:   {string}  example: “email@example.com”
    We use this field to disambiguate customers.  Without this field, we cannot perform any special logic like double-conversion avoidance or customer-exclusion.

  • Discount fields:
    For each applied discount or coupon, include the fields discount_X_code and discount_X_amount.

    • discount_1_code:  {string}  example: “REVOFFERS_EXAMPLE”

    • discount_1_amount:  {float|string}  example: “1.50”

Example

This is a minimal example for an order that contains a single coupon:

HTML
<script type="text/javascript" src="{{YOUR-CUSTOM-URL}}" async></script>
<script type="text/javascript">
_revoffers_track = window._revoffers_track || [];
_revoffers_track.push({
    action: "convert",
    order_id: "12345",
    sale_amount: 25.67,
    subtotal_amount: 24.95,
    email_address: "email@example.com",
    discount_1_code: "REVOFFERS_EXAMPLE",
    discount_1_amount: 1.50,
});
</script>

Validating your Thank-You Script

You must confirm that the script is running by executing a test order on your website, and making sure that the script is reporting information to Katalys correctly. The Katalys JavaScript tag is easy to debug by using any browser debugging tools, such as the Chrome DevTools window.

  • Open your website inside of Chrome, and open up the DevTools (documentation).

  • Click on the “Network” panel to view all the network requests being made by your website.

  • Complete an order on your website with the DevTools open. Stop on your Thank You page, after you’ve completed your testing order.

  • Search for revoffers or _tr. Find a ping to https://db.revoffers.com/v2/_tr.

  • Select the ping you wish to inspect, and click on the “Payload” tab on the right. This is the raw information that is being sent to the server. You should see the order data, such as order_id, defined in the Payload.

    Screenshot 2024-02-01 at 4.47.19 PM.png

    The “Payload” tab, shown here after selecting a request coming from the Katalys Tracking Script.

Using the “Payload” tab, compare the data visible on the screen to the data you expect to be submitted to the server. Follow the table below for next steps.

What you see in the sent payload

What could be wrong

What you should do

Value site_id (also called src in the payload) is not an expected value.

You implemented the wrong script.

Get your custom script URL from your Katalys account manager and implement the script site-wide.

If you are having difficulty with implementation, consult your internal technical team.

Required Order Information fields are missing (order_id or sale_amount)

You did not pass required information into the script correctly.

Check your tag integration. If you use GTM, then confirm your data is being passed into GTM correctly.

If you are having difficulty with this, consult your internal technical team.

transaction_id is missing

You didn’t implement Landing Page tracking correctly.

Go back to Step 1.

You didn’t click on a Tracking Link to start your session.

Get an affiliate tracking link from Katalys Marketing Platform and click on that to start your session. Then re-test.

Your landing page does not have appropriate URL parameters, or the parameters get removed by a redirect.

Identify if you have added any redirects.

Update your landing page URL within our platform. (might require your Account Manager’s help).

Your Thank You page is on another domain from your landing page.

This may be ok, but alert your Account Manager.

if none of the above work, contact Katalys Support.

Appendix

Alternate Implementation

We have an alternate implementation that can allow tracking of specific events. To activate this, use the following script to initialize the _revoffers_track global object. Then each call to .push() can use multiple arguments. This is used to track custom events and offer session-state in custom integrations.

HTML
<script type="text/javascript" src="{{YOUR-CUSTOM-URL}}" async></script>
<script type="text/javascript">
window._revoffers_track = window._revoffers_track || !function(){var a=[],b=a.push;a.push=()=>b.call(a,arguments);return a}();
_revoffers_track.push("merge", { ... });
_revoffers_track.push("event", { ... });
</script>

Available Fields

The JavaScript implementation and server-to-server implementation allow you to set the same fields. In your Thank-You page snippet, you can set any field available.

See all available fields on the Order Status Reporting page >>

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.