{"id":17037433,"url":"https://github.com/robflaherty/marzipan","last_synced_at":"2025-08-28T02:43:15.940Z","repository":{"id":137550454,"uuid":"2125048","full_name":"robflaherty/marzipan","owner":"robflaherty","description":"User/pageview analytics","archived":false,"fork":false,"pushed_at":"2012-04-30T18:11:06.000Z","size":852,"stargazers_count":10,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T13:33:23.242Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/robflaherty.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}},"created_at":"2011-07-29T17:22:33.000Z","updated_at":"2019-07-14T14:23:19.000Z","dependencies_parsed_at":"2023-03-11T03:01:37.866Z","dependency_job_id":null,"html_url":"https://github.com/robflaherty/marzipan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robflaherty/marzipan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robflaherty%2Fmarzipan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robflaherty%2Fmarzipan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robflaherty%2Fmarzipan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robflaherty%2Fmarzipan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robflaherty","download_url":"https://codeload.github.com/robflaherty/marzipan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robflaherty%2Fmarzipan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272424368,"owners_count":24932893,"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","status":"online","status_checked_at":"2025-08-28T02:00:10.768Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-10-14T08:53:54.537Z","updated_at":"2025-08-28T02:43:15.914Z","avatar_url":"https://github.com/robflaherty.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Marzipan\nMarzipan is a client side tool for psuedo-de-anonymizing anonymous user pageview activity. It establishes an [RFC4122](http://www.ietf.org/rfc/rfc4122.txt)-compliant UUID for each visitor and pings the server with the URL and UUID on each pageview.\n\n## Usage\nUser activity tracking requires work on both the client and server. Currently Marzipan only provides a solution for the client side. This means that what happens on the server is up to you. You can write something with Node, PHP, Sinatra, etc that fields the data and dumps into a database. Or you can just serve up the beacon image and parse over server logs.\n\nA future version will include an optional server side component as well.\n\n### Client side config\nThe client side implementation has one required setting:\n\n* **data-marzipan-ping**: Ping URI\n\nOptionally you can specify an Id for the tracked site:\n* **data-marzipan-site**: Site identifier\n\nYou also have to specify the location of the Marzipan script. :)\n\n### Asynchronous implementation (Recommended)\n```html\n  \u003cscript\u003e\n    (function() {\n      var t = document.createElement('script'),\n        s = document.getElementsByTagName('script')[0];\n      t.async = true;\n      t.id = 'marzipan';\n      t.setAttribute('data-marzipan-site', '123');\n      t.setAttribute('data-marzipan-ping', '/ping.gif');\n      t.src = 'marzipan.js';\n      s.parentNode.insertBefore(t, s);\n    })();\n  \u003c/script\u003e\n```\n### Synchronous implementation\n```html\n  \u003cscript src=\"marzipan.js\" id=\"marzipan\" data-marzipan-site=\"123\" data-marzipan-ping=\"/ping.gif\"\u003e\u003c/script\u003e\n```\n\n## Running Tests\nI'm using Jasmine for tests. Coverage is not complete yet but if you want to run what's there make sure to run on a local server. (Reading/writing cookies doesn't work for local files.)\n\n## Contact\n* [Github page](https://github.com/robflaherty/marzipan)\n* Find me on Twitter at [@robflaherty](https://twitter.com/#!/robflaherty)\n\n## Changelog\n0.2 (4/27/12): Rewrite. Removed server side component. Removed CoffeeScript. Added Jasmine tests.\n\n0.1 (7/29/11): Initial release.\n\n## License\nLicensed under the MIT and GPL licenses.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobflaherty%2Fmarzipan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobflaherty%2Fmarzipan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobflaherty%2Fmarzipan/lists"}