Skip to main content
Skip table of contents

Postback Implementation

Katalys (formerly “RevOffers”) has developed plugins for most major CRM integrations, which makes getting started with Katalyss efficient and easy! We highly recommend starting with any of our plugin-based approaches for smooth and fast onboarding with no developer time.

For instances where Katalys cannot be integrated with your CRM directly, we have the following options:

  • JavaScript Postback
    Preferred: better attribution and tracking for your affiliates, and better reporting of traffic quality.
    More options for account management.

  • HTTP Postback
    Requires appropriate attribution technology installed on all sites.
    Must be compatible with all traffic sources being sent via Katalys

Initial Requirements

To get started with sending data back to Katalys, you must:

  • Retrieve your site_id from the Katalys “Integrations” page
    This is the “data silo” that has been created to collect data for your integration. This is frequently named using a KA- prefix followed by random numbers/letters. Go to your account’s Integrations page →

  • Implement your own attribution tool
    You must have an attribution technology tool implemented on your site that can store Katalys tracking information, such as transaction_id, offer_id, and aff_id. Either the transaction_id parameter or the offer_id and aff_id parameter must be defined.

    • Inbound Katalys links will contain the URL parameters transaction_id, offer_id, and publisher_id.

    • You will need to store these values and offer them back to Katalys after a conversion takes place.

    • As an example:

      For URL: https://example.com/page1?utm_source=RevOffers&transaction_id=1234abcd&offer_id=1234&publisher_id=5678
      You would store transaction_id=1234abcd, offer_id=1234, and aff_id=5678

If the system you are configuring is performing the attribution, use type=force_convert instead of type=offline_conv. The value force_convert will ensure that the conversion data you are providing to Katalys results in a conversion within your account.

JavaScript Postback

The following pixel should be placed on your Thank-You page that is presented to the end-user. This pixel can be fired within an iframe or copy/pasted directly into the source of the page.

Remember to replace the {variable} syntax below with your own values.

HTML
<script type="text/javascript">
_revoffers_track = window._revoffers_track || [];
_revoffers_track.push({
    type: "convert",
    site_id: "{revoffers_site_id}",
    order_id: "{your_crm_order_id}",
    sale_amount: "{sale_amount}",
    subtotal_amount: "{sale_amount}",
    email_address: "{email_address}",
    discount_1_code: "{coupon_code}",
    transaction_id: "{revoffers_transaction_id}",
    offer_id: "{revoffers_offer_id}",
    aff_id: "{revoffers_affiliate_id}"
});
</script>
<script type="text/javascript" src="https://db.revoffers.com/js/{{YOUR-URL}}.js" async></script>

HTTP Postback

When JavaScript is not an option, we can receive a postback via an HTTP POST or GET request from your server. This option is the least-flexible of our reporting options – all fields are required to achieve

POST request with JSON

Following JSON conventions, whitespace between parameters does not matter.

The endpoint will return a 204 status code when the data is received and parsed correctly.

Remember to replace the {variable} syntax below with your own values.

JSON
POST https://db.revoffers.com/v2/_tr_offline
Content-Type: application/json

{
    "type": "offline_conv",
    "site_id": "{revoffers_site_id}",
    "order_id": "{your_crm_order_id}",
    "email_address": "{email_address}",
    "sale_amount": "{sale_amount}",
    "subtotal_amount": "{subtotal_amount}",
    "client_ip": "{client_ip_address}",
    "user_agent": "{client_user_agent}",
    "discount_1_code": "{coupon_code}",
    "transaction_id": "{revoffers_transaction_id}",
    "offer_id": "{revoffers_offer_id}",
    "aff_id": "{revoffers_affiliate_id}"
}

POST request with form-encoded values

The endpoint will return a 204 status code when the data is received and parsed correctly.

The newline characters in the example below are for illustration purposes only and should be stripped from the actual payload.

Remember to replace the {variable} syntax below with your own values.

NONE
POST https://db.revoffers.com/v2/_tr_offline
Content-Type: application/x-www-form-urlencoded

type=offline_conv
  &site_id={revoffers_site_id}
  &order_id={your_crm_order_id}
  &email_address={email_address}
  &sale_amount={sale_amount}
  &subtotal_amount={subtotal_amount}
  &client_ip={client_ip_address}
  &user_agent={client_user_agent}
  &discount_1_code={coupon_code}
  &transaction_id={revoffers_transaction_id}
  &offer_id={revoffers_offer_id}
  &aff_id={revoffers_affiliate_id}

GET request with URL parameters

This type of request will always return a 204 response.

The newline characters in the example below are for illustration purposes only and should be stripped from the actual payload.

Remember to replace the {variable} syntax below with your own values.

CODE
GET https://db.revoffers.com/v2/_tr_offline?
  type=offline_conv
  &site_id={revoffers_site_id}
  &order_id={your_crm_order_id}
  &email_address={email_address}
  &sale_amount={sale_amount}
  &subtotal_amount={subtotal_amount}
  &client_ip={client_ip_address}
  &user_agent={client_user_agent}
  &discount_1_code={coupon_code}
  &transaction_id={revoffers_transaction_id}
  &offer_id={revoffers_offer_id}
  &aff_id={revoffers_affiliate_id}
JavaScript errors detected

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

If this problem persists, please contact our support.