How it works
A dynamic QR scan first passes through Qrious. When conversion tracking is enabled for that QR, Qrious creates a random click identifier, records the scan and appends qrious_click to the destination URL.
https://example.com/?utm_source=print&qrious_click=550e8400-...The Qrious script stores that identifier only after analytics consent. If the same browser reaches your configured confirmation path within seven days, the visit is attributed to the QR scan.
No form data is collected. Conversion tracking sends the anonymous click identifier, account identifier and page path. It does not send names, email addresses, order contents or form fields.
Before you begin
- A dynamic URL QR code. Static PNG-only codes cannot carry attribution.
- A website you control. You must be able to add the Qrious script.
- A dedicated confirmation page. For example,
/thank-youafter a form or purchase. - A consent mechanism. Qrious storage must follow the visitor's analytics choice.
The QR destination and confirmation page must use the same origin: the same protocol, hostname and port. A QR pointing to https://example.com cannot track a goal on https://checkout.example.com.
Install conversion tracking
- 1Create a goal
Open Analytics → Conversions, select a dynamic QR and enter the exact confirmation path, such as
/thank-you. - 2Copy your account script
Use the personalized snippet shown in Analytics. Add it to every page involved in the journey, preferably before the closing
</body>tag. - 3Connect consent
Notify the script when analytics storage is granted, rejected or withdrawn.
- 4Run Test setup
Complete the test journey and confirm that Analytics displays Test passed.
<script defer src="https://www.qrious.now/qrious-conversion.js?account=YOUR_ACCOUNT_ID"></script>Replace YOUR_ACCOUNT_ID with the account value displayed in your Qrious Analytics page. Do not copy an identifier from another account.
Content Security Policy
If your website uses a Content Security Policy, permit the Qrious origin for both script loading and API requests.
Content-Security-Policy:
script-src 'self' https://www.qrious.now;
connect-src 'self' https://www.qrious.now;Connect your consent manager
The script does nothing until your site explicitly grants analytics consent. Call this code from the consent manager's analytics-accepted callback:
window.qriousConversionConsent = true;
window.dispatchEvent(new Event("qrious:consent-granted"));When the visitor rejects analytics storage or later withdraws consent, call:
window.qriousConversionConsent = false;
window.dispatchEvent(new Event("qrious:consent-denied"));Consent belongs to the destination website. The account owner is responsible for the site's notice, consent categories and applicable legal requirements.
Test the setup
Configuration test
- Open Analytics → Conversions and select Test setup.
- Allow analytics storage in the test browser.
- Complete the flow until you reach the configured confirmation path.
- Refresh Analytics and look for Test passed.
A configuration test checks the pixel and path but does not increment the conversion total.
Real attribution test
- Scan or open the QR's Qrious short link, not its destination URL directly.
- Grant analytics consent on the destination site.
- Reach the confirmation page in the same browser.
- Refresh Analytics. One new scan and one conversion should appear.
- Reload the confirmation page. The conversion total should not increase again.
Attribution rules
The confirmation page must be reached within seven days of the scan.
A newer eligible QR scan replaces the identifier stored by an earlier scan.
The same scan can create at most one conversion for the same goal.
Query parameters are ignored, but the pathname, including a trailing slash, must match.
Conversions are not backfilled. Reports begin when the goal is configured. Changing the goal path starts a new reporting period for that configuration.
Troubleshooting
| Status | Meaning | What to check |
|---|---|---|
| Not tested | No successful setup test has reached the configured confirmation path. | Run Test setup, allow storage and finish the test flow. |
| Pixel seen | The script is sending requests, but the confirmation path has not passed the test. | Check the exact path, including trailing slashes. |
| No conversion | A scan was recorded, but it could not be connected to the goal. | Check consent, the seven-day window and whether the click parameter survives redirects. |
| 403 Unknown site | The request origin does not match the QR destination origin. | Use the same scheme and hostname configured for the QR. |
| Script blocked | A CSP rule, browser extension or network policy stopped the pixel. | Allow Qrious in script-src and connect-src, then test again. |
Redirect checklist
If your destination uses redirects, verify that qrious_click is still present when the first page containing the Qrious script loads. Some redirect services remove unknown query parameters.
Single-page applications
The script detects navigation performed with pushState, replaceState and browser history events. Install it once in the application's root layout.
Privacy and plan limits
The anonymous click identifier is stored in first-party local storage only after consent and expires after seven days. Rejecting or withdrawing consent clears stored attribution. It does not erase a conversion that was already sent.
Free and Plus accounts can test conversion tracking on one QR for 30 days, with up to 100 reported conversions. Pro accounts receive full conversion tracking without the trial restriction.
Read the Qrious Privacy Policy for details. This documentation describes the product behavior and is not legal advice.
Configure your first conversion goal.
Choose a dynamic QR, enter the confirmation path and test the complete journey before publishing.