Table of Contents
Getting Started with Intelitics
This document will serve as an introduction to the process for integrating our platform into your gaming offering.
Once you are ready to get started with an integration we will do an initial mapping exercise regarding events and tracking elements to ensure Intelitics tracking codes, server calls and Data Transports are in alignment together. This meeting will include:
- Review the Getting Started items
- Review your company and how Intelitics will be leveraged
- Departments overview including what groups will be using Intelitics
- Partner / Publisher Team, Media Team, Accounting Team
- High level overview of Intelitics platform setup
- Unique needs (GGR and NGR calculations, tracking steps, LPs and conversions flows, etc.)
- Build custom training plan
- Define key dependencies and deliverable dates
- Development work, integrations, data migration, etc.
Initial Required Items
Intelitics will require a few things from you before your new instance can be configured:
- Platform Domain
- URL that you and your partners will use to log into Intelitics
- Intelitics will need to work with your tech team to configure this domain to display the Intelitics webapp
- Please see considerations
- Tracking Domain
- URL used for click tracking and conversion links
- This can be the same domain as your admin webapp
- Please see considerations
- System Contact Information
- A point of contact for technical support and reach out
- Existing Data Imports
- What does your existing data look like that you would like to import into Intelitics?
- Brands, Products, Commercials, Partners, Campaigns, Creatives
- A migration plan will be architected with your tech team once there is an understanding of what your existing data looks like
- Client Email Provider
- You (the client) will need to set up or utilize a preexisting email provider to deliver platform alerts and notifications (such as password resets, email verifications, and any automated email contact with the platform’s users).
Customization Options
Intelitics can be customized in theme and logo. The following are options able to be changed; additional custom UI or changes will need to be discussed:
- Header logo
- PNG, JPEG, SVG
- Rectangular, transparent background
- Displayed at max height 64px
- Displayed on admin webapp header on top of the primary company color
- Company logo
- PNG, JPEG
- Square, transparent or opaque background
- 100x100px minimum
- Displayed on login pages and browser favicon
- Background Image
- Used as full screen backgrounds for things like Signup/Login Page
- PNG, JPEG
- Theme
- Primary company color
- Hex value; no alpha
- Used for CTA buttons and header bar
- Secondary company color
- Hex value; no alpha
- Used in form toggles or important CTA buttons
- Privacy Policy and Terms of Service
- URL
- On our signup page, we can link out to your ToS and PP pages.
Migration Considerations
If you use an existing system, Intelitics offers importing of existing reporting data into the platform. What shape this process takes entirely depends on the shape of existing data. Intelitics can work directly with your technical team to create a plan of action for migrating data. This plan would include setting data quality expectations, evaluating any custom features required to migrate, and a timeline for migration.
Some considerations that may impact this plan are as follows:
- Where is your data stored?
- Can it be exported as a CSV or similar batch file?
- Are their APIs accessible to fetch this data?
- Can an existing server push data into Intelitics using the API?
- How are images for creatives stored?
- Are you migrating any active offers that have live tracking links?
- Are partners able to change the tracking links, or is backward compatibility required?
- What amount of downtime is agreeable for offers?
- Is the offer near the end of life?
- Will you be running your existing system and Intelitics in parallel?
- Does data need to be shared between the systems?
Domain Considerations
Root VS Subdomain DNS Conflicts
| Platform Domain | Tracking Domain | |
|---|---|---|
| Root Domain Example | https://yourplatformdomain.com |
https://yourtrackinglink.com |
| Subdomain Example | https://platform.yourdomain.com |
https://click.yourtrackinglink.com |
While some Domain Registrars (DNS management providers) easily allow root domains to be used (such as Amazon AWS), some do not easily allow CNAME alias records to be set at a root domain level.
Impact: This has the potential to complicate (delay) the DNS setup portion of the instance build.
For this reason we recommend instead, using subdomains for both platform and tracking domains.
Using root domains may be possible but this is dependent on your current DNS provider as well as the capability of your technical teams to set these up. Intelitics does not have control over these factors.
Subdomain Naming Suggestions
Here are some commonly used subdomain names:
| Platform | Tracking |
|---|---|
https://platform.domain.com
|
https://track.trackingdomain.com
|
Independent Tracking Link
- Platform Link - URL that you and your partners will use to log into the Intelitics webapp
- Tracking Link - URL used for tracking, click, and conversion links. Most commonly used, these are the links partners place to deliver traffic.
If protecting the domain reputation of your platform/business/brand is of concern, we recommend using a separate tracking domain from your platform domain.
In the event that the tracking link shares the platform domain, there is an opportunity for a partner to inadvertently damage the reputation of your platform's (or company's) domain when attempting to drive traffic, since this is the link partners will be using.
Example:
Lets imagine a platform is set up to use the following links sharing a domain:
- Platform:
platform.somecompany.com
- Tracking:
tracking.somecompany.com
If a partner inadvertently sends out a "spammy" email using an un-masked tracking link (which in this case shares the same domain as the platform/company). This could hurt the somecompany.com domain reputation, which is likely used in other areas of business (eg. Newsletters, external communications, etc.).
Event Tracking
Intelitics uses two URLs in the click / conversion tracking process.
A "click" is first generated through a tracking URL tagged with a partner tracking ID. This tracking ID is a unique identifier referencing the subagreement the partner has with an offer and the creative they used. Tracking IDs are generated on the creative listview under an offer in the admin webapp.
Clicks are updated with new conversion details through a "smart pixel". This is a static URL that is given the click's unique ID along with conversion details, such as registration or deposit information.
Click Tracking
Use this for a partner sending traffic to an offer, generating new clicks.
Base URI
GET https://yourcustomdomain.com/track/{tracking_id}Required Parameters
- tracking_id
- Type: uuid
- The unique ID identifying the partner and the creative the user clicked
Optional Parameters
- type
- Type: ["cpv", "display", "email", "instagram", "native", "pop", "ppc", "push", "snapchat", "social"]
- Type of marketing done by the partner which the user came from
Example URI
https://yourcustomdomain.com/track/d34bc2e4-9159-47a2-acd8-1f72b37f88a2
Example Response
Success
HTTP Code: 302
Body:
A successful click track will redirect the user to the tracking link specified in the creative, offer, or brand, respectively. The newly generated click ID, partner ID, and other custom attributes can be specified in the webapp to be passed in the tracking link.
Error (Invalid tracking ID)
HTTP Code: 404
Body:
Conversion Tracking
Use this when a click ID already exists and a conversion should be added / updated to that click.
Base URI
GET https://yourcustomdomain.com/convert/{click_id}
Required Parameters
- Type:
| Event Type: | Accepted Value: | Note: |
|---|---|---|
| Install | install |
User installation event |
| Registration | registration |
New user registration |
| Deposit* | deposit |
User deposit/purchase (Any) |
| Wager* | wager |
User wager/bet/stake |
| Winnings Paid | winnings_paid |
Winnings paid to user, amount won |
| Bonus* | bonus |
Bonus received by user |
| Adjustment* | adjustment |
Can be used for any variety of adjustments if needed for NGR calculations |
| Tax* | tax |
Tax used in NGR calculations |
| Withdrawal* | withdrawal |
User withdrawal |
| Administrative Fee* | admin_fee |
Can be used for any "fees" if needed for NGR calculations |
| Extra Costs* | extra_cost |
Can be used as an additional cost/fee for NGR calculations |
| Gross Gaming Revenue* | gross_gaming_revenue |
Total Gross Gaming Revenue |
| Data Provider Net Revenue* | provider_net_revenue |
This Net Gaming Revenue is to be used when a data provider is sending NGR data that an intelitics client might desire to adjust further using other event types to calculate a "final" NGR. |
| Final Net Revenue* | net_revenue |
The "total" Net Gaming Revenue shown in the system, this is the value which things like Revenue Share is calculated. This value can be optionally calculated with a formula using the other transaction values, or given to us exactly as is |
- The type of conversion being reported. Conversions are linear, but can skip any step in this process if that type of event is not wanted or not available to be tracked
- * = "Amount", "Currency" are "conditionally required" parameters for these event types
- click_id
- Type: uuid
- Intelitics generated unique ID of the initial impression or click
Optional Parameters
- player_id
- Type: string
- A custom player ID from your gaming platform for tracking purposes
- Only one player ID exists for a given ClickID, and our system will always take the most recently given Player ID. It is recommended this value is only delivered once on the original registration event
- currency
- Type: ["eur", "usd", "gbp", "aud", "btc", "cad", "inr"]
- Currency code the transaction was made in
- amount
- Type: float
- The amount of money for a given transaction
- time
- Type: ISO8601 datetime string
- The time the conversion occurred. By default, the current time will be used. This parameter should only be used in cases where an old event is being reported, possibly from a failed pixel fire
- UTC timezone required
- transaction_id
- Type: string
- A custom id relating from client cashier for identifying Deposit events, so Intelitics can match events from different data streams and dedupe requests for the same transaction
- vertical
- Type: ["BINGO", "CASINO", "CRYPTO", "ESPORTS", "FANTASY", "FOREX", "HORSE_RACING", "LIVE_DEALER", "LOTTERY", "OTHER", "POKER", "SLOTS", "SPORTSBOOK", "SWEEPSTAKES", "TABLE_GAMES", "VIRTUAL"]
- Vertical category this transaction or conversion is associated with. This can be used to group and pivot data in reporting.
Offer Pools
- player_state_code
- The player's state code to be considered for the partner payout.
- Type: ISO-3166-2 string
- Note: The separator per the ISO-3166-2 specifications is an underscore "_".
- Eg. "US_MI" or "ID_RI"
- player_country_code
- The player's 2 character country code to be considered for the partner payout.
- Type: ISO-3166-1 string
- Eg. "US" or "ID"
- player_city
- The player's city to be considered for the partner payout.
- Type: string
- Eg. "New York"
- player_postal_code
- The player's postal code to be considered for the partner payout.
- Type: string
- Eg. "92612" or "E5 0NE"
Example URI
https://yourcustomdomain.com/convert/fd3ba970-2330-4576-94ba-e1efc470bd56?type=deposit
¤cy=usd&amount=40&time=2022-01-23T1:20:00.000Z&transaction_id=1002372External Tracking
Use this when an Intelitics click ID does not exist and a conversion needs to generate the click and have the event added / updated to that click.
This is used for tracking events for clicks and players acquired from Meta, Google and other ad platforms.
Base URI
GET https://yourcustomdomain.com/external/{tracking_id}?external_source={external_source}
&external_id={external_id}&type={type}Required Parameters
- tracking_id
- Intelitics generated tracking link that associates the conversion source, campaign, ad and ad set
- external_id
- A persistent unique identifier for the conversion in addition to external_source. This can be a player ID or click ID (eg. fbclid, gclid). This should be consistent with all events from this player or click.
- external_source
- The platform/source for the conversion and part of the persistent unique identifier for the conversion with external_id
- This is one of our first party support ad platforms (facebook, google, snapchat, tiktok, microsoftads, linkedin, x, amazon, pinterest) or if not from first party support integration (other)
- Not case sensitive
- type
- Conversion type (eg. Click, Install, Registration, Deposit)
- As defined in the above table
Optional Parameters
All above Intelitics - Client Integration Docs - Overview v2025-3
- timestamp
- Type: ISO8601 datetime string
- The time the conversion occurred. By default, the current time will be used. This parameter should only be used in cases where an old event is being reported, possibly from a failed pixel fire
- UTC timezone required
- If not provided, Intelitics will infer a timestamp based on clicks/players conversion history.
- promo_code
- A unique identifier associated with a subagreement (partner and offer) that is pre-configured within the Promo Code section of Intelitics
- ad_id
- A unique identifier for the ad, used to track performance and attributes at the individual ad level.
- Typical parameter names from ad platforms include: {creative}, {ad_id} and {adid}
- ad_set_id
- A unique identifier for the ad set, used to group ads with shared targeting, budget, and scheduling settings.
- Typical parameter names from ad platforms include: {adgroupid}, {adset_id} and {adset_id}
- campaign_id
- A unique identifier for the ad campaign, used to group ad sets under a common marketing objective.
- Typical parameter names from ad platforms include: {campaignid} and {campaign_id}
Example Responses
Success
HTTP Code: 202
Body:
Error (Invalid type)
HTTP Code: 422Body:
{
"error": "Parameter 'type' must be one of [install, registration, deposit]"
}Error (Invalid amount)
HTTP Code: 422Body:
{
"error": "Parameter 'amount' must be a number"
}Error (Invalid currency)
HTTP Code: 422Body:
{
"error": "Parameter 'currency' must be one of [USD, GBP, EUR, CAD, BTC, AUD, INR]"
}Implementation Options
There are multiple options for using this URL to track click updates or conversions. All options perform the same function.
iFrame
This is a piece of code that is placed directly on a page after a user converts at various defined events (install, registration, deposit). It fires the request as the page loads.
JavaScript
The conversion URL can be requested directly from JavaScript running on the user's browser. This is useful if the user's browser page does not change once they have converted. A script can be added to your offer page's code to update Intelitics on the conversion. This can be done asynchronously as well, so it does not block the user or affect the load speed of your page.
Server to Server
This URL can also be requested directly from any server. However, since the request is not being sent from the user's browser, Intelitics will not be able to record metadata information and session specific values from the user (e.g. IP address, geolocation information, referrer URL).
User Cookies
When a user redirects to your landing page, the click ID, partner ID, and other custom attributes you specify can be passed to your landing page via query parameters.
Ex: https://www.mydomain.com/landing?click_id=71b9be6e-6800-4500-9704-dbbe817627cf
With the above example, your site can read the click ID from the query and store it however you need. A recommended way to track this click ID and associate it with the current user is through a browser cookie.
Example Cookie Placement
// On load of the page
var urlParams = new URLSearchParams(window.location.search);
document.cookie = "click_id=" + urlParams.get("click_id");Example Conversion Using Cookie
// When sending a conversion event
var clickId = document.cookie.split("=")[1];
fetch("https://yourcustomdomain.com/convert/" + clickId);Revenue Import
After a click has converted, you may need to import data such as NGR or GGR to track conversion strength or player activity over time. Intelitics supports batch upload of conversion or deposit data as well as direct API integration.
Key Considerations
- Where is your revenue for a player calculated?
- Is this done real time or on a schedule?
- Can this data be exported with click IDs or your own player IDs?
- How often do you need reports updated with new revenue data?
Data API
Intelitics' platform is built API first using GraphQL. All functions accessible from the admin webapp can also be accessed directly via API calls. In the event one of your internal systems needs to communicate directly to Intelitics, you can do so through this API. Examples of possible integration include creating / updating user information, generating creatives, or updating agreement details for offers.
Note this API is written with GraphQL. Documentation on available queries will be provided through an exploratory "GraphQL Playground". The URL of these docs will be generated when your production instance is created. Additional resources on GraphQL, how to interface with it, and quick start guides can be provided on request.
Upcoming features and documentation can be found here:
https://staging.api.intelitics.com/