{"id":29170314,"url":"https://github.com/mendixlabs/analytics","last_synced_at":"2025-07-01T12:39:50.985Z","repository":{"id":185580940,"uuid":"455476231","full_name":"mendixlabs/analytics","owner":"mendixlabs","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-02T11:27:31.000Z","size":2820,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-13T17:55:34.251Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mendixlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-02-04T08:43:05.000Z","updated_at":"2023-04-05T14:39:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce9b81f3-c928-475b-94c7-7763ac2739a7","html_url":"https://github.com/mendixlabs/analytics","commit_stats":null,"previous_names":["mendixlabs/analytics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mendixlabs/analytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fanalytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fanalytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fanalytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fanalytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mendixlabs","download_url":"https://codeload.github.com/mendixlabs/analytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fanalytics/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262964072,"owners_count":23391949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-01T12:39:42.760Z","updated_at":"2025-07-01T12:39:50.864Z","avatar_url":"https://github.com/mendixlabs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mendix Analytics Widget\n\nFor Questions please go to `#ask-the-appfactory` on slack\n\n\u003cimg src='./assets/Mendix_Analytics_Widget.png' width=500 ba/\u003e\n\nMain Analytics widget is the only widget that communicate to Mendix.\n\nAll auxiliary widgets communicate over `pub-sub` to the Main Analytics widget.\n\n## Main Analytics\n\nThis widget is the main analytics widget - It does all the communication to mendix. Add this widget to a layout file that all app pages you want to track is based off of.\n\nIt currently does :\n\n- **User Data**: That contain data:\n\n```\n    didUserReload: boolean;\n    userAgent: string;\n    platform: string;\n    language: string;\n    startedDate: Date;\n    userIDMX: string;\n    isGuestMX: string;\n```\n\n- **Page Data**: That contain data:\n\n```\n    startDate: Date;\n    leaveDate: Date | undefined;\n    pathName: string;\n    uuid: string;\n    duration: number | undefined;\n    loadTime: number;\n```\n\n- **Event Data**: That contain data:\n\n```\n    groupId: string;\n    _id: string;\n    type: EClassNamePayloadType;\n    className: string;\n    friendlyName: string;\n    dateAdded: Date;\n    dateLastClicked: Date | null;\n    pageId: string | undefined;\n    clicked: number;\n```\n\n- **Event Listener**: Listens to Widget Analytics Class Widget for Events: Pubsub token: `CLASSNAME_MENDIX_LISTENER`\n- **Timer Listener**: Listens to Widget Analytics Form Widget for Events: Pubsub token: `TIMER_MENDIX_LISTENER` **(Removed)**\n\n## Event Analytics\n\nDispatches Events via PUB_SUB to Main analytics Widget\n\nEvent Widget can listen for events on Button Clicks defined by class names\n\n### Setup Event\n\n\u003cimg src='./assets/eventSetup.png' width=500/\u003e\n\n### Implementation Event\n\n\u003cimg src='./assets/eventImp.png' width=500/\u003e\n\n## Form Analytics\n\nAdds an event listner to form inputs, and will link them to a page, and will add data like when user went to what input and in what order.\n\n## Inspiration\n\nhttps://engineering.linkedin.com/blog/2017/02/measuring-and-optimizing-performance-of-single-page-applications\n\n## Details\n\n### Raw Capture\n\nWe Capture On a User Session :\n\n- Platform of User\n- Did user Reload ever\n- Language\n- Start Date\n- Is Guest\n- Pages Visited\n- Load time of Page\n- Start Time\n- Leave Time\n- Duration\n- Page Name\n- Events On Page (Separate Widget)\n- Listens for Clicks on Class Names.\n- Count Clicks\n- Time Of Click\n\n---\n\n### Rationalized Data\n\nAll this data could be Rationalized to View exact flow of one user through the app.\n\n**or**\n\nUsed to see what are the most viewed pages, most abandoned pages, most clicked buttons, how many users reload the app, how many guests, how many are english, dutch ect. average duration of user, when most users use app (time)\nAnd prob more.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendixlabs%2Fanalytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmendixlabs%2Fanalytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendixlabs%2Fanalytics/lists"}