Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion analitica-y-privacidad/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
<button id="disable">Desactivar analítica en este navegador</button><p class="muted" id="status" aria-live="polite"></p>
<hr><h2>Analytics and privacy</h2><p>Harmonic Beacon uses first-party analytics hosted by AlterMundi to understand visits, campaigns, listening, event attendance and conversions. We record general pages/actions, referrer, UTM and advertising click identifiers present in the URL, approximate country/region, browser and device. After sign-in, opaque technical identifiers are linked to the account to prevent duplicate people and conversions.</p>
<p>We do not collect passwords, authentication tokens, secrets, signed URLs, payment numbers, form contents, audio, video or chat. Payment, membership and authoritative duration facts come only from their owning servers. Contact <a href="mailto:info@harmonicbeacon.com">info@harmonicbeacon.com</a> for applicable access, correction, export or deletion requests.</p>
<script>document.getElementById('disable').addEventListener('click',()=>{try{for(const k of ['hb_analytics_visitor','hb_analytics_first_touch','hb_analytics_last_touch'])localStorage.removeItem(k);sessionStorage.removeItem('hb_analytics_session');localStorage.setItem('hb_analytics_disabled','1');document.getElementById('status').textContent='Analítica desactivada para este navegador / Analytics disabled for this browser.'}catch{document.getElementById('status').textContent='No pudimos guardar la preferencia. Escribinos para recibir ayuda.'}})</script></main></body></html>
<script>document.getElementById('disable').addEventListener('click',()=>{try{for(const k of ['hb_analytics_visitor','hb_analytics_first_touch','hb_analytics_last_touch'])localStorage.removeItem(k);sessionStorage.removeItem('hb_analytics_session');localStorage.setItem('hb_analytics_disabled','1');document.cookie='hb_analytics_disabled=1; Max-Age=31536000; Path=/; Domain=.harmonicbeacon.com; Secure; SameSite=Lax';document.getElementById('status').textContent='Analítica desactivada en Home, Account, Listen y Live para este navegador / Analytics disabled across Harmonic Beacon for this browser.'}catch{document.getElementById('status').textContent='No pudimos guardar la preferencia. Escribinos para recibir ayuda.'}})</script></main></body></html>
13 changes: 13 additions & 0 deletions tests/analytics-privacy.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const assert = require('node:assert/strict');
const { readFileSync } = require('node:fs');
const test = require('node:test');

test('first-party analytics opt-out covers every Harmonic Beacon subdomain', () => {
const page = readFileSync('analitica-y-privacidad/index.html', 'utf8');
assert.match(page, /hb_analytics_disabled=1/);
assert.match(page, /Domain=\.harmonicbeacon\.com/);
assert.match(page, /Max-Age=31536000/);
assert.match(page, /Home, Account, Listen y Live/);
assert.doesNotMatch(page, /hb-meta-consent|fbq\(/);
});

Loading