Skip to content

Commit 94e2be5

Browse files
committed
implemented usage analytics for user interactions. The application now tracks:
Language Selection: When users toggle languages. Concept Selection: When users navigate via the Table of Contents. Theme Usage: Dark/Light mode toggles. Engagement: Code copying and GitHub button clicks. added analytics for link clicks on the About page. Outbound Clicks: Links to personal profiles (srix.net, GitHub, LinkedIn) are tracked as outbound_click. Internal Navigation: The "Back to Comparison" link is tracked as internal_click.
1 parent 990da5b commit 94e2be5

File tree

2,388 files changed

+24061
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,388 files changed

+24061
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ flowchart TD
112112
- 🔗 **Seamless Navigation**: All internal links navigate within the same tab for a smooth browsing experience.
113113
-**GitHub CTA**: Integrated "Star on GitHub" call-to-action.
114114
- 🔎 **Interactive**: DataTables-powered search and filtering.
115+
- 📈 **Usage Analytics**: Integrated Google Analytics for tracking page views.
115116

116117
## Contributing
117118

web-app/playwright-report/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

web-app/public/404.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44
<head>
55
<meta charset="UTF-8">
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
8+
<!-- Google tag (gtag.js) -->
9+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
10+
<script>
11+
window.dataLayer = window.dataLayer || [];
12+
function gtag() { dataLayer.push(arguments); }
13+
gtag('js', new Date());
14+
15+
gtag('config', 'G-V0E6QSYD2C');
16+
</script>
717
<title>404 - Page Not Found | Programming Language Comparison</title>
818
<style>
919
:root {

web-app/public/about.html

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>About - Programming Language Comparison</title>
1626
<meta name="description"
@@ -181,6 +191,37 @@ <h3>Connect with me</h3>
181191
</main>
182192

183193
<script src="theme.js"></script>
194+
<script>
195+
// Analytics for Links
196+
document.addEventListener('DOMContentLoaded', () => {
197+
// Track Personal Links
198+
const links = document.querySelectorAll('.link-list a');
199+
links.forEach(link => {
200+
link.addEventListener('click', () => {
201+
const url = link.getAttribute('href');
202+
if (typeof gtag === 'function') {
203+
gtag('event', 'outbound_click', {
204+
'event_category': 'engagement',
205+
'event_label': url
206+
});
207+
}
208+
});
209+
});
210+
211+
// Track Back Link
212+
const backLink = document.querySelector('.back-link');
213+
if (backLink) {
214+
backLink.addEventListener('click', () => {
215+
if (typeof gtag === 'function') {
216+
gtag('event', 'internal_click', {
217+
'event_category': 'navigation',
218+
'event_label': 'back_to_home'
219+
});
220+
}
221+
});
222+
}
223+
});
224+
</script>
184225
</body>
185226

186227
</html>

web-app/public/concepts-ssg/c/array-add.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Add in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Add in C++ - Prog Lang Compare">

web-app/public/concepts-ssg/c/array-concatenation.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Concatenation in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Concatenation in C++ - Prog Lang Compare">

web-app/public/concepts-ssg/c/array-count.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Count in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Count in C++ - Prog Lang Compare">

web-app/public/concepts-ssg/c/array-create-populated.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Create populated in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Create populated in C++ - Prog Lang Compare">

web-app/public/concepts-ssg/c/array-delete-element.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Delete element in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Delete element in C++ - Prog Lang Compare">

web-app/public/concepts-ssg/c/array-find-first.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
<meta charset="UTF-8">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313

14+
<!-- Google tag (gtag.js) -->
15+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V0E6QSYD2C"></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() { dataLayer.push(arguments); }
19+
gtag('js', new Date());
20+
21+
gtag('config', 'G-V0E6QSYD2C');
22+
</script>
23+
1424
<!-- Primary Meta Tags -->
1525
<title>Find first in C++ - Prog Lang Compare</title>
1626
<meta name="title" content="Find first in C++ - Prog Lang Compare">

0 commit comments

Comments
 (0)