{"id":312483,"date":"2026-05-22T07:44:30","date_gmt":"2026-05-22T07:44:30","guid":{"rendered":"https:\/\/en-za.wordpress.org\/plugins\/adbot\/"},"modified":"2026-05-22T07:44:02","modified_gmt":"2026-05-22T07:44:02","slug":"adbot-tracking-platform","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/adbot-tracking-platform\/","author":23487347,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Adbot Tracking Platform","header_author":"Adbot","header_description":"Connect your Google marketing stack (GTM, GA4, Ads, Merchant Center, Business Profile) in one click. Automatically injects your GTM container and audits your tracking setup.","assets_banners_color":"5c878f","last_updated":"2026-05-22 07:44:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/adbot.co.za","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"keegankelly","date":"2026-05-22 07:44:02"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3543354,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3543354,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3543361,"resolution":"772x250","location":"assets","locale":"","width":777,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Setup wizard.","2":"Connection status.","3":"Audit results."}},"plugin_section":[],"plugin_tags":[232,8533,456,4093,550],"plugin_category":[36,55],"plugin_contributors":[263940],"plugin_business_model":[],"class_list":["post-312483","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-audit","plugin_tags-marketing","plugin_tags-tag-manager","plugin_tags-tracking","plugin_category-analytics","plugin_category-seo-and-marketing","plugin_contributors-keegankelly","plugin_committers-keegankelly"],"banners":{"banner":"https:\/\/ps.w.org\/adbot-tracking-platform\/assets\/banner-772x250.png?rev=3543361","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/adbot-tracking-platform\/assets\/icon-128x128.png?rev=3543354","icon_2x":"https:\/\/ps.w.org\/adbot-tracking-platform\/assets\/icon-256x256.png?rev=3543354","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Adbot helps you connect and maintain your marketing measurement stack \u2014 Google Tag Manager, Google Analytics 4, Google Ads, and Google Search Console \u2014 from a single WordPress admin screen.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Guided onboarding wizard.<\/li>\n<li>Google OAuth connection to your Google marketing accounts.<\/li>\n<li>One-click Google Tag Manager container injection (head + body snippet) with an admin-exclusion toggle.<\/li>\n<li>Automated audit of your GTM container (tags, triggers, gaps, a tracking health score).<\/li>\n<li>Optional paid audit-apply feature via Paystack.<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin sends data to third-party services to provide its functionality. <strong>No external requests are made until you explicitly start the connection flow in the plugin UI.<\/strong> The plugin stores an opt-in flag (<code>adbot_consent_given<\/code>) and refuses to contact any external service until the flag is true.<\/p>\n\n<p>The plugin communicates <strong>only<\/strong> with the Adbot Tracking backend service (<code>https:\/\/adbot-tracking-platform.vercel.app<\/code>). The same API will later be served from <code>https:\/\/tracking.adbot.co.za<\/code> when DNS is migrated; until then the plugin uses the Vercel deployment URL. The Adbot backend then relays authorized requests to the following services on your behalf:<\/p>\n\n<ul>\n<li><strong>Adbot Tracking backend<\/strong> (<code>https:\/\/adbot-tracking-platform.vercel.app\/api\/wp<\/code>) \u2014 the proxy\/service your WordPress site talks to. Terms &amp; privacy: https:\/\/adbot.co.za<\/li>\n<li><strong>Google OAuth and Google APIs<\/strong> (called server-side by the Adbot backend) \u2014 authenticates and accesses the Google services you choose to connect (Tag Manager, Analytics, Ads, Search Console). Terms: https:\/\/policies.google.com\/terms \u00b7 Privacy: https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Supabase<\/strong> (called server-side by the Adbot backend) \u2014 stores the account linkage and encrypted OAuth tokens. Terms: https:\/\/supabase.com\/terms \u00b7 Privacy: https:\/\/supabase.com\/privacy<\/li>\n<li><strong>Paystack<\/strong> (called server-side by the Adbot backend) \u2014 processes payments if you enable the paid audit-apply feature. Terms: https:\/\/paystack.com\/za\/terms \u00b7 Privacy: https:\/\/paystack.com\/za\/terms?q=\/privacy<\/li>\n<\/ul>\n\n<p>Data sent from your WordPress site to the Adbot backend: site URL, site name, WordPress version, admin email (when the site first registers with the backend), and \u2014 per feature \u2014 the Google container you choose, the audit parameters you run, and the payment reference you verify. The WordPress site never sees, stores, or transmits your Google OAuth tokens directly; those live on the Adbot backend and are encrypted at rest.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Adbot brand and logo: \u00a9 Adbot. Used with permission for the official Adbot plugin.<\/li>\n<li>Google product logos (Tag Manager, Google Analytics, Google Ads, Google Search Console) are trademarks of Google LLC. Used for identification purposes in accordance with Google's brand guidelines.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>adbot<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to the <strong>Adbot<\/strong> menu in the WordPress admin.<\/li>\n<li>In the Adbot admin screen, open <strong>Settings<\/strong> in the sidebar to review the external-services disclosure. Enable the consent toggle there before connecting, or follow the onboarding wizard \/ Google connection flow (consent may be recorded when you start a connection).<\/li>\n<li>Complete onboarding to connect Google and install your GTM container when ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20make%20external%20requests%20on%20activation%3F\"><h3>Does this plugin make external requests on activation?<\/h3><\/dt>\n<dd><p>No. Activation only seeds local defaults and sets the consent flag to false. External requests occur only after consent has been granted (via the Settings toggle or when starting a flow that records consent, such as Google connection) and the plugin performs the corresponding action.<\/p><\/dd>\n<dt id=\"why%20does%20the%20plugin%20say%20the%20site%20is%20still%20registering%20or%20%E2%80%9Cnot%20finished%20registering%E2%80%9D%3F\"><h3>Why does the plugin say the site is still registering or \u201cnot finished registering\u201d?<\/h3><\/dt>\n<dd><p>Before Google OAuth, the plugin registers your site with the Adbot backend and stores a per-site token. The backend verifies ownership by requesting a public URL on your WordPress site (<code>\/wp-json\/adbot\/v1\/verify<\/code>). Your <strong>Settings \u2192 General \u2192 Site Address (URL)<\/strong> must therefore be reachable from the internet (for example a live HTTPS domain or an HTTPS tunnel). Installations that only use <code>http:\/\/localhost<\/code> as the site URL generally cannot finish registration because the backend cannot reach that address.<\/p><\/dd>\n<dt id=\"where%20are%20my%20oauth%20tokens%20stored%3F\"><h3>Where are my OAuth tokens stored?<\/h3><\/dt>\n<dd><p>Google OAuth access and refresh tokens are <strong>not<\/strong> stored in your WordPress database. They are held and encrypted <strong>on the Adbot backend<\/strong> (and associated storage). The plugin only keeps an encrypted <strong>site token<\/strong> (used to authenticate API calls to the backend). That site token is encrypted at rest in WordPress using AES-256-GCM with a key derived from your <code>wp-config.php<\/code> authentication salts (<code>AUTH_KEY<\/code>, <code>SECURE_AUTH_KEY<\/code>, <code>LOGGED_IN_KEY<\/code>, <code>NONCE_KEY<\/code>). No separate encryption key is required from you for OAuth tokens.<\/p><\/dd>\n<dt id=\"how%20do%20i%20revoke%20google%20access%3F\"><h3>How do I revoke Google access?<\/h3><\/dt>\n<dd><p>Click \"Disconnect\" on the Adbot Connect tab. This removes the stored account link on the Adbot backend and clears local references. You can also revoke access at https:\/\/myaccount.google.com\/permissions.<\/p><\/dd>\n<dt id=\"how%20do%20i%20cancel%20a%20paystack%20payment%20or%20get%20my%20data%20removed%3F\"><h3>How do I cancel a Paystack payment or get my data removed?<\/h3><\/dt>\n<dd><p>Contact support via https:\/\/adbot.co.za. Uninstalling the plugin also removes all local Adbot data from your WordPress site.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20configure%20anything%3F\"><h3>Do I need to configure anything?<\/h3><\/dt>\n<dd><p>No. The plugin works out of the box. There are no secrets, API keys, OAuth client IDs, or <code>.env<\/code> files to set up. All third-party credentials are held by the Adbot backend service; the plugin communicates with that service via a per-site token it mints automatically on first use.<\/p><\/dd>\n<dt id=\"optional%20developer%20overrides\"><h3>Optional developer overrides<\/h3><\/dt>\n<dd><p>Define either in <code>wp-config.php<\/code> (both optional):<\/p>\n\n<ul>\n<li><code>ADBOT_API_BASE<\/code> \u2014 point the plugin at a staging or alternate backend (defaults to <code>https:\/\/adbot-tracking-platform.vercel.app\/api\/wp<\/code>; omit trailing slash).<\/li>\n<li><code>ADBOT_DEBUG<\/code> \u2014 verbose error logging when <code>WP_DEBUG<\/code> is on.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Connect your Google marketing stack in one click. Inject a Google Tag Manager container and audit your tracking setup. Source code and build tools: ht &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/312483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=312483"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/keegankelly"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=312483"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=312483"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=312483"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=312483"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=312483"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=312483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}