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 aKA-
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 astransaction_id
,offer_id
, andaff_id
. Either thetransaction_id
parameter or theoffer_id
andaff_id
parameter must be defined.Inbound Katalys links will contain the URL parameters
transaction_id
,offer_id
, andpublisher_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 storetransaction_id=1234abcd
,offer_id=1234
, andaff_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.
<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.
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.
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.
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}