Most analytics plugins guess where your traffic came from by running a script in the visitor’s browser, after the page has already loaded, and after any ad blocker or privacy extension has had a chance to block it. CQI Referrer Attribution classifies every visit on the server, before the page is even sent, so the data is complete and the plugin adds no client-side JavaScript, no extra request, and no Core Web Vitals penalty.
It also answers a question most attribution tools still miss: how much of your traffic is coming from AI assistants. ChatGPT, Gemini, Perplexity, Claude, Copilot, and a growing list of others now send real visitors. This plugin classifies that traffic as its own channel, not lumped into Direct or Referral where it disappears.
Nine channels are detected automatically: AI Tools, Organic Search, Social Media, Email, Paid Search, Paid Display, Campaign, Referral, and Direct.
This plugin is fully functional with no licence key, trial period, or usage limit of any kind.
AI Referrer Taxonomy
A built-in registry of AI assistant domains is used to classify AI-referred traffic. The default set includes ChatGPT, Google Gemini, Perplexity, Claude, Microsoft Copilot, Grok, Meta AI, and more. Entries can be added, edited, activated, deactivated, deleted, and exported as JSON.
Dashboard
A 30-day summary showing total sessions, session change versus the previous 30 days, AI traffic sessions and their share of total traffic, top channel, and a channel share pie chart.
Sessions log
The full Sessions report supports date range, channel, and source filters, pagination, and CSV export.
Consent-aware
When CQI Consent is active, attribution is only persisted after marketing consent is granted. Without consent, classification runs in memory only and no cookie or database row is written. The plugin operates in permissive mode when CQI Consent is not installed.
Privacy by design
No personal data is stored. Session tokens are HMAC-SHA256 hashes of an anonymized IP address (last octet zeroed) and the current date. Raw IP addresses are never written to disk. Token rotation is daily. The plugin is registered with the WordPress personal data export and erasure framework.
Excluded channels
Any channel can be excluded from the Dashboard summary, the channel share chart, and the Sessions report. This is most useful for removing Direct / Unknown from view so reports focus on traffic you can actually attribute and act on.
Path exclusions and bot filtering
A built-in guard silently drops requests to /robots.txt, /sitemap.xml, /xmlrpc.php, /favicon.ico, and other system paths before classification runs. Additional path prefixes can be added in Settings, one per line, to suppress noise from any crawlers or automated probes specific to your site.
Public PHP API
Two functions are available for use in themes and other plugins:
cqip_attr_get_channel(), returns the current visitor’s channel slugcqip_attr_get_source(), returns the full attribution arrayThese function names are intentionally preserved from CQIP Site Services v1.8.0 for backward compatibility on sites migrating from that plugin.
Filter and action hooks
These hooks let other plugins extend this plugin’s behaviour. They are not used by this plugin itself; they exist for add-ons such as CQI Referrer Attribution Pro.
cqi_referrer_attribution_logo_url (filter), the mark shown in the admin page headercqi_referrer_attribution_plugin_name (filter), the page title shown in the admin page headercqi_ra_session_logged (action), fires after each session is recorded, receives the new row’s ID and datacqi_ra_admin_tabs (action), fires inside the admin page’s tab navigation, after the built-in tabscqi_ra_unknown_tab_handled (filter), fires when an unrecognized tab slug is requested, lets an add-on render its own tab bodycqi_ra_sessions_view_filters (filter), the Sessions report’s query filters, before the session log is queriedcqi_ra_sessions_filter_bar (action), fires inside the Sessions filter bar, after the built-in filter fieldscqi_ra_sessions_table_header (action), fires inside the Sessions table header row, after the built-in columnscqi_ra_sessions_table_row (action), fires inside each Sessions table row, after the built-in columns, receives the row objectcqi_ra_dashboard_log_id_in (filter), restricts Dashboard metrics to a specific list of session row IDsCQI (Content Quality and Intelligence) is a methodology standard that is followed, not a technology stack. Implementations can exist for static PHP sites, WordPress, page generators, and other document management systems. Its purpose is to encourage structured content that benefits human and machine readers.