Analytics - v1.0.0-beta1
Usage Overview
This section covers how to use ArtisanPack UI Analytics to track and analyze visitor behavior on your website.
Core Concepts
Tracking vs. Querying
ArtisanPack UI Analytics provides two main types of functionality:
- Tracking - Recording page views, events, and user interactions
- Querying - Retrieving and analyzing collected data
Automatic vs. Manual Tracking
- Automatic tracking happens via the JavaScript tracker (page views, sessions, device info)
- Manual tracking is done via PHP helper functions for custom events
Guides
- Tracking Page Views - Automatic and manual page view tracking
- Tracking Events - Custom event tracking
- Goals & Conversions - Setting up and tracking conversion goals
- Date Ranges - Working with date ranges for queries
- Helper Functions - Complete reference of available helpers
Quick Reference
Tracking
// Track a page view
trackPageView('/products', 'Products Page');
// Track an event
trackEvent('button_click', ['button_id' => 'cta-main']);
// Track a form submission
analyticsTrackForm('contact-form', ['source' => 'homepage']);
// Track a purchase
analyticsTrackPurchase(99.99, 'USD', [
['name' => 'Widget', 'quantity' => 2],
]);
Querying
use ArtisanPackUI\Analytics\Data\DateRange;
// Get stats for last 7 days
$stats = analyticsStats(DateRange::last7Days());
// Get page views over time
$pageViews = analyticsPageViews(DateRange::last30Days(), 'day');
// Get top pages
$topPages = analyticsTopPages(DateRange::thisMonth(), 10);
// Get traffic sources
$sources = analyticsTrafficSources(DateRange::last7Days());
// Get real-time visitors
$realtime = analyticsRealtime(5); // last 5 minutes
Consent Management
// Check consent status
if (analyticsHasConsent($fingerprint, 'analytics')) {
// Track data
}
// Grant consent
analyticsGrantConsent($fingerprint, ['analytics', 'marketing']);
// Revoke consent
analyticsRevokeConsent($fingerprint, ['marketing']);
JavaScript API
The JavaScript tracker also provides a global analytics object:
// Track a page view
analytics.trackPageView('/custom-page', 'Page Title');
// Track an event
analytics.trackEvent('video_play', { video_id: '123' });
// Check consent
analytics.hasConsent('analytics');
// Grant consent
analytics.grantConsent(['analytics']);