{"id":338451,"date":"2026-07-28T17:00:49","date_gmt":"2026-07-28T17:00:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shahin-analytics\/"},"modified":"2026-07-31T21:03:41","modified_gmt":"2026-07-31T21:03:41","slug":"shahin-analytics","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/shahin-analytics\/","author":23530228,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Shahin Analytics","header_author":"Shahin","header_description":"Connects this WordPress site to the Shahin analytics dashboard \u2014 injects the tracking script and shows analytics inside wp-admin.","assets_banners_color":"f9744f","last_updated":"2026-07-31 21:03:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/shahin.live","rating":0,"author_block_rating":0,"active_installs":0,"downloads":88,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"asamteam","date":"2026-07-28 18:02:42"},"1.0.3":{"tag":"1.0.3","author":"asamteam","date":"2026-07-31 21:03:41"}},"upgrade_notice":{"1.0.3":"<p>&quot;Service Status&quot; is renamed to &quot;Services &amp; Usage&quot;; the page URL is unchanged.<\/p>","1.0.2":"<p>Escaping hardening in admin templates.<\/p>","1.0.1":"<p>Hardened tracking-snippet output and updated bundled ECharts to 6.1.0.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3626253,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3626253,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3626253,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3626253,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3626253,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3626253,"resolution":"1","location":"assets","locale":"","width":2400,"height":2038},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3626253,"resolution":"2","location":"assets","locale":"","width":2184,"height":2958},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3626253,"resolution":"3","location":"assets","locale":"","width":2184,"height":2803},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3626253,"resolution":"4","location":"assets","locale":"","width":2744,"height":2107},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3630487,"resolution":"5","location":"assets","locale":"","width":1836,"height":1496}},"screenshots":{"1":"Get Started \u2014 connect your site with your project tokens.","2":"Overview \u2014 pageviews, users, sessions, chart, top pages and referrers.","3":"Realtime \u2014 live activity over the last 5\u201330 minutes.","4":"Subscription \u2014 your current plan and available plans.","5":"Services &amp; Usage \u2014 Analytics and premium service availability."}},"plugin_section":[],"plugin_tags":[232,247,186,232216,1233],"plugin_category":[36,54,55],"plugin_contributors":[273625],"plugin_business_model":[],"class_list":["post-338451","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-performance","plugin_tags-seo","plugin_tags-user-behavior","plugin_tags-web-analytics","plugin_category-analytics","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-asamteam","plugin_committers-asamteam"],"banners":{"banner":"https:\/\/ps.w.org\/shahin-analytics\/assets\/banner-772x250.png?rev=3626253","banner_2x":"https:\/\/ps.w.org\/shahin-analytics\/assets\/banner-1544x500.png?rev=3626253","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/shahin-analytics\/assets\/icon.svg?rev=3626253","icon":"https:\/\/ps.w.org\/shahin-analytics\/assets\/icon.svg?rev=3626253","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shahin-analytics\/assets\/screenshot-1.png?rev=3626253","caption":"Get Started \u2014 connect your site with your project tokens."},{"src":"https:\/\/ps.w.org\/shahin-analytics\/assets\/screenshot-2.png?rev=3626253","caption":"Overview \u2014 pageviews, users, sessions, chart, top pages and referrers."},{"src":"https:\/\/ps.w.org\/shahin-analytics\/assets\/screenshot-3.png?rev=3626253","caption":"Realtime \u2014 live activity over the last 5\u201330 minutes."},{"src":"https:\/\/ps.w.org\/shahin-analytics\/assets\/screenshot-4.png?rev=3626253","caption":"Subscription \u2014 your current plan and available plans."},{"src":"https:\/\/ps.w.org\/shahin-analytics\/assets\/screenshot-5.png?rev=3630487","caption":"Services &amp; Usage \u2014 Analytics and premium service availability."}],"raw_content":"<!--section=description-->\n<p>For growing digital businesses tired of the clutter of their own data, Shahin is the watchtower and decision engine that turns analytics, SEO and behavior into one decision-ready clarity. With Shahin, your platform has no blind spots.<\/p>\n\n<p><strong>What you get inside this plugin<\/strong><\/p>\n\n<ul>\n<li><strong>Realtime<\/strong> \u2014 see who is on your site right now, where they came from, and which pages they view.<\/li>\n<li><strong>Overview<\/strong> \u2014 visits, visitors, traffic sources, top pages, engagement and retention, all in one place.<\/li>\n<li><strong>Subscription<\/strong> and <strong>Services &amp; Usage<\/strong> \u2014 your current plan, and which Shahin services are active for your site.<\/li>\n<\/ul>\n\n<p>The plugin injects the Shahin tracking script into the <code>&lt;head&gt;<\/code> of your public pages, and serves a domain-ownership verification file at <code>\/.well-known\/shahin-verification.txt<\/code>.<\/p>\n\n<p><strong>More insight, inside Shahin<\/strong><\/p>\n\n<p>An integrated suite of analytics services for monitoring performance, understanding user behavior, and making precise, data-driven decisions.<\/p>\n\n<ul>\n<li><strong>SEO<\/strong> \u2014 organic search performance from Google Search Console: Search and Discover reports, kept beyond Google's 18-month limit. See which stage of its lifecycle each piece of content is in, and which pages need your attention first.<\/li>\n<li><strong>Performance<\/strong> \u2014 real load speed and Core Web Vitals, monitored continuously.<\/li>\n<li><strong>Session Replay, Kiosk Mode, User Activity Pattern and User Journey<\/strong> \u2014 go deeper as you grow.<\/li>\n<\/ul>\n\n<p><strong>Why Shahin<\/strong><\/p>\n\n<p><strong>Real-time speed.<\/strong> We prioritize fast, immediate access to your data. Reports are processed and displayed the moment they happen, so you can monitor live and react to sudden shifts as they occur.<\/p>\n\n<p><strong>Resilient infrastructure, operational stability.<\/strong> A commitment to flawless performance at any traffic level means your data is reliable and available at every moment. That stability is the foundation of your trust in the analysis.<\/p>\n\n<p><strong>Less cognitive load, more strategic focus.<\/strong> We turn raw data into organized, actionable information \u2014 sharpening your decision-making with minimal wasted time, and pointing you straight at what matters.<\/p>\n\n<p><strong>Your data stays server-side<\/strong><\/p>\n\n<p>All analytics requests are made <strong>server-side by PHP<\/strong> using your credentials; your private token is stored in the database, masked in the UI, and is never sent to the browser or exposed in page source. The in-page dashboards talk only to WordPress (admin-ajax); WordPress talks to Shahin.<\/p>\n\n<p>Need help? <a href=\"https:\/\/my.shahin.live\/_cp\/en\/support\">Open a Shahin support ticket<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to the <strong>Shahin analytics service<\/strong> to provide its features. It contacts:<\/p>\n\n<ul>\n<li><strong>Shahin API \u2014 <code>https:\/\/my.shahin.live<\/code><\/strong> \u2014 server-to-server requests (from your WordPress server, authenticated with your project tokens) to retrieve analytics, subscription, and service-status data shown in wp-admin. Sent: your project tokens and the date ranges\/windows you view. <a href=\"https:\/\/shahin.live\/en\/terms-of-service\">Terms of Service<\/a> \u00b7 <a href=\"https:\/\/shahin.live\/en\/privacy-policy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Shahin script provider \u2014 <code>https:\/\/sp.shahin.live<\/code><\/strong> \u2014 the plugin fetches your tracking loader snippet (identified by your public token) and injects it on public pages. That script then measures visits and sends analytics to the Shahin service from visitors' browsers.<\/li>\n<\/ul>\n\n<p>The plugin also renders ordinary links you can click that lead to the Shahin websites: <code>https:\/\/shahin.live<\/code> (product\/marketing pages) and <code>https:\/\/my.shahin.live<\/code> (your Shahin dashboard, e.g. billing and project settings). Following those links is always a user action; the plugin never contacts them automatically.<\/p>\n\n<p>No data is sent until you connect your project by entering your tokens. No fonts, scripts, or styles are loaded from third-party CDNs \u2014 every asset ships inside the plugin.<\/p>\n\n<h3>Third-party libraries<\/h3>\n\n<p>All third-party assets are bundled locally under <code>assets\/admin\/vendor\/<\/code> \u2014 nothing is loaded from a CDN at runtime. Each is a byte-identical, unmodified distribution file of a public npm package, so the source is publicly auditable at the exact upstream path named below:<\/p>\n\n<ul>\n<li><strong>Apache ECharts 6.1.0<\/strong> (https:\/\/echarts.apache.org \u2014 Apache-2.0): <code>vendor\/echarts.min.js<\/code>, the unmodified <code>dist\/echarts.min.js<\/code> from the <code>echarts<\/code> npm package.<\/li>\n<li><strong>persian-datepicker 1.2.0 + persian-date 1.1.0<\/strong> (MIT): <code>vendor\/persian-datepicker\/<\/code>, the unmodified dist files from the <code>persian-datepicker<\/code> and <code>persian-date<\/code> npm packages \u2014 the dual Jalali\/Gregorian calendar for the custom date-range dialog.<\/li>\n<li><strong>Phosphor Icons<\/strong> (https:\/\/phosphoricons.com \u2014 MIT): <code>vendor\/phosphor\/<\/code>, individual regular-weight SVGs copied from the <code>@phosphor-icons\/core<\/code> npm package.<\/li>\n<li><strong>Roboto<\/strong> (SIL Open Font License 1.1): <code>vendor\/roboto\/<\/code>, latin woff2 subsets (400\/500\/700) from the <code>@fontsource\/roboto<\/code> npm package, served locally.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In your Shahin dashboard, open your project's settings and copy the <strong>public token<\/strong> (12 characters) and <strong>private token<\/strong> (32 characters). If you don't have a project yet, create one at <a href=\"https:\/\/shahin.live\">shahin.live<\/a>.<\/li>\n<li>In wp-admin, open <strong>Shahin WP \u2192 Get Started<\/strong> and paste both tokens, then connect.<\/li>\n<li>Once connected, the tracking script is injected automatically and the Overview \/ Realtime pages show your data.<\/li>\n<\/ol>\n\n<p>Requirements: WordPress 6.0+ and PHP 8.0+.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20my%20tokens%3F\"><h3>Where do I get my tokens?<\/h3><\/dt>\n<dd><p>From your project settings in the Shahin dashboard (the \"API Key\" section). The public token identifies your site; the private token is a secret used only server-side.<\/p><\/dd>\n<dt id=\"is%20my%20private%20token%20exposed%20to%20visitors%20or%20in%20the%20browser%3F\"><h3>Is my private token exposed to visitors or in the browser?<\/h3><\/dt>\n<dd><p>No. It is stored server-side, shown masked in wp-admin, and never printed to HTML or JavaScript. Only your site's public token appears in the injected tracking snippet, by design.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20an%20external%20service%3F\"><h3>Does this plugin send data to an external service?<\/h3><\/dt>\n<dd><p>Yes \u2014 see \"External services\" below. Connecting your site to a hosted analytics service is the plugin's purpose.<\/p><\/dd>\n<dt id=\"can%20i%20point%20the%20plugin%20at%20a%20self-hosted%20or%20staging%20shahin%20instance%3F\"><h3>Can I point the plugin at a self-hosted or staging Shahin instance?<\/h3><\/dt>\n<dd><p>Yes. Define <code>SHAHIN_WP_PLUGIN_API_BASE_URL<\/code> and <code>SHAHIN_WP_PLUGIN_SCRIPT_BASE_URL<\/code> in <code>wp-config.php<\/code>, or use the <code>shahin_wp_api_base_url<\/code> \/ <code>shahin_wp_script_base_url<\/code> filters.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20support%3F\"><h3>Where do I get support?<\/h3><\/dt>\n<dd><p>Use the support forum here on WordPress.org, or <a href=\"https:\/\/my.shahin.live\/_cp\/en\/support\">open a ticket in your Shahin dashboard<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>The \"Service Status\" page is now called <strong>Services &amp; Usage<\/strong> (menu, page title and the Get Started card). Its URL is unchanged, so existing bookmarks keep working.<\/li>\n<li>The Shahin service cards on Get Started now show an arrow in the corner, making it obvious they open the Shahin dashboard in a new tab.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Icon SVG output is now escaped with <code>wp_kses()<\/code> at the point of output in every admin template.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Tracking snippet is now printed through <code>wp_print_inline_script_tag()<\/code> with strict parsing (fails closed on any unexpected shape).<\/li>\n<li>Upgraded bundled Apache ECharts to 6.1.0.<\/li>\n<li>Translations now load on the <code>init<\/code> hook.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Connect via public\/private project tokens (server-side, private token never exposed to the browser).<\/li>\n<li>Overview and Realtime analytics pages with interval refresh.<\/li>\n<li>Subscription and Service Status pages.<\/li>\n<li>Tracking-script injection on public pages and <code>\/.well-known<\/code> domain verification.<\/li>\n<li>Persian (fa_IR) translation.<\/li>\n<\/ul>","raw_excerpt":"For growing digital businesses tired of messy data \u2014 Shahin turns analytics, SEO and behavior into decision-ready clarity.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338451"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/asamteam"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338451"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338451"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338451"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338451"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338451"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}