{"id":21037387,"url":"https://github.com/viyadb/events-generator","last_synced_at":"2025-08-27T03:17:34.889Z","repository":{"id":24055932,"uuid":"100495768","full_name":"viyadb/events-generator","owner":"viyadb","description":"Framework for simulating mobile application user activity","archived":false,"fork":false,"pushed_at":"2024-05-03T20:04:34.000Z","size":284,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-30T13:07:37.960Z","etag":null,"topics":["dataset-generation","datasets","events","kafka","mobile-user","simulator","user-value"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/viyadb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-16T14:02:20.000Z","updated_at":"2022-06-22T02:58:38.000Z","dependencies_parsed_at":"2025-01-26T17:15:43.625Z","dependency_job_id":null,"html_url":"https://github.com/viyadb/events-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/viyadb/events-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viyadb%2Fevents-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viyadb%2Fevents-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viyadb%2Fevents-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viyadb%2Fevents-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viyadb","download_url":"https://codeload.github.com/viyadb/events-generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viyadb%2Fevents-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272284300,"owners_count":24906860,"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-27T02:00:09.397Z","response_time":76,"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":["dataset-generation","datasets","events","kafka","mobile-user","simulator","user-value"],"created_at":"2024-11-19T13:26:03.073Z","updated_at":"2025-08-27T03:17:34.804Z","avatar_url":"https://github.com/viyadb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"events-generator\n=================\n\n![Build Status](https://github.com/viyadb/events-generator/workflows/build/badge.svg)\n\nFramework for simulating mobile application user activity, and generating events from this activity.\nThe project covers the following phases:\n\n * Engagement with a mobile app advertisement (clicking or viewing)\n * Installing mobile application (as a result of the engagement or organically)\n * Opening application (generating a session)\n * Generating custom event in application\n * Uninstalling the application\n\nGenerated events can be used for testing purposes, when a big volume of real (or close to real)\ndata is required.\n\n## Flow\n\nThe framework tries to emulate real-world humans interacting with mobile applications, while\ntaking predefined parameters into consideration.\n\n### Participants\n\n * Ad network (through which an advertisement was published)\n * Ad campaign\n * Mobile application\n * Mobile user\n\nRelations between them are the following:\n\n\n    +--------------+            +---------------+\n    |              |    N:N     |               |\n    |  Ad Network  +------------+  Ad Campaign  |\n    |              |            |               |\n    +--------------+            +-------+-------+\n                                        |\n                                        |  N:1\n                                        v\n               +--------+           +---+---+\n               |        |   N:N     |       |\n               |  User  +-----------+  App  |\n               |        |           |       |\n               +--------+           +-------+\n\n\n### Parameters\n\nThere are multiple coefficients taken into account when generating events:\n\n * Click to install rate (conversion rate) per application, ad network\n * App popularity\n * User activity and retention rate per app\n\n### Output Fields\n\n| Field Name | Description |\n|------------|-------------|\n| app\\_id | Mobile application ID |\n| user\\_id | 32-bit integer user ID (unique on a single app level) |\n| event\\_time | Event time in milliseconds from epoch |\n| country | Two letter country code |\n| city | City name |\n| device\\_type | Mobile device type (iOS, Android, etc.) |\n| device\\_vendor | Mobile device vendor (HP, Asus, etc.) |\n| ad\\_network | Ad network, which has led to the app install |\n| campaign | Ad campaign, which has led to the app install |\n| site\\_id | Website that shown the original ad about the app |\n| event\\_type | Event type (install, click, inapp, etc.) |\n| event\\_name | In-app event name |\n| organic | Whether the install was organic or not (False or True) |\n| days\\_from\\_install | Number of days passed since install till event\\_time |\n| revenue | Optional in-app event revenue in USD |\n\n## Running\n\n### Using Docker image\n\nThere's Docker image that has all the needed environment, and runs the script for you.\nTo have it produce JSON events to standard output, run:\n\n```bash\ndocker run --log-driver=none --rm -ti viyadb/events-generator:latest\n```\n\nFor example, to have your Kafka populated with generated events run:\n\n```bash\ndocker run --log-driver=none --rm -ti viyadb/events-generator:latest | \\\n  kafka-console-producer.sh --broker-list \u003ckafka-broker\u003e:9092 --topic \u003ctopic name\u003e\n```\n\n#### Configuration\n\nTo configure events generator behavior when running in Docker use the following environment variables:\n\n| Environment Variable | Description  | Default value |\n| -------------------- | ------------ | ------------- |\n| EVENTS_NUMBER | Total number of generated events | -1 |\n| CLICK\\_THROUGH\\_RATE | Click-through rate | 0.005 |\n| CAMPAIGNS\\_NUM | Number of running campaigns at any time | 10000 |\n| START\\_DATE | Events start date in format YYYY-MM-DD | 2015-01-01 |\n| OUTPUT\\_FORMAT | Events output format. Supported formats: json, tsv | json |\n| OUTPUT\\_HEADER | Whether to print TSV header | False |\n| TIME\\_FORMAT | Output time format. Supported formats are: timestamp\\_millis, iso | timestamp\\_millis |\n\nFor example, to have events generator produce content in TSV format use:\n\n```bash\ndocker run --log-driver=none --rm -ti \\\n  -e OUTPUT_FORMAT=tsv viyadb/events-generator:latest\n```\n\n### Without Docker\n\n#### Prerequisites\n\nPlease make sure you have the following dependencies installed on your computer.\n\n * Python 3\n\nRun the following to prepare a runtime environment:\n\n```bash\npython3 -mvenv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\n#### Configuration\n\nTo list all available options, please run:\n\n```bash\n./generate.py --help\n```\n\n#### Generating events\n\n```bash\n./generate.py\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviyadb%2Fevents-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviyadb%2Fevents-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviyadb%2Fevents-generator/lists"}