{"id":39,"date":"2025-12-26T06:49:06","date_gmt":"2025-12-26T06:49:06","guid":{"rendered":"https:\/\/balamurali.in\/blog\/?p=39"},"modified":"2026-02-23T14:26:15","modified_gmt":"2026-02-23T14:26:15","slug":"my-chrome-extension-is-now-live-factors-sdk-debugger","status":"publish","type":"post","link":"https:\/\/balamurali.in\/blog\/tech-posts\/my-chrome-extension-is-now-live-factors-sdk-debugger\/","title":{"rendered":"My Chrome Extension is Now Live: Factors SDK Debugger"},"content":{"rendered":"\n<p>I&#8217;m excited to share that my Chrome extension, the <strong>Factors SDK Debugger<\/strong>, is now officially available on the Chrome Web Store!<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/chromewebstore.google.com\/detail\/factors-sdk-debugger\/pphfkhmilcnkeklegjnnlohndibmjbpl\">Install it here \u2192<\/a><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What I Built<\/h2>\n\n\n\n<p>The Factors SDK Debugger is a Chrome extension I created to debug and monitor Factors SDK implementations on any website. If you&#8217;ve ever struggled with questions like &#8220;Is the SDK loading?&#8221;, &#8220;Are my events firing?&#8221;, or &#8220;Why isn&#8217;t this form being tracked?&#8221; \u2014 this tool answers all of that instantly from your browser toolbar.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"276\" src=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-1024x276.png\" alt=\"\" class=\"wp-image-41\" srcset=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-1024x276.png 1024w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-300x81.png 300w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-768x207.png 768w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-1536x415.png 1536w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-2048x553.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why I Built This<\/h2>\n\n\n\n<p>Working with analytics SDKs, I found myself constantly digging through browser DevTools, checking network requests, and decoding payloads manually. It was tedious and time-consuming. So I decided to build a tool that gives instant visibility into everything the Factors SDK is doing \u2014 all in one clean interface.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Key Features<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Instant SDK Detection<\/h3>\n\n\n\n<p>The extension immediately tells you if the Factors SDK is installed on any website, showing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SDK version (v1 or v2)<\/li>\n\n\n\n<li>Implementation method (Manual, GTM, or both)<\/li>\n\n\n\n<li>Available SDK methods<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"180\" src=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-2.png\" alt=\"\" class=\"wp-image-43\" style=\"aspect-ratio:4.855842185128983;width:607px;height:auto\" srcset=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-2.png 874w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-2-300x62.png 300w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-2-768x158.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd0d Implementation Quality Checks<\/h3>\n\n\n\n<p>I added debug flags to help identify common implementation issues:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is the script in the <code>&lt;head><\/code> section? \u2713<\/li>\n\n\n\n<li>Does it load before other analytics scripts? \u2713<\/li>\n\n\n\n<li>Is the <code>.init()<\/code> call present? \u2713<\/li>\n\n\n\n<li>Async\/defer attribute detection<\/li>\n\n\n\n<li>GTM Container ID display<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"616\" src=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-3.png\" alt=\"\" class=\"wp-image-44\" style=\"aspect-ratio:1.379905131522208;width:602px;height:auto\" srcset=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-3.png 850w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-3-300x217.png 300w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-3-768x557.png 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udce1 Real-Time Network Monitoring<\/h3>\n\n\n\n<p>See every API call the SDK makes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Event tracking calls<\/li>\n\n\n\n<li>User identification<\/li>\n\n\n\n<li>Form fill events<\/li>\n\n\n\n<li>Error reports<\/li>\n<\/ul>\n\n\n\n<p>All payloads are <strong>automatically decoded<\/strong> (the SDK uses Caesar cipher encoding) \u2014 so you can inspect exactly what data is being sent without any manual work.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"612\" src=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-4.png\" alt=\"\" class=\"wp-image-45\" style=\"aspect-ratio:1.3921744568616254;width:606px;height:auto\" srcset=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-4.png 852w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-4-300x215.png 300w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-4-768x552.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcca Event Tracking Visibility<\/h3>\n\n\n\n<p>View all tracked events in one place:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Page views<\/li>\n\n\n\n<li>Custom events<\/li>\n\n\n\n<li>Form submissions<\/li>\n\n\n\n<li>Click events<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcdd Comprehensive Form Tracking<\/h3>\n\n\n\n<p>This was one of the trickiest parts to build. The extension provides deep form tracking visibility:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Status<\/th><th>What It Means<\/th><\/tr><\/thead><tbody><tr><td>\u2713 Form Tracked (Green)<\/td><td>Form is properly tracked by SDK<\/td><\/tr><tr><td>\u26a0 Partially Tracked (Yellow)<\/td><td>Some fields tracked, form needs attention<\/td><\/tr><tr><td>\u2717 Not Tracked (Red)<\/td><td>Form is not being captured<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>It even scans <strong>iframes<\/strong> for embedded forms (HubSpot, Marketo, etc.)!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"976\" src=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-5.png\" alt=\"\" class=\"wp-image-46\" style=\"aspect-ratio:0.8606633159071425;width:596px;height:auto\" srcset=\"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-5.png 840w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-5-258x300.png 258w, https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2025\/12\/image-5-768x892.png 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcbe Persistent Data<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data persists across page navigations<\/li>\n\n\n\n<li>Organized by domain and page URL<\/li>\n\n\n\n<li>Automatic cleanup after 24 hours<\/li>\n\n\n\n<li>Manual clear option available<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How to Install<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Visit the <a href=\"https:\/\/chromewebstore.google.com\/detail\/factors-sdk-debugger\/pphfkhmilcnkeklegjnnlohndibmjbpl\">Chrome Web Store listing<\/a><\/li>\n\n\n\n<li>Click <strong>&#8220;Add to Chrome&#8221;<\/strong><\/li>\n\n\n\n<li>The extension icon will appear in your toolbar<\/li>\n\n\n\n<li>Navigate to any website and click the icon to start debugging!<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Quick Status Indicators<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udfe2 <strong>Green dot<\/strong> \u2014 SDK detected and active<\/li>\n\n\n\n<li>\ud83d\udd34 <strong>Red dot<\/strong> \u2014 SDK not found on this page<\/li>\n\n\n\n<li><strong>Badge on icon<\/strong> \u2014 Quick visual confirmation when SDK is present<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Try It Out<\/h2>\n\n\n\n<p>If you work with Factors SDK, give it a try and let me know what you think! I&#8217;m always open to feedback and feature suggestions.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/chromewebstore.google.com\/detail\/factors-sdk-debugger\/pphfkhmilcnkeklegjnnlohndibmjbpl\">Install Factors SDK Debugger \u2192<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m excited to share that my Chrome extension, the Factors SDK Debugger, is now officially available on the Chrome Web Store! Install it here \u2192 What I Built The Factors&#8230;<\/p>\n","protected":false},"author":1,"featured_media":148,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[8,4],"tags":[],"class_list":["post-39","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-learn-with-me","category-tech-posts"],"jetpack_featured_media_url":"https:\/\/balamurali.in\/blog\/wp-content\/uploads\/2026\/02\/factors_sdk_debugger.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":2,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions\/49"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/balamurali.in\/blog\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}