{"id":23870071,"url":"https://github.com/yuyatinnefeld/google-tag-manager-controller","last_synced_at":"2025-10-11T22:37:36.987Z","repository":{"id":87113023,"uuid":"381667748","full_name":"yuyatinnefeld/google-tag-manager-controller","owner":"yuyatinnefeld","description":"🚀 Hands-On Project 🚀 | Google Tag Manager Controller \u0026 Viewer (Python)","archived":false,"fork":false,"pushed_at":"2021-06-30T10:47:08.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-11T07:06:01.899Z","etag":null,"topics":["api","google-tag-manager-python-api","gtm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuyatinnefeld.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-30T10:46:03.000Z","updated_at":"2023-10-20T12:48:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"285f59cb-def7-4dfe-87f8-d4857a5b72de","html_url":"https://github.com/yuyatinnefeld/google-tag-manager-controller","commit_stats":null,"previous_names":["yuyatinnefeld/google-tag-manager-controller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yuyatinnefeld/google-tag-manager-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuyatinnefeld%2Fgoogle-tag-manager-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuyatinnefeld%2Fgoogle-tag-manager-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuyatinnefeld%2Fgoogle-tag-manager-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuyatinnefeld%2Fgoogle-tag-manager-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuyatinnefeld","download_url":"https://codeload.github.com/yuyatinnefeld/google-tag-manager-controller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuyatinnefeld%2Fgoogle-tag-manager-controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009072,"owners_count":26084549,"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-10-11T02:00:06.511Z","response_time":55,"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":["api","google-tag-manager-python-api","gtm"],"created_at":"2025-01-03T13:52:10.799Z","updated_at":"2025-10-11T22:37:36.961Z","avatar_url":"https://github.com/yuyatinnefeld.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eGoogle Tag Manager Python API\u003c/h1\u003e \u003cbr\u003e\n\u003ch2\u003e🐍 Table of Contents 🐍\u003c/h2\u003e\n\n- [About](#about)\n- [Benefit](#benefit)\n- [Info](#info)\n- [Setup](#setup)\n- [Functions](#functions)\n\n\u003ch2\u003e⚡ About ⚡ \u003c/h2\u003e\nThe Google Tag Manager API provides access to Google Tag Manager configuration data for an authorized user. With this API you can manage: accounts, containers, worksapces, tags, triggers and variables\n\n## Benefit\nThe Google Tag Manager API handles millions of operations. To protect the system from receiving more operations than it can handle, and to ensure an equitable distribution of system resources, it is necessary to employ a quota system.\n\n## Info\nhttps://developers.google.com/tag-manager/api/v2/reference\nhttps://developers.google.com/tag-manager/api/v2/devguide\n\n## Software architecture\n\n![GitHub Logo](/images/gtm_controller.png)\n## Quota Limits\n- 50,000 requests per project per day, which can be increased.\n- 10 queries per second (QPS) per IP address\n- By default, it is set to 100 requests per 100 seconds per user \n- This can be adjusted to a maximum value of 1,000. \n\n## Setup\n### 0. activate venv\n```bash\npython -m venv venv\nsource ./venv/bin/activate (Mac) or venv\\Scripts\\activate (Windows)\n```\n\n### 1. install the packages\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. create the service account \u0026 OAuth client in GCP for the Google Tag Manager API\nhttps://console.cloud.google.com/\n\n### 3. download the client secrets.json (OAuth 2.0 Client ID)\n\n### 4. create conf repository and locate client_secrets.json into this repository\n\n```bash\nmkdir conf\nmv xxxxx-xxxxx.json client_secrets.json\n```\n\n### 5. create .env and put there private key and sensitive information\n\n```bash\ntouch .env\n```\n\n### 6. setup the .env\n- CLIENT_SECRETS='conf/client_secrets.json'\n- ACCOUNT_ID='xxxx'\n- CONTAINER_NAME='xxxx'\n- CONTAINER_ID='xxxx'\n- WORKSPACE_NAME='xxxx'\n- WORKSPACE_ID='xx'\n\n### 7. setup GTM account info\n\n```python\nCLIENT_SECRETS = config('CLIENT_SECRETS')\nACCOUNT_ID = config('ACCOUNT_ID')\nCONTAINER_NAME= config('CONTAINER_NAME')\nCONTAINER_ID = config('CONTAINER_ID')\nWORKSPACE_NAME = config('WORKSPACE_NAME')\nWORKSPACE_ID = config('WORKSPACE_ID')\n```\n\n### 8. RUN GTM Scanner to see the GTM information\nyou can scan the account, container, workspace, tag, trigger, variable information by using gtm_scanner.py\n\n```bash\npython project/run_scanner.py\n```\n\n### 8. RUN GTM Creator\nyou can create new workspaces, tags, triggers, variables and publish these by using gtm_creator.py\n\n\n```bash\npython project/run_creator.py\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuyatinnefeld%2Fgoogle-tag-manager-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuyatinnefeld%2Fgoogle-tag-manager-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuyatinnefeld%2Fgoogle-tag-manager-controller/lists"}