Trackers
This guide shows you how to integrate CashIn's Event Tracker endpoints to understand user behaviour on your site while respecting privacy.
Tracker Endpoints
|
Endpoint |
Method |
Purpose |
Key Parameters |
Response Data |
|---|---|---|---|---|
|
|
POST |
Create new event tracker |
|
|
|
|
GET |
Get tracker details |
|
|
|
|
PUT |
Update tracker |
|
Updated |
Tracker Types
|
Type |
Purpose |
Use Case |
|---|---|---|
|
|
Track page visits and navigation |
Site analytics, funnel analysis |
|
|
Monitor button and link clicks |
UX optimization, conversion tracking |
|
|
Measure content engagement |
Content performance, user engagement |
|
|
Track session duration |
Understand if they’re a lost, or quick purchaser or slow purchaser |
|
|
Your own tracking logic |
Specialized business requirements |
Authentication Setup
const headers = {
'Authorization': 'Bearer sk_live_abc123def456...',
'Content-Type': 'application/json'
};
Quick Start: Create Default Trackers
Create a Page View Tracker
async function createPageTracker() {
const response = await fetch('/partner/v1/tracker', {
method: 'POST',
headers,
body: JSON.stringify({
name: "Website Page Views",
tracker_type: "page_view",
reference_id: "main-site"
})
});
const result = await response.json();
if (result.success) {
console.log('Tracker created:', result.data.tracker.script_url);
return result.data.tracker;
}
}
Create a Click Tracker
async function createClickTracker() {
const response = await fetch('/partner/v1/tracker', {
method: 'POST',
headers,
body: JSON.stringify({
name: "Button Clicks",
tracker_type: "click_tracking",
reference_id: "click-analytics"
})
});
const result = await response.json();
return result.success ? result.data.tracker : null;
}
Implement Tracking Scripts
Basic Script Implementation
function loadTracker(scriptUrl) {
const script = document.createElement('script');
script.src = scriptUrl;
script.async = true;
script.onload = () => console.log('Tracker loaded');
script.onerror = () => console.error('Tracker failed to load');
document.head.appendChild(script);
}
// Usage
const tracker = await createPageTracker();
if (tracker) {
loadTracker(tracker.script_url);
}
HTML Embed Code
<!-- Simple embed for page tracking -->
<script>
(function() {
var script = document.createElement('script');
script.src = 'YOUR_TRACKER_SCRIPT_URL';
script.async = true;
document.head.appendChild(script);
})();
</script>
Custom Tracking
Create Custom Tracker
async function createCustomTracker() {
const customScript = `
// Track form submissions
document.addEventListener('submit', function(e) {
console.log('Form submitted:', e.target.id);
});
`;
const response = await fetch('/partner/v1/tracker', {
method: 'POST',
headers,
body: JSON.stringify({
name: "Form Tracking",
tracker_type: "custom",
reference_id: "forms",
custom_script: customScript
})
});
return response.json();
}
Manage Trackers
Get Tracker Details
async function getTracker(trackerId) {
const response = await fetch(`/partner/v1/tracker/${trackerId}`, {
method: 'GET',
headers
});
const result = await response.json();
if (result.success) {
console.log('Tracker info:', result.data.tracker);
console.log('Privacy summary:', result.data.tracker.piic_summary);
}
}
Update Tracker
async function updateTracker(trackerId, updates) {
const response = await fetch(`/partner/v1/tracker/${trackerId}`, {
method: 'PUT',
headers,
body: JSON.stringify(updates)
});
return response.json();
}
// Toggle tracker on/off
await updateTracker('tracker-id', { is_active: false });
Complete Setup Example
async function setupWebsiteTracking() {
// Create trackers
const pageTracker = await createPageTracker();
const clickTracker = await createClickTracker();
// Load scripts
if (pageTracker) loadTracker(pageTracker.script_url);
if (clickTracker) loadTracker(clickTracker.script_url);
console.log('Website tracking setup complete');
}
// Initialize on page load
document.addEventListener('DOMContentLoaded', setupWebsiteTracking);
Tracker Types
|
Type |
Purpose |
What it tracks |
|---|---|---|
|
|
Page visits |
URLs, navigation patterns |
|
|
User clicks |
Button/link interactions |
|
|
Content engagement |
How far users scroll |
|
|
Session duration |
Time spent on pages |
|
|
Your own logic |
Whatever you define |
Privacy & PIIC
-
All trackers are automatically analyzed for privacy compliance
-
PIIC ensures no personal data is collected
-
Each tracker gets a privacy summary
-
Scripts are hosted securely on CashIn's CDN
Error Handling
async function createTrackerSafely(config) {
try {
const response = await fetch('/partner/v1/tracker', {
method: 'POST',
headers,
body: JSON.stringify(config)
});
const result = await response.json();
if (!result.success) {
console.error('Tracker creation failed:', result.message);
return null;
}
return result.data.tracker;
} catch (error) {
console.error('Network error:', error);
return null;
}
}
That's it! You can now track user behaviour on your website while respecting privacy and connecting to CashIn's session and campaign systems.