API Reference

DataGlue provides a comprehensive JavaScript API for interacting with visitor data and customizing behavior.

Global Object

DataGlue is available globally as window.glue:
// Check if DataGlue is loaded
if (window.glue) {
    console.log('DataGlue is ready');
}

Core Methods

glue.storage

Storage management methods:
// Set data
window.glue.storage.set('key', 'value');
window.glue.storage.set('key', 'value', 30); // With 30-day expiration

// Get data
const value = window.glue.storage.get('key');

// Remove data
window.glue.storage.remove('key');

// Clear all data
window.glue.storage.clear();

glue.getVisitorContext()

Get complete visitor information:
const context = window.glue.getVisitorContext();
console.log(context);
// Returns: user agent, language, attribution data, etc.

glue.getAttribution()

Get attribution data only:
const attribution = window.glue.getAttribution();
console.log(attribution);
// Returns: UTM parameters, click IDs, referrer data

glue.dynamicContent()

Configure conditional content:
glue.dynamicContent({
    selector: '#premium-content',
    key: 'utm_source',
    value: 'email',
    access_granted: '<p>Welcome email subscriber!</p>',
    access_denied: '<p>Subscribe to see this content.</p>'
});

Configuration

Script Attributes

Configure DataGlue via script tag attributes:
<script
    src="https://api.dataglue.io/glue.min.js"
    modules="formSearch"
    endpoint="https://api.example.com/webhook">
</script>

JavaScript Configuration

// Set attribution manually
window.glue.setAttribution({
    utm_source: 'newsletter',
    utm_campaign: 'summer_sale'
});

Events

DataGlue emits custom events:
// Listen for initialization
window.addEventListener('dataglue:ready', function() {
    console.log('DataGlue initialized');
});

// Listen for data updates
window.addEventListener('dataglue:update', function(event) {
    console.log('Data updated:', event.detail);
});

Error Handling

try {
    const data = window.glue.storage.get('key');
    if (!data) {
        console.warn('No data found for key');
    }
} catch (error) {
    console.error('DataGlue error:', error);
}