When analytics are on (see Your consent choice, next), Meshk reports two kinds of signal to Google Analytics 4 (GA4). The generic kind: a page_view each time you load or navigate to a page, scroll_depth at roughly 25/50/75/90% of the way down a page, scroll_to_end once when you reach the bottom, and cta_click for the buttons and links you interact with.
The rest is purpose-built for this app, and named for exactly what it records rather than anything generic:
instrument_page_view— which instrument page you visit, logged with the instrument and its musical tradition (Turkish, Persian, etc.) so we can see which instruments are most usedstring_grouping_toggle— grouping or ungrouping two adjacent courses on the neck, logged with the instrument and which course pair was changedtuning_change— which tuning you pickcustom_tuning_create— creating a custom tuning, logged with the tuning’s name and identifiercustom_tuning_edit— editing a custom tuning you’ve previously created, logged with the tuning’s name and identifiercustom_tuning_delete— deleting a custom tuning, logged with the tuning’s identifiermakam_change— which makam you pickneck_pluck— which pitch you tap on the neck, logged as its exact position in cents, not just a note namepattern_play— starting playback, tagged with where it came from: the active makam’s own seyir, a built-in pattern, or a pattern you createdsound_panel_change— adjusting sound design, reported once you release a slider or pick a preset, not on every point along the waypattern_search— what you type in the pattern browser search bar, along with how many results matchedpattern_filter— which filter you apply in the pattern browser (e.g. filtering by makam or category), logged as the filter dimension and selected valuepattern_group_by— how you choose to group patterns in the pattern browser (by makam, by category, or flat list)mode_change— when you switch between Auto and Strum interaction modes, logged with the selected mode namestrum_gesture— swiping across strings in the strum zone (a cross-course strum), logged with the number of strings strummed and the strum direction, or holding to mute a string, logged with which course was mutedgesture_type— classifying a neck touch gesture as a slide (glissando) or a pitch bend, logged with which type was detectedfullscreen_toggle— entering or exiting fullscreen practice mode, logged with which directionshortcuts_help_toggle— showing or hiding the keyboard shortcuts help overlay, logged with its new visibilitytoolbar_control— using a toolbar control (transport buttons, the sound-design and flip-strings toggles, the tuning/makam/pattern popovers, the fret adjustment guide, or opening the custom-tuning dialog), logged with which control was useduser_pattern_create— creating a new pattern in the pattern editor, logged with the pattern’s name and identifieruser_pattern_rename— renaming a pattern you created, logged with the pattern’s name and identifieruser_pattern_delete— deleting a pattern you created, logged with the pattern’s identifierpwa_install— progress through the “Install app” prompt — shown, accepted or dismissed in the browser’s own install dialog, or completed — logged with which stage was reachednav_click— using primary navigation (the desktop nav pills or the mobile tab bar), logged with which link and which navigation surface you usedinstrument_change— switching instruments from the instrument page’s picker, logged with the instrument you switched totheme_toggle— cycling the light/dark/system theme toggle, logged with the theme it switched to
That’s more granular than a typical marketing site’s analytics, because it answers a narrower question than “how many visitors”: which tunings, makams, and features people actually use, so development effort goes where it’s useful. It is not designed to, and does not, identify you personally.
All of this travels through Meshk’s own domain rather than straight to Google — see Google’s role, below.