还没有用过 Google Site Kit ？目前最新版为 v1.32.0 ，已通过 WordPress 5.7.2 兼容测试。
Google Site Kit
WordPress 版本：4.7 或更高版本
标签：adsense, analytics, google, pagespeed insights, Search Console，
1、方式一：进入网站后台（/wp-admin/），转到【插件】 =>【安装插件】并搜索 “Google Site Kit”。找到之后，单击 “安装” 即可。
2、方式二：从 WordPress.org 下载到 google-site-kit.zip 压缩文件包。然后转到【插件】 =>【安装插件】 =>上传压缩包进行安装。
3、安装完毕后，可通过 WordPress 网站后台的左侧【插件】菜单选择启用。
4、如果您有任何 Google Site Kit 问题，请到 Google Site Kit 支持论坛中发帖，获取帮助。
如果您是从网站后台全新安装的 Google Site Kit 且左侧翻译进度已是 100% ，那么可能目前已经有提供此插件的中文语言包，如果没有可通过手动安装的方式来更新翻译。
目前插件已上传至 WordPress.org 插件目录，您可以通过网站后台【插件】=【安装插件】=搜索【wpfanyi】找到，然后安装即可。
2、通过 WP 后台自动更新；
已翻译和校对过的 Google Site Kit 中文语言包我们会定期提交至 WordPress Translate ，您将可以在网站后台收到翻译更新提示，前提是已安装了 Google Site Kit 。
3、通过 FTP 手动上传；
在本站下载到 google-site-kit-zh_CN.zip 即最新版的 Google Site Kit 中文语言包，解压后可得到两个文件，
这是基于 WordPress 的系统语言路径，注意，要能正常使用，需要看下语言文件是否正确，文件名必须是 google-site-kit-zh_CN.mo 才行。
操作完毕后，到网站后台的 Google Site Kit 设置页面刷新即可看见变化。
1、下载的 .zip 语言文件无效？
① 从本页面下载的 google-site-kit-zh_CN.zip 内【文件没有前缀】的则为无效文件或尚未添加到翻译系统中；
② 上传后未生效或依旧为英语，若翻译完成度为【 30% 以下】则尚处于翻译准备阶段，仍需等待，其他问题请通过薇晓朵 Google Site Kit 论坛发帖联系处理。
2、.po 和 .mo 有什么区别？
- google-site-kit-zh_CN.po 是可编辑文件，如需查看可将文件拖放至浏览器中看到源代码。
- google-site-kit-zh_CN.mo 是已编译的 Google Site Kit 程序语言文件，可以被 WordPress 系统识别，也就是您网站语言显示所用的文件。
3、.po 和 .mo 都需要上传吗？
在 Google Site Kit 中真正生效的语言文件是 google-site-kit-zh_CN.mo，而 .po 为可编辑文件是否上传由您自行决定， WPfanyi.com 均有提供。
当然可以，要切换语言，只需要在 WordPress 后台 => 设置 => 常规 =>站点语言，进行选择即可。已上传的语言包不会影响所有系统语言，仅在您当前网站设置为【简体中文】时生效。
5、Google Site Kit 语言包会过时吗？
肯定会过时，每当 Google Site Kit 有版本更新都会需要进行新的翻译工作，所以请了解这是需要长期维护和进行的工作，如果 wpfanyi.com 对您有用，请协助推广我们！
由于近年来 WordPress 中文语系的翻译进程缓慢，同时包括 Google Site Kit 在内的一大批优秀的主题、插件都没有提供中文版本，这对中国区用户造成了很多不便。
WordPress 翻译（WPfanyi.com）就是为了解决这一基本需求而存在。我们的目的是以中国人最熟悉的方式组建一个 WordPress 本地化翻译团队。
本站的账号体系与 Weixiaoduo.com 互通，若已有账号请直接【登录】或【免费注册】。
1、【加入团队】若您有一定的英语基础，和充足的空闲时间，请发送邮件到 wpfanyi#feibisi.com (将#替换为@) 告知想要加入 Google Site Kit 中文翻译项目；
2、【分享翻译】若您已经对最新版的 Google Site Kit 做了翻译及校对，请通过 Google Site Kit 翻译系统导入语言包，以便志愿者和编辑进行审阅校正。
3、【成为管理】通过【加入我们】表单提交申请可成为 Google Site Kit 翻译系统的翻译编辑；
除了 WPfanyi.com 你还可以通过 WP.org 翻译系统（英文，国内访问较慢）对 —— Site Kit by Google – Analytics, Search Console, AdSense, Speed 进行 zh_CN 中文翻译；
1、先在 wpfanyi.com 上完成翻译和校对工作，然后导出语言包；
2、导入至 translate.wordpress.org 系统做审批；
3、审批通过自动释放语言包，对所有 Google Site Kit 中文用户分发；
我们希望可以通过这几年的努力，让 WordPress 中文生态可以变得更加繁荣。
在使用 Google Site Kit 的过程中如果遇到问题需要帮助，请到薇晓朵 Google Site Kit 中文支持论坛发帖获取帮助，会有专业技术人员回复。
做为国内领先的 WordPress 综合服务平台，薇晓朵构建了一系列的基础设施以便为中国的 Google Site Kit 用户提供服务，在提供免费支持的同时也有更多商业服务可选。
薇晓朵官方提供了一个全局搜索功能，涵盖了超过 100 多个 WordPress 中文资源及教学站点，您可以执行 Google Site Kit 全局搜索获得更多信息；
本站由薇晓朵云平台接入维护，提供长期稳定的 WordPress 技术支持。
如果您想要将自己公司信息或者商业广告显示在此页，请考虑捐赠和赞助 WPfanyi.com ，以便让我们可以有更充足的资源和资金来做这些免费但有意义的事情。
以下为 2019 年度赞助商，欢迎访问相关站点获取更多信息。
1、Google Site Kit 中文翻译是免费的吗？
完全免费，从现在到以后都是，只要这款源程序存在于 WordPress.org 上，那么 WPfanyi.com 提供的 Google Site Kit 中文语言包都是免费的。
2、为什么要赞助 WordPress 中文翻译？
Google Site Kit 是开源软件，您的公司、团队可以无限制的应用在商业项目上，既可以帮您盈利现在还能有更好的中文体验，这是互利共生的良性关系。
为了让 WPfanyi.com 能够长期健康的发展，我们接受商业赞助和关联性广告投放，广告内容应与 WordPress 或网站、互联网相关，积极健康符合《中华人民共和国广告法》相关标准。
产品更新日志一般会包括 Google Site Kit 安全更新和问题修复，如果不清楚您目前所用的版本包含哪些新功能和 bug 修复，可在此处查询。
- Update Analytics property select options to display property IDs in addition to names. See #3164.
- Allow administrators to paste Google Ads conversion ID in Analytics settings so that it is integrated into the Site Kit-placed Analytics snippet. See #3161.
- Scaffold new
modules/idea-hubdata store in JS. See #3152.
- Scaffold new
Idea_HubPHP class. See #3150.
- Add a selector to the
core/sitedatastore for checking whether or not a given URL matches the site’s reference URL. See #3105.
- Implement a data store selector for selecting GA4 web data streams for multiple property IDs at once. See #3104.
- Add data store selector and matching REST datapoint to the GA4 module to retrieve account summaries. See #3103.
- Update AdSense summary dashboard widget to show change values for each metric relative to the previous period. See #3091.
- Update the background color of open menu buttons in the Site Kit header. See #3069.
- Allow programmatic modification of the Site Kit generator meta tag. See #938.
- Clarify some AdSense labels and format the monetary values in top earning pages tables with the relevant currency. See #656.
- Update popular pages list tables on the Analytics module dashboard to be consistent with the same components on the main Site Kit and WordPress dashboards. See #98.
- Fix regression where jump link to PageSpeed Insights widget in success notification no longer worked. See #3310.
- Update AdSense “Performance by page over the last X days” deep links to include date range. See #2951.
- Fix a bug that could cause the first profile to be selected in Analytics Settings when an existing tag was detected. See #2888.
- Fix User Input Settings flow accessibility issues. See #2851.
- Resolved analytics URL linking issue in subfolder based installs. See #2821.
- Redirect users from the splash screen to the dashboard if they are already authenticated. See #2529.
- Resolved language issue on AdSense dashboard for certain Site Languages. See #2105.
- Add method to get list of all base capabilities used by Site Kit. Props JoryHogeveen. See #3130.
- Update widget header styles to use grid mechanics instead of static margins. See #3119.
- Implement the technical infrastructure for rendering GA4 snippets in the frontend, including support for double tagging integrating with a UA snippet. See #3106.
- Implement REST data point and JS data store selector to look up a single GA4 property by ID. See #3102.
- Rename “Popularity” / “Top Queries” section to “Acquisition” for new widget-based UI. See #3065.
- Improve styling for Site Kit header, especially on mobile devices. See #3058.
- Update remaining external links in widgets on module pages to include correct date range parameters. See #3042.
- Improve speed and reliability of Analytics property matching. See #3012.
- Add placeholder to all “Other” text input fields in user input flow. See #2993.
- Implement data store selector to detect whether a GA4 property has a web data stream that matches the current site. See #2981.
- Update the
modules/analytics-4store with actions and selectors for creating and querying web data streams. See #2980.
- Implement JS data store infrastructure to query and create GA4 properties. See #2979.
- Introduce new JS asset for upcoming GA4 integration. See #2977.
- Introduce JS data store
modules/analytics-4as infrastructure for upcoming GA4 integration. See #2976.
- Allow modifying the active Search Console property in the module’s settings panel, relevant for example when a site has multiple applicable properties. See #2937.
- Fix accessibility problem where it wasn’t possible to delete user input search terms using the keyboard. See #2900.
- Update user input styles to fix visual issues on small devices. See #2886.
- Migrate AdSense module page “Top earning pages” widget to use Widget API. See #2066.
- Update Unique Visitors widget to display the actual number of users coming from search. See #3064.
- Fix visual spacing problems with widget-based dashboard due to empty containers disrupting grid layout. See #3062.
- Update Site Kit widgets to always return their content wrapped in a
Widget. See #3060.
- Update AdSense dashboard widgets to render ad blocker warning. See #3011.
- Fix broken alignment of data block elements when there is one with zero data. See #2992.
- Fix UI issues on the pie chart of the All Traffic widget when there is just a single slice. See #2991.
- Fix Analytics links in new widgets on the Analytics module page to take into account selected days. See #2983.
- Fix a bug where select menu components could be partially covered by the Site Kit header making some items unclickable. See #2885.
- Improve performance of potentially slow database query to migrate user data from an older version of Site Kit. See #2870.
- Fix issue with AdSense existing site detection when using camelcase URLs in WordPress settings. See #2695.
- Add tracking events for help visibility menu links. See #3027.
analytics-4module PHP class. See #2974.
- Clarify wording of warning message when disabling the AdSense snippet. See #2962.
- Introduce hidden labels for search term fields of the User Input Settings flow. See #2901.
- Fix low-contrast color for keyword bubbles in the user input flow. See #2896.
- Ensure that the user is not sent to the user input flow when granting additional scopes after being already authenticated, even if submitting the user input response is still required. See #2874.
- Update assets across the plugin with new side kick-based branding illustrations. See #2616.
- Include button to reset Site Kit under “Available Tools” in WordPress, as a way to reset the plugin data e.g. when currently not being connected. See #2384.
- Update modules settings to use separate components for active and inactive modules. See #2184.
- Improve the pre-setup compatibility checks to properly warn if the REST API is disabled instead of failing with an unexpected error. See #2101.
- Migrate Analytics module page Top Acquisition Channels widget to use Widget API. See #2069.
- Migrate Analytics module page popular pages widget to use Widget API. See #2068.
- Migrate Analytics module page overview widget to use Widget API. See #2067.
- Migrate AdSense module page overview widget to use Widget API. See #2065.
- Migrate Search Console module page popular keywords widget to use Widget API. See #2064.
- Migrate Search Console module page overview widget to use Widget API. See #2063.
- Fix critical JS error due to a new version of the Google charts library being released, by locking to a specific version. See #3132.
- Fix regression where modules may be sorted incorrectly on the plugin’s settings screen. See #3093.
- Fix bug with help visibility icon in header where clicking it wouldn’t trigger the menu to open in some scenarios, and also address some visual design problems with it. See #3026.
- Fix Ad Blocker detection issue which occurred on sites with GoDaddy CDN enabled. See #3018.
- Ensure changing the site URL between HTTP and HTTPS or
www.does not impact the results displayed in Analytics and AdSense widgets. See #3005.
- Fix bug where Analytics snippet could still be placed when an existing snippet was already present in the frontend. See #2909.
- Ensure that the AdSense snippet is not included on 404 pages in the frontend. See #2784.
- Only show notice about a user input question affecting other users of the site if there is more than one authorized user on the site overall. See #2852.
- Introduce new contextual help menu in Site Kit header bar and on the authentication service. See #2846.
- Introduce tooltip tour guiding the user through the new version of the All Traffic widget. See #2739.
PreviewBlockJS component to support breakpoint-specific sizes via props. See #2727.
- Implement persistent dismissal of feature tours, stored in the database. See #2650.
ReportTablecomponent for displaying reusable data tables. See #2249.
- Fix vertical axis labels for Session Duration graph on Search Console module page to not mix minutes and hours. See #2967.
- Fix problem where OAuth callback login would be triggered before WordPress’s login redirect mechanism, immediately failing instead of redirecting as expected. See #2935.
- Ensure entering a text is required when choosing the “Other” option for a question in the user input flow. See #2907.
- Fix refactored Analytics goals widget behavior to match legacy version. See #2858.
- Fix bug where switching between questions in the user input flow did not scroll the question into view. See #2848.
- Cache user input responses temporarily in browser until it is submitted while the user is going through the flow, to prevent accidentally losing entered data. See #2844.
- Clarify wording in last user input question about search terms. See #2843.
- Fix some bugs in the behavior when checking or unchecking an “Other” option for one of the questions in the user input flow. See #2828.
- Implement React components for rendering tooltip tours. See #2626.
- Automatically focus the “Other” text input upon selecting the “Other” option in a list of radio buttons or checkboxes. See #2897.
- Update copy to clarify multiple choice behavior in user input flow. See #2857.
- Update links on new version of AdSense dashboard summary widget to deep link to the respective area in the AdSense frontend. See #2774.
- Include site URL in AdSense report deep links to point to the appropriate report. See #2773.
- Add support for PHP 8 and ensure its maintenance via CI. Props TorbenLundsgaard. See #2724.
googlesitekit_reauthorize_useractions are now also fired when not using the authentication service flow. See #2693.
- Implement infrastructure for rendering widgets in Site Kit module screens. See #2653.
- Use reliable and React-friendly approach for detecting whether a widget is inactive and should not be rendered. See #2612.
- Enhance localization of duration formatting. See #2588.
- Filter all Analytics API requests to only include results for the current domain. See #2554.
- Rely exclusively on SVGs for graphics and remove other image support. See #2468.
- Improve UX around entering search terms in the user input flow. See #2842.
- Fix various visual glitches in the user input flow summary view and trim free text content entered for any “Other” choice. See #2837.
- Change to preview / next button behaviour in User Input flow. See #2829.
- Fix AdSense bug where
Ad Client not founderror would be displayed in certain cases where an account is still pending. See #2812.
- Fix bug where AdGuard and uBlock ad blockers were no longer being recognized by Site Kit by implementing a more holistic solution for ad blocker detection relying on the
just-detect-adblocklibrary. See #2794.
- Update link on AdSense module page to point to Analytics which is more accurate due to the source of the data. See #2772.
- Fix Search Console x-axis labels on 90 day charts. See #2747.
- Fix text issue with All Traffic pie chart. See #2660.
- Fix problem where Analytics snippet placement would not be re-instated after disconnecting Tag Manager module when it was previously taking care of the Analytics tag. See #2579.
- Fix bug where tracking opt-in was not working for multisite administrators when not being a member of the site. See #2103.
- Add support for AdSense auto ads to Web Stories, allowing to choose an AdSense ad unit to use which will then result in an
amp-story-auto-adselement being injected. See #2602.
- Improve wording for the confirmation notification after submitting user input settings. See #2790.
- Allow resetting persistent Site Kit options via WP-CLI. See #2748.
- Display All Traffic widget dimension tabs as a dropdown on narrow viewports. See #2743.
- Include current dates in AdSense deep links so that the service frontend shows the same time period as Site Kit. See #2689.
- Update Google API client library and remove custom configuration to retry failed API requests as it is now covered in the library itself. See #2688.
WidgetReportErrorcomponent, which should be used by widgets to display an overall error state. See #2670.
- Implement REST datapoints and JS datastore infrastructure for getting and dismissing tooltip tours. See #2648.
- Prepare Widget API-based version of the dashboard for launch, rendering the entire page content including header and footer. See #2646.
- Add ability to remotely control enabled feature flags. See #2533.
core/uidatastore for centrally storing UI state in JS. See #2456.
- Include current dates in Analytics deep links so that the service frontend shows the same time period as Site Kit. See #2287.
- Remove legacy version of the WP Dashboard widget and replace it with Site Kit widget-based refactored version. See #2240.
- Fix bug where the old All Traffic widget was still displaying in the dashboard for a single URL. See #2856.
- Fix PHP 8 notice for deprecated
uasort()usage. Props oguilleux. See #2797.
- Reset link hidden while compatibility checks are in progress. See #2756.
- Show All Traffic pie chart tooltips persistently when a slice is selected to allow interaction with the tooltip, which would not be possible when hovering. See #2737.
- Fix AdSense dashboard summary widget to include data for the current date range in its sparklines rather than only data from the 1st of the current month. See #2734.
- Fix visual bug where in the AdSense flow the toggle element could be overlapped by a checkmark icon. See #2722.
- Fix bug with Search Console module page graph where overlapping legends would be displayed when selecting more than 2 metrics. See #2721.
- Fix various bugs around the All Traffic pie chart (e.g. incorrect slices being selected when changing date range, correct behavior of not allowing “Others” to be selected) by introducing a new React-based charts component. See #2714.
- Fix bug where in some occasions an error would be displayed when updating settings with the same values that were already stored before. See #2513.
- Fix formatting of y-axis values for Bounce Rate and Session Duration on Analytics overview chart. See #2095.
- Ensure that any “Others” slice in the All Traffic widget is not indicated as selectable and cannot be active. See #2716.
- When viewing a specific segment of users in the All Traffic widget, make the “All Users” breadcrumb a link to go back to the overall users view. See #2715.
- Enhance All Traffic widget pie chart legend by using a custom implementation so that the labels are never cut off and include a visual hover and active state. See #2700.
- Show more than just two dates on the All Traffic widget’s line chart. See #2699.
- Include available and enabled Site Kit features in Site Health information. See #2662.
- Rename the
footerprops of the
Footerto indicate that they require a React component instead of an element. See #2652.
- Simplify usage of the
Widgetcomponent so that widget components can use a scoped version of it via props rather than manually importing it and re-specifying the widget slug. See #2613.
- Migrate top content table in WP dashboard widget to functional hook-based component using the datastore. See #2610.
- Decouple JS store, widget, and module registration from imports, introducing dedicated registration functions. See #2587.
- Remove server-side API requests to determine whether a post has Search Console or Analytics data as it could significantly slow down WP admin response time. Props archon810. See #2528.
- Always display the Site Kit admin bar menu even when there is no data for a more consistent experience, informing about the lack of data as applicable. See #2508.
- Improve UX when clicking the Reset dialog button, keeping the dialog open in a loading state while completing the process. See #2347.
- Include current dates in Search Console deep links so that the service frontend shows the same time period as Site Kit. See #2286.
- Enhance admin bar implementation to be powered by the
googlesitekit.dataregistry and its stores. See #2241.
- Ensure x-axis labels of the All Traffic line chart are correctly aligned with the pie chart legend. See #2738.
- Avoid layout shift when enabling the Analytics module via the Site Kit dashboard CTA. See #2719.
- Avoid content shifts in All Traffic widget due to incorrect loading UI layout. See #2710.
- Only require going through the user input flow after setup if it has not been completed by the user before. See #2603.
- Launch new All Traffic widget in the Site Kit dashboard, which surfaces more detailed information about channels, includes a time-based graph, and surfaces similar metrics for countries and devices the site is accessed from. See #2429.
- Modify pie chart tooltip behavior for new All Traffic widget so that tooltips are only shown when hovering over a pie slice. See #2701.
- Store initial Site Kit version per user for more targeted messaging in the future and introduce
googlesitekit_reauthorize_useraction. See #2692.
- Improve user experience of new All Traffic widget for when it is loading and for when there is no relevant data available. See #2675.
- Fix layout of new All Traffic widget on mobile viewports to use a single column. See #2663.
- Add contextual documentation links to new All Traffic widget to explain special dimension values “(not set)” and “(other)”. See #2642.
- Modify new All Traffic widget so that the line chart always uses the same color indicated by the currently selected pie slice. See #2625.
- Modify font styles in the new All Traffic widget to match font styles used in Search Funnel widget and elsewhere throughout the plugin. See #2623.
- Rely on new Search Console “fresh data” feature to display metrics as recent as 1 day ago, improving on the previous offset of 2 days. See #2522.
- Remove various old REST datapoints in AdSense, Analytics, and Search Console modules that were only present to access specific settings and unused. See #2507.
core/locationJS store, rely on it for redirects, and fix notification about unsatisfied scopes unnecessarily appearing before an OAuth redirect. See #2497.
- Get rid of remaining usage of legacy
dateRangeargument in AdSense widgets. See #2477.
- Improve JS API caching layer to cache certain error responses if they include a
cacheTTLextra data property, allowing to avoid excessive Analytics API requests when the AdSense account is not linked. See #2457.
- Introduce infrastructure for dynamically controlled feature flags via a
googlesitekit_is_feature_enabledfilter. See #2452.
- Implement logic to automatically combine UI for widgets that are in special states, e.g. widgets without sufficient API response data, or widgets that require a specific module to be set up first. See #2252.
- Add widget contexts and register widget areas for Site Kit module pages. See #2062.
- Fix All Traffic widget UI bug where pie chart tooltips would flicker when hovering over them. See #2709.
- Ensure line chart in All Traffic is correctly aligned with the overall count and the pie chart at the bottom. See #2708.
- Fix performance lag across Site Kit screens due to a problem in the
getModulesselector of the
core/modulesstore. See #2691.
- Fix bug where Tag Manager and Analytics snippet could be inserted twice on AMP pages. See #2668.
- Fix bug with All Traffic widget where selected pie slice would no longer remain selected when changing the current date range. See #2644.
- Fix graph in All Traffic widget to not cut off axis labels on viewports smaller than desktop. See #2624.
UserDimensionsPieChartcomponent for new Analytics All Traffic widget. See #2425.
- Implement main tabs UI for the new All Traffic widget. See #2424.
TotalUserCountcomponent for new Analytics All Traffic widget. See #2423.
UserCountGraphcomponent for new Analytics All Traffic widget. See #2422.
- Add review and support links in the plugin’s list table entry. See #2516.
Iconand require it to be a
WPComponent(e.g. an SVG). See #2505.
- Improve UX for modifying user input settings, removing the requirement to click through subsequent questions when only wanting to change a specific response. See #2499.
- Implement dynamic source link in the new All Traffic widget. See #2428.
- Add interactivity to new All Traffic widget so that selecting a pie chart slice contextually updates the count and graph displayed. See #2426.
- Add support for a
dimensionFiltersargument to the Analytics
GET:reportREST datapoint in PHP and the
getReportselector in JS. See #2421.
whenActivehigher-order component to accept a
FallbackComponentas well as an
IncompleteComponentprop. See #2381.
- Remove legacy publisher win notifications. See #2285.
registerModuleaction of the
core/modulesstore to specify the name of the JS datastore for the module. See #2271.
- Move date awareness for Search Console API requests to the client, allowing for more contextual date information to be available. See #2237.
- Move date awareness for Analytics API requests to the client, allowing for more contextual date information to be available. See #2236.
core/sitestore in JS. See #2221.
- Add support for an optional
SettingsSetupIncompleteComponentargument to the
registerModuleaction of the
core/modulesstore, allowing developers to register a custom UI component for when the module is not fully connected. See #2080.
- Update the plugin’s admin bar menu to rely on functional hook-based components using the datastore. See #2076.
- Update the plugin’s WordPress dashboard widget to rely on functional hook-based components using the datastore. See #2075.
core/user/data/user-input-settingsREST endpoint to use remote authentication service API endpoint. See #2048.
- Implement user input block to edit responses under
Site Kit > Settings > Admin Settings. See #2041.
- Introduce reusable infrastructure for rendering tags, relying on new
Guard_Interfaceinterfaces as well as
Module_Tagclasses, now being used across all modules. See #475.
- Fix AdSense overview graph UI so that the available space for the total numbers expands as necessary. See #2555.
- Prevent a remote notifications API request for development sites where the plugin is not using the authentication service. See #2495.
- Update all Analytics deep links to use the
getServiceReportURLselector for correct encoding of parameters and consistent behavior. See #2405.
- Fix bug in legacy API layer dealing with errors in a batch response that could result in infinite loading states on module pages. See #2403.
- Improve Analytics property matching logic so that users with many Analytics accounts do not run into user quota errors. See #2218.
numFmtfunction for centralized Site Kit-specific number formatting, localize percentage formatting, and fix various number formatting inconsistencies. See #2200.
- Scaffold components for a new version of the Analytics All Traffic widget. See #2392.
- Display graph with historic AdSense data on module page, showing earnings, RPM, impressions and CTR over time. See #1921.
listFormatfunction to format entries in a comma-separated list. See #2486.
- Rename arguments across various datastore actions requiring a
WPComponenttype to use capitalized names to better indicate a
WPComponent(and not a
WPElement) is required. See #2413.
- Improve validation of user input submission states. See #2323.
CompleteModuleActivationCTAcomponents to centrally manage UI for those scenarios. See #2299.
- Remove legacy
googlesitekit.moduleHasSetupWizardJS filter. See #2291.
- Remove legacy splash screen and the associated components. See #2290.
- Allow registering module icon SVGs via the
registerModule. See #2143.
- Fix various low-level technical bugs due to duplicate module initialization by relying on a single reused Webpack runtime across entrypoints. See #2444.
- Remove duplicate error message UI on top of module settings panel, since error messages are now displayed within the panel’s main content already. See #2396.
- Fix component-specific initialization logic of Google charts library to prevent duplicate initialization. See #2247.
- Surface WordPress-specific user experience recommendations in the PageSpeed Insights widget. See #2390.
- Add support for
core/modulesstore, which allows to block a module from being activated until certain requirements are met. See #2130.
- Ensure that all URIs on the authentication service are automatically refreshed as necessary when connecting as a user to an already connected site, fixing issues where sites could get stuck after updating their URLs. See #2383.
- Move the date picker into the Site Kit header bar and make it sticky so that it is always visible when scrolling. See #2331.
- Remove outdated dashboard notification warning vaguely about missing permissions, which is now covered with more specific widget CTAs. See #2329.
- Add support for feature flags in PHP and experimentally require user input completion upon setup. See #2316.
- Implement success notification displayed after completing the user input flow. See #2283.
- Add support for displaying datastore-driven global error notifications in the plugin header. See #2261.
- Improve logic to determine whether a Search Console API report response is “empty”, via new
isZeroReportfunction for Search Console. See #2244.
- Improve logic to determine whether an Analytics API report response is “empty”, via new
isZeroReportfunction for Analytics. See #2243.
core/modulesactions and selectors for managing module settings panel state. See #2181.
- Implement Site Kit dashboard notification for when requesting user input to be completed. See #2043.
- Implement exponential backoff to retry Google service API requests a limited amount of time if they fail with temporary errors. See #1998.
- Fix Search Console latest data threshold back to 2 days ago as that is the latest data the API provides. See #2458.
- Make e2e tests pass for WordPress 5.6. See #2455.
- Fix race condition where widgets could run into an error when their necessary datastore selector had not started resolving yet. See #2436.
- Fix various spelling errors throughout the UI of the plugin. See #2401.
- Flush browser session storage on plugin updates to prevent stale data from being served against new logic. See #2334.
- Ensure that REST API preloaded data is not computed and included outside of Site Kit admin screens. See #2315.
- Fix failing PHPUnit tests for compatibility with upcoming WordPress 5.6. See #2264.
- Fix broken Analytics frontend deep links on AdSense module page. See #2228.
- Include current user’s Site Kit capabilities in Site Health report. See #2314.
- Mark user input state as completed once user has submitted their information. See #2310.
- Finalize copy for new
googlesitekit-user-inputscreen. See #2302.
- Display informational warning before setup about limited support for WordPress versions before 5.0. See #2289.
- Modify Search Console API queries so that they include results up until one day ago. See #2284.
- Add support for widgets to have multiple (fallback) widths via
googlesitekit.widgets.registerWidget, laying out widget grid with as few gaps as possible. See #2251.
- Modify widgets registered with
quarterwidth to render for half the screen width on mobile viewports. See #2250.
ReportZerocomponents which should be returned by widgets that are in error state or have no data to display. See #2246.
- Add JS utility functions
averageObjectListValue, and enhance capabilities of
extractForSparklinefunction. See #2245.
- Improve logic to determine whether an AdSense API report response is “empty”, via new
isZeroReportfunction for AdSense. See #2242.
- Simplify adding strings only visible to screen reader users by implementing a
VisuallyHiddencomponent. See #2165.
- Reduce complexity of implementing and registering
settingsEditcomponents for a module by centrally handling setting submission. See #2137.
- Modify the
canSubmitChangesselector and a
submitChangesaction. See #2136.
- Implement UI design for
googlesitekit-user-inputscreen. See #2040.
- Simplify module class infrastructure and implement (internal) module registry. See #1939.
- Fix bug where Analytics widgets would fire their API requests even when the module wasn’t completely set up, resulting in unnecessary error responses. See #2358.
- Fix bug where a previous error from an action would not be cleared when trying the same action again. See #2156.
- Fix a few translation strings that were concatenating date ranges, making them correctly translatable. See #2146.
- Fix compatibility issue where
amp-auto-adselement would not be present in AMP singular content when also using the Yoast SEO plugin. See #2111.
- Implement post search widget using the new Widget API. See #2023.
- Allow registering a
settingsEditComponentwhen calling the
registerModuleaction on the
core/modulesstore. See #1623.
- Unregister the site from the authentication service when the plugin is deleted. See #2311.
- Add selectors
core/modulesdatastore. See #2182.
- Add selectors
core/modulesstore. See #2180.
- Allow registering a
setupComponentwhen calling the
registerModuleaction on the
core/modulesstore. See #2074.
- Implement UI for new splash screen based on authentication service improvements. See #2046.
- Detect and store whether each user has already answered the user input questions to customize the plugin behavior. See #2042.
- Implement UI components to use in
googlesitekit-user-inputscreen. See #2039.
- Add Analytics tracking events for API request errors. See #1999.
- Fix bug where errors would be inconsistently keyed and not cleared as expected in certain cases. See #2210.
- Fix Search Console deep links to point to correct locations in case of a domain property as well. See #2110.
- Fix accessibility issue with links opening in a new tab by annotating them with screen reader text informing about it. See #2093.
- Fix several UI loading state issues across module setup flows. See #1995.
- Display text field to specify name when creating a new Tag Manager container, and prevent duplicate names which could have resulted in an error before. See #1817.
core/userstore. See #2037.
core/user/data/user-input-settingsREST datapoint. See #2036.
- Display notice about new Analytics and link to relevant support resource. See #2219.
canSubmitChangesselectors throughout different module datastores more testable and consistent. See #2108.
- Enhance new widget API so that only widget areas that have active widgets are rendered. See #2021.
- Provide accurate deep links for all Search Console and Analytics widgets, pointing to the corresponding location in the Google service frontend. See #1923.
- Use direct SVG imports instead of an SVG sprite which can cause accessibility and testing issues. See #1878.
- Make AdSense module page UI more consistent with other modules, allowing to filter information by date instead of showing at-a-glance information for different date periods. See #317.
- Fix bug where some data stores would be registered multiple times in JS. See #2145.
- Fix issue where admin bar would not show for URLs with unicode paths. Props kabirbd89. See #1968.
- Improve error handling during module setup and editing module settings so that any API errors are displayed. See #1859.
- Fix menu positioning bug that would move menu item for WP Engine and Bluehost hosting providers. See #1541.
- Introduce several filters to allow blocking rendering or execution of Google service scripts in the frontend, allowing integration with e.g. 3P cookie consent plugins. See #2087.
- Introduce API layer for advanced Analytics event tracking configurations from other plugins. See #1728.
googlesitekit_canonical_home_urlfilter, allowing (e.g. multilingual) plugins that contextually alter the home URL to fix potential issues with Site Kit. See #2131.
- Remove unused properties in module PHP classes. See #2050.
- Scaffold new
googlesitekit-user-inputscreen. See #2038.
Widgetcomponent to correctly align vertically and support optional header and footer component props. See #2022.
- Improve authentication service permissions link to check Site Kit permissions first while not exposing the actual URL on the client. See #1985.
User_TransientsPHP class for storing user-specific transients. See #1964.
core/userdatastore to retrieve actual date strings based on the current date range. See #1925.
- Display error notification when refreshing an access token failed due to missing Site Kit authentication service requirements. See #1848.
- Update the Reset Site Kit dialog message to be more clear. See #1825.
- Provide guidance in Analytics setup flow when Tag Manager is already active and its container is configured to use Analytics. See #1382.
- Provide guidance in Tag Manager setup flow when container is configured to use Analytics, including checks to ensure an eventual AMP container behaves correctly as well. See #1381.
- Remove Analytics module as requirement for Tag Manager module, decoupling them to be individual. See #1380.
- Fix new AdSense Top Earning Pages widget displaying error instead of CTA to link AdSense and Analytics. See #2098.
- Fix inconsistent loading state in Search Console Popular Keywords widget, which previously caused content shifting. See #2013.
- Show an error message if the URL for the single URL detail view cannot be identified as part of the site. See #2001.
- Improve support for URLs containing unicode, mixed case, and bidirectional control characters when requesting and sending data to Search Console. See #1567.
- Improve accuracy of AdSense account status detection based on specific errors. See #1919.
- Migrate AdSense Top Earning Pages widget to new Widget API. See #1902.
- Migrate AdSense Summary widget to new Widget API. See #1901.
- Migrate Analytics Popular Pages widget to new Widget API. See #1900.
- Migrate Search Console Top Keywords widget to new Widget API. See #1899.
- Migrate Analytics Unique Visitors, Bounce Rate, and Goals widgets to new Widget API. See #1898.
- Store the site URL that is connected to the Site Kit authentication service and prompt users to reconnect if the site URL has changed, allowing to update the registered configuration and fix future connection issues. See #1857.
- Show a button to refresh PageSpeed Insights report data in the widget. Props amirsadeghian. See #87.
- Fix initial datastore state being registered incorrectly to ensure consistent initial state. See #2083.
- Improve performance of datastores by avoiding unnecessary datastore updates. See #2052.
- Fix various translation strings to no longer violate localization best practices. See #2049.
- Fix console error when unfocusing and refocusing tab in AdSense setup flow. See #2033.
- Fix Search Console deep links for specific keywords in keywords widget to point to the correct location. See #2019.
- Fix tooltips for Bounce Rate and Session Duration in Analytics graph to format values correctly. See #2008.
- Provide site URL as fallback default value when creating a new Analytics account if site title is empty. See #1960.
- Avoid unnecessarily excessive requests to constantly check whether the active Analytics property and AdSense client are connected. See #1858.
- Only select Analytics default view for the active property automatically if it still exists. See #1691.
- Modify title links in Popular Pages table in Site Kit dashboard and WordPress dashboard widget to point to the details view for the relevant URL. See #1922.
- Migrate Search Console Impressions and Clicks widgets to new Widget API. See #1897.
- Migrate Analytics All Traffic widget to new Widget API. See #1896.
- For API errors about missing Google service permissions, clarify based on module ownership who to contact for more information. See #1824.
- Introduce concept of ownership for modules based on who set them up. See #1743.
- Improve entity detection so that single URL details view only works for URLs which do not result in a 404 per WordPress behavior. See #1980.
- Fix bug with URL-based entity detection where home page stats in Site Kit URL details view would not show up as expected. See #1978.
- Fix support for WordPress configurations using an HTTP proxy with or without authentication required. See #1976.
core/search/data/post-searchdatapoint and rely on higher-level
register_rest_routefunction from WordPress core. See #1924.
- Fix console warning about event tracking timeout being unnecessarily raised. See #1886.
- Fix Analytics reporting graph tooltip to match Analytics frontend UI and expose the same information. See #1836.
- Update post search input to use a better maintained and more accessible autocomplete library. See #1761.
- Introduce more granular error handling, with consistent error behavior in every store and API request errors being automatically stored. See #1814.
getReport( options )selector in
modules/adsensestore to allow for flexibly querying AdSense reports. See #1776.
getReport( options )selector to
modules/search-consolestore for querying Search Console reports. See #1774.
- Enable Site Kit admin bar menu and URL details view for any WordPress content beyond single posts, for example category, tag, author, or post type archives. See #174.
- Fix opting out of Analytics for logged in users not working correctly for Web Stories. See #1920.
- Ensure Search Console data in Site Kit only includes data for the current site even when using a domain property. See #1917.
- Fix internal error handling so that invalid usages of API-based selectors result in errors being thrown as expected. See #1801.
- Add new action hooks
googlesitekit_tagmanager_init_tag_ampwhich fire when the respective tag will be printed for the current request, but before any HTML output has been generated. See #1862.
- Clarify messaging on initial setup screen for secondary users who need to connect to Site Kit. Props sonjaleix. See #1714.
- Detect potential problems with issuing API requests to Google services and AMP prior to setup and inform the user about it. See #1549.
- Migrate away from using
AMP_Theme_Support::get_support_mode()which will be deprecated in the AMP plugin version 2.0.0. Props maciejmackowiak. See #1895.
- Link to the Manage sites screen including an
hlquery parameter for a localized experience. See #1860.
- Fix bug where the displayed Analytics user count percentage change was slightly off from Analytics service frontend. See #1681.
- Fix bug where deep links to the AdSense service frontend could result in blank screens there for users with a single Google account logged in. See #1652.
- Consistently enhance deep links to Google services to support users logged into multiple Google accounts in their browser. See #1456.
- Fix inconsistency where Analytics numbers displayed for the last 90 days were slightly off from the values in the Analytics frontend. See #1280.
- Fix bug where another plugin (e.g. WP User Frontend) could mess up the post detection process within the Site Kit dashboard. See #1253.
- Fix bug where state of not having sufficient data for a Site Kit widget would sometimes incorrectly persist when switching the date range. See #184.
- Fix regression where Analytics top content wouldn’t be sorted correctly by views. Props gmmedia. See #1867.
core/modulesstore, which allows for JS module registration and will in the future enable registration of module components. See #1622.
getReport( options )selector to
modules/analyticsstore for querying Analytics reports. See #1775.
hlquery parameter to Site Kit service for setup and authentication, for a localized experience. See #1726.
modules/adsensestore to require both
clientIDparameters, and no longer rely on infering AdSense account ID from client ID in general. See #1709.
- Implement logic and styling for managing widget areas and widgets in a dynamic grid, respective registered widget widths and aligning them properly. See #1678.
- Migrate the existing date range selector component to rely on the centrally managed date range from datastore. See #1531.
- Simplify detection of existing tags and combine functionality in the JS store. See #1328.
- Migrate PageSpeed Insights widget to use the new Site Kit widgets API. See #1302.
- No longer cache API response errors within batch requests. See #1800.
- Fix publisher win notifications regression where they would not be displayed anymore. See #1781.
- Fix new JS API layer to prefer
localStoragefor caching. See #1780.
- Improve Google profile data lookup to retry periodically if it temporarily fails. See #1731.
- Display correct labels for Analytics top acquisition channels by relying on
ga:channelGroupingdimension. See #1719.
- Handle error conditions more gracefully when refreshing access token fails due to e.g. the user having revoked access previously, providing the user with a link to resolve the problem. See #1646.
- Fix usage of
apiFetchwith a custom middleware to only rely on preloaded data for initial requests on pageload. See #1611.
- Fix notification bubble on Site Kit menu so that it only displays if there are actual notifications available. See #1540.
- Fix PHP warning that could occur when retrieving REST API information via help endpoint. Props majemedia. See #1208.
setDateRange( slug )action to the
core/userstore. See #1529.
- Introduce new
registerWidgetselector which adds the wrapping
Widgetcomponent by default. See #1724.
Module::get_datapoint_services()PHP method in favor of
Module::get_datapoint_definitions()for more flexibility in annotating API datapoints. See #1609.
- Only require the
https://www.googleapis.com/auth/tagmanager.readonlyscope by default for Tag Manager, and request write scopes only as needed for a specific action. See #1608.
- Redirect users to the setup screen when trying to access the Site Kit dashboard with insufficient permissions. See #1526.
- Implement widget areas using new Site Kit widgets API. See #1392.
- Significantly improve stability and maintainability of Tag Manager module setup and settings. See #1386.
- Update the majority of 3P dependencies to their latest versions. See #1356.
accountIDto be passed to
modules/analyticsstore, in order to supported moved Analytics properties. See #1707.
- Fix bug where placing an invalid Analytics tag through another plugin could cause the Site Kit Analytics setup UI to break. See #1651.
- Fix bug where users with full Analytics access would see error message about lack of permissions, due to the property having been moved. See #1548.
- Fix bug where users attempting to create a new Analytics view during module setup would be blocked from proceeding. See #1754.
- Introduce base components for upcoming Site Kit Widgets API. See #1300.
wp google-site-kit auth revoketo
wp google-site-kit auth disconnectand adjust internal CLI commands infrastructure. See #1677.
- Significantly improve stability and maintainability of Optimize module setup and settings, and fix bug where editing Optimize settings with AMP active could cause an error due to the
ampExperimentJSONmodule setting not being stored as JSON string. See #1621.
hasScope( scope )selector to
core/userstore, which allows checking whether the user has explicitly granted access to the respective scope. See #1610.
modules/tagmanagerdatastore to enable JS-based access to Tag Manager data. See #1385.
- Allow specifying Analytics view name when creating a new one, and display a deep link to modify view settings in Analytics module settings. See #716.
- Fix admin tracking regression where snippet would not be loaded on the page. See #1717.
- Ensure ad blocker detection is active throughout the entire AdSense module setup. See #1666.
- Fix redirect to Google Analytics terms of service occasionally failing due to unnecessary extra redirect. See #1632.
- Fix bug
Cannot read property 'destroy' of undefinedfrom AMP experiment JSON field in Optimize module. See #1605.
- Implement new version of PageSpeed Insights widget that focuses on core web vitals. See #1636.
modules/optimizeJS datastore for Optimize module. See #1620.
- Detect current URL and related data when on the Site Kit screen for single URL details. See #1653.
- Implement tabbed UI for new web vitals widget separating between mobile and desktop as well as lab and field data. See #1649.
- Only load Site Kit-specific Analytics script on Site Kit admin screens. See #1648.
user_rolesquery parameter during setup. See #1639.
- Simplify module datastore creation by including
commonStorein the store returned
googlesitekit.modules.createModuleStore. See #1607.
- Add selectors to get module-specific admin screen URLs to every module datastore. See #1559.
- Fix accessibility issues in Site Kit settings due to semantically incorrect tag usage. See #1557.
modules/pagespeed-insightsdatastore to get UX reports. See #1426.
- Implement meta programming approach for API-based datastore selectors and actions to reduce boilerplate. See #1288.
- Include anchor link in success notification after setting up PageSpeed Insights module. See #532.
- Reduce bundle size of Analytics and Optimize module JS assets. See #1661.
- Do not run Site Kit assets logic when not applicable for the current user, avoiding unnecessary checks e.g. on the login screen. See #1650.
- Fix incompatibility with WooCommerce due to Webpack conflict. See #1637.
- Fix bug with event firing when activating or deactivating a module. See #1629.
- Enhance functionality of new
core/modulesstore so that module activation/deactivation results in authentication data to be refreshed. See #1507.
- Fix ad blocker detection failing for popular AdBlock browser extension. See #1491.
- Ensure dashboard search form can only be submitted with valid content. See #1434.
- Fix Analytics data displayed for Users being partially incorrect due to incorrect date parsing. See #1394.
- Fix table content overflow issues in narrow viewports. Props AlexandreOrlowski. See #1376.
modules/pagespeed-insightsdatastore in JS. See #1500.
modules/search-consoledatastore in JS. See #1498.
- Implement Site Kit widgets API datastore wrapper on
googlesitekit.widgets. See #1301.
core/widgetsdatastore for Site Kit widget registrations. See #1298.
- Integrate with the Analytics Provisioning API to enable creation of Analytics accounts directly from the plugin. See #1271.
Analyticsmodule that creates a new Analytics account ticket using the Provisioning API. See #1212.
- Add notifications functionality to
core/userstore. See #1177.
core/userdatastore for managing user-specific data in JS. See #1175.
- Only request readonly OAuth scopes for each module by default, and prompt for additional scopes when needed for a specific action. See #1566.
Rootcomponent with essential providers, error handlers etc. See #1530.
core/formsdatastore to manage form state. See #1510.
amp-analyticssnippet for Web Stories. See #1506.
- Migrate PageSpeed Insights settings to using the datastore. See #1501.
- Display actual Search Console property used in settings, and migrate to using the datastore. See #1499.
- Rename Analytics profiles to views consistently. See #1486.
- Improve AdSense account status and site status detection logic to be more error-proof. See #1332.
- Add user profile information and verification state to
core/userdatastore. See #1176.
- Significantly improve stability and maintainability of AdSense module setup and settings. See #1014.
- Clarify message for when user needs to reauthenticate to grant required scopes. See #189.
- Ensure all module caches are cleared when modifying Analytics settings. See #1593.
- Fix bugs where CTAs to link Analytics to AdSense would never show. See #1545.
- Fix AdSense report URL to not include user-specific affix. See #1516.
- Fix Search Console deep links to use the correct property identifier. See #1497.
- Fix bug where having a graylisted AdSense account would prevent the AdSense code from being placed. See #1494.
This release includes security fixes. An update is strongly recommended.
- Check for users that verified through Site Kit without being authorized to do so, and disconnect them from Site Kit. See #1573.
application_namequery parameter to authentication service. See #1571.
This release includes security fixes. An update is strongly recommended.
- Introduce standalone UI mode for plugin admin screens. Props EvanHerman. See #1281.
modules/analyticsdatastore for managing Analytics state in JS. See #1224.
core/modulesdatastore for managing module information and activation state. See #1179.
- Preload REST API datapoints for
core/userdatastores to avoid firing these extra requests. See #1478.
- Add support for new Optimize container IDs starting in
OPT-. See #1471.
- Improve alignment of dialog buttons. See #1436.
- Rely on the default profile specified in an Analytics property for the profile to pre-select in the dropdown in Analytics setup/settings. See #1404.
- Remove periods from single sentences in settings panel lists. See #1401.
googlesitekit.data.combineStoresutility function to combine multiple datastore objects. See #1400.
- Significantly improve stability and maintainability of Analytics module setup and settings. See #1101.
- Update Analytics control for whether to place snippet to use a toggle instead of radio buttons for consistency. See #1048.
- Fix bug where Analytics would never request AdSense metrics even with a successful AdSense connection. See #1524.
- Fix bug where
amp-auto-adssnippet would not always be printed if the theme didn’t support the
wp_body_openaction. See #1495.
- Do not request remote notifications if the site is not connected to the remote. See #1479.
- Update registered site name on authentication service when it is updated in WordPress. See #1397.
- Display only paths instead of full URLs in Analytics tables for better visibility and consistency with Analytics frontend. See #1116.
- Add missing translator comments to ease plugin localization for contributors. See #820.
- Add notifications functionality to
core/sitedatastore. See #1174.
rollbackSettingsaction to settings datastores and refine overall datastore infrastructure. See #1375.
- Expand AdSense settings panel to expose more helpful information. See #585.
- Fix bug where similar batch request to the API could occur multiple times. See #1406.
- Fix bug where single post stats would display the unique visitors from Search for the overall site instead of only that post. Props phamquangbaoplus. See #1371.
- Fix Analytics incorrectly triggering re-authentication notice when the user does not have any accounts. See #1368.
- Fix JS datastore actions to never have an associated control and reducer at the same time. See #1361.
bodytag as commonly expected. Props ShahAaron. See #1308.
- Fix layout issue in Tag Manager settings panel when no container is selected. See #1296.
- Fix issue related to added
_glquery parameter from AMP linker. Props ShahAaron. See #1275.
- Allow modules to register and enqueue their own assets by implementing a
Module_With_Assetsinterface. See #1319.
- Decouple datastores from global registry by using
createRegistrySelector. See #1287.
- Update datastore resolvers to only issue API requests when lacking data. See #1286.
- Add preloading middleware for REST API data and preload module settings routes on pageload. See #1246.
- Add more granular selectors to the
core/sitedatastore. See #1173.
- Add several additional selectors for commonly used site data to the
core/sitedatastore. See #1000.
- Fix bug where plugins modifying the site address during frontend requests would prevent the setup flow from being completed. See #1357.
- Fix bug where
googlesitekit.api.setwould not pass through request data correctly to the API endpoints. See #1346.
- Do not revoke token remotely when token is deleted, unless explicitly requested via disconnect. See #1305.
- Fix unicode domains being displayed in punycode version in disconnect feedback message. See #1297.
- Fix bug where certain numbers were rounded differently from how the respective Google service rounds them. See #1279.
- Ensure the total user count in the Analytics module matches the numbers displayed in the Google Analytics frontend. See #1202.
- Add support for reading and editing settings to datastores created via
googlesitekit.modules.createModuleStore. See #1249.
createModuleStorefunction to create a base datastore for a Site Kit module. See #1063.
- Automatically include a REST route to read and edit settings for every module that supports them. See #1244.
- Fix issue where users would get stuck on setup screen after seemingly successful completion of the setup flow on the authentication service. See #1266.
- Provide clear error message informing the user when they did not grant the necessary permissions, instead of a generic
access_deniederror code. See #1192.
Intl.NumberFormat.formatToPartsnot being supported in Safari. See #1107.
e.replace is not a functionin AdSense screens related to formatting numbers. See #1092.
- Fix problems around comparing domains with unicode characters that could result in blocking the plugin setup. See #794.
- Ensure tracking opt-out mechanism works consistently between both Analytics and Tag Manager in AMP, and fix regression with Site Kit admin bar menu no longer expanding on AMP pages. See #1251.
googlesitekit.dataregistry and register initial
core/sitestore on it. See #999.
- Fix various plugin setup issues related to inconsistent URLs by automatically updating registered URIs on the authentication service. See #1034.
- Improve asset handling in PHP by introducing dedicated data-only scripts, to use as dependencies. See #1004.
- Respect Analytics tracking exclusion of logged-in WordPress users also if Tag Manager is used. See #944.
- Integrate with WordPress Site Health feature to provide contextual Site Kit information for support and troubleshooting. See #169.
- Display helpful link in previously empty PageSpeed Insights settings area. See #1129.
- Use latest product icon for the Optimize module. See #969.
- Ensure date range selectors functionality is decoupled from localizable strings. See #1183.
- Replace outdated AMP client ID mechanism for tracking AMP traffic with recommended AMP linker approach, and enable it by default. See #1160.
- Fix compatibility error where
google.charts.loadwas not called before
google.charts.setOnLoadCallback. See #1155.
- Do not show empty data table in Analytics module screen when there is no data to display. See #464.
- Introduce basic notifications system for information displayed in the Site Kit dashboard. See #1110.
- Register all of the plugin’s user options in WordPress via
register_meta(). See #1029.
- Improve JS error handling consistently across individual React apps and allow for better contextualization. See #943.
- Display information about lack of data instead of displaying empty top search queries box. Props Shavindra. See #314.
- Ensure admin bar displays when at least Search Console or Analytics have stats for the current URL. See #167.
- Fix minor bug causing potentially incorrect token expiry to be recorded. See #1158.
- Fix AMP violations when user is logged in and Site Kit admin bar menu is active. See #1142.
- Fix incompatibility issue with Jetpack by resolving bug where the bundled
lodashwas causing a conflict. See #1141.
- Fix double-rendered HTML markup on Site Kit dashboard screen. See #1140.
- Fix misleading sparkline color for metrics that should use the inverted color, such as bounce rate. See #1128.
- Work around bug in ModSecurity by relying on only providing granted OAuth scopes in token API response. See #1113.
- Make JS and CSS asset names consistent. Props Shavindra. See #1040.
- Properly support paired AMP in Tag Manager module by allowing to select two different containers, one for
webcontext and the other for
ampcontext. Props kmwilkerson. See #413.
- Fix accessibility issues in dialog component with potentially duplicate IDs and invalid ARIA attributes. See #345.
- Fix issue where disconnecting a user from a site would disconnect that user from all their sites.
opcache_reset()exists before calling it. See #1136.
googlesitekit.dataregistry for JS datastores. See #997.
- No longer delete plugin data when uninstalling and instead rely on the more explicit reset functionality. See #1069.
- Remove legacy migrations that were only relevant to pre-1.0.0 users. See #1062.
- Migrate stray module settings into object-like option for consistency and future scalability. See #1030.
core/site/data/connectionREST API route for retrieving site connection info. See #998.
- Fully rely on Webpack for third-party dependencies and decouple from WordPress-shipped assets for more stability across all versions. See #993.
- Inform the site owner about potential issues with their site that will likely cause problems when setting up the plugin. See #933.
- Make opting in to tracking specific per user instead of per site. See #913.
- Bump minimum required PHP version to 5.6, rely on up-to-date linting tools and fix various PHPCS issues. See #547.
- Move REST route definitions into more applicable classes that handle the respective functionality. See #166.
- Allow users with existing Tag Manager accounts to create additional accounts during module setup. See #1080.
- Fix partly outdated PHP files being served due to OpCache issues currently not addressed by WordPress core. See #1066.
- Prevent unexpected PageSpeed Insights API responses from breaking the dashboard. See #1061.
- Fix several temporary blank screen errors by loading script dependencies more reliably via Webpack. See #1054.
- Ensure that the Tag Manager snippet rendered is always compatible with the current context (AMP vs non-AMP). See #1036.
- Do not render
amp-auto-adselement in AMP stories because it is invalid in that context. See #979.
- Ensure that Google Charts JS library is loaded as expected even when a
window.googleglobal already exists because of another library. See #939.
- Do not refetch PageSpeed Insights data when the date range selector is changed, as its data its date-unaware. See #890.
- Fix incorrect change arrow direction and color on “inverted” properties like bounce rate. Props WebFactoryLtd. See #481.
- Add missing support for Search Console domain properties and rely on the correct property when requesting Search Console data. Props IgorCode. See #325.
- Introduce new
googlesitekit.apilayer for accessing Site Kit datapoints with reliable caching. See #953.
- Detect already existing Tag Manager snippets from other sources and inform about them in the setup flow. See #433.
- Introduce Site Kit-specific
Google_Clientimplementation and use that throughout the codebase. See #1003.
- Reduce maintenance by implementing dynamic activation notice in React. See #991.
- Include platform and plugin version information in API client requests. See #989.
- Ensure that all module settings are properly registered in WordPress for consistent behavior. See #859.
- Allow users to rely on
WP_PROXY_*constants to use an HTTP proxy for requests issued by
Google_Client. See #661.
- Allow users that have existing Google Analytics account to create a new account in module setup and settings. See #198.
- Remove very limited debug bar integration for now. See #178.
- Fix Search Console average position graph to show the smallest value on top of the Y axis. Props connorhsm. See #874.
- Display warnings about insufficient scopes across all Site Kit screens instead of only the dashboard, since they are just as relevant during setup. See #729.
- Ensure that PageSpeed Insights module can be deactivated again once activated. See #682.
- Improve compatibility with WordPress VIP environment. Props moraleida. See #901.
- Update wording on setup screen for secondary users to clarify they need to connect their account, but not set up the plugin. See #881.
- Use OAuth
login_hintparameter to indicate that the user should use the same Google account across all modules. See #867.
- Anonymize IP addresses by default in Google Analytics snippet, and grant the user control to modify with a new setting. Props gx10. See #18.
- Fix compatibility issues with older versions of the AMP plugin. See #975.
- Ensure that only options and user options starting with
googlesitekit_(including underscore) are deleted on reset or disconnect. See #968.
- Optimize disconnecting users by only running a single database query. See #960.
- Ensure Site Kit admin bar content is styled independently from the current theme. See #888.
- Fix bug in Analytics module setup where the user would not be informed about an existing tag before selecting a property. See #803.
- Fix bug where admin bar stats would not display under certain circumstances when editing a post in the backend. See #521.
- Display impressions before clicks in admin bar as that is the commonly expected order. See #297.
- Fix critical AdSense issue where users were not able to place the snippet and would end up on a blank screen under certain conditions. See #891.
- Introduce new mechanism for a site to receive its credentials from the authentication service, replacing the previous mechanism using the REST API that was error-prone on certain environments. See #905.
- Remove unnecessary logic to refresh an access token on login, since the Google API client already accounts for that. See #903.
- Fix too long request URLs for Google API batch requests to use
POSTinstead, as the query length was problematic on certain environments. Props sksaju. See #779.
- Fix bug resulting in blank plugin dashboard screen under certain circumstances. Props ThomasTr. See #767.
- Ensure that opting in or out of tracking takes effect immediately. See #727.
- Fix spacing issue in Search Console step for local development setup. See #637.
- Fix display of the disconnect modal which could potentially appear below the “section locked” indicator in the plugin settings UI. See #636.
- Fix reset and uninstall data removal by optimizing database queries. See #809.
- Update usage of G icon in admin menu, dashboard widget and screen options to align better with WordPress admin UI. See #877.
- Add support for site verification via file as primary method while keeping site verification via meta tag as fallback, resolving potential site verification failures. See #836.
- Move checkbox above submit button in setup screen and banner for better accessibility. See #788.
- Use more secure nonce generation mechanism for the authentication service. See #756.
- Show PageSpeed Insights performance stats for every individual URL in its details view, accessible from Site Kit dashboard and admin bar. See #654.
- Display Tag Manager container names instead of IDs in dropdowns for more user-friendly selection. See #591.
- Remove redundant notification title for AdSense notifications. Props OisinOConnor. See #586.
- Always use root domain for AdSense site because subdomains are typically not supported. Props OisinOConnor. See #578.
- Add support for displaying the full Site Kit admin bar menu with stats also for AMP requests, by leveraging AMP’s dev mode feature. See #438.
- Simplify AdSense account status detection as a base for easier future enhancements and fixes. See #427.
- Add a checkbox to allow disabling Analytics tracking for logged-in users, and introduce a filter to adjust the behavior programmatically. Props Paras16699. See #88.
- Ensure that a newly created Tag Manager container is properly saved so that the module setup is completed. See #821.
- Improve detection of existing AdSense snippets to cover more variants of snippets. See #798.
- Only display the Reset button on the setup screen if there actually is something to reset, and provide a feedback notice. See #758.
- Update incorrect message in development setup flow referring to site verification instead of Search Console. Props AVGP. See #600.
- Only show Tag Manager containers that are relevant to the site’s mode, and accordingly support AMP-first by only exposing AMP containers. See #470.
- Fix critical bug causing unnecessary requests to Google People API although no user is logged-in. See #854.
- Fix critical issue where an invalid refresh token would not revoke the current token, resulting in recurring requests with further attempts. See #831.
- Fix REST request sending credentials potentially being blocked due to user agent.
- Introduce Jest for JS unit tests, migrate existing tests, and improve various related infrastructure components. See #524.
- Do not disconnect user when refreshing an access token randomly fails, and ensure the user sees an error message about any errors during the process. See #818.
- Fix error that could occur when setting up a new Analytics profile from the module setup. See #816.
- Fix bug where the site verification nonce was not sent to the authentication service. See #797.
- Fix false positive when detecting existing Analytics tags, which previously blocked users from completing the module setup. See #793.
- Ensure that
- Improve various translation strings by removing trailing spaces, adding a context, fixing capitalization, and more. Props pedro-mendonca. See #769.
- Remove irrelevant translation strings from codebase by eliminating
@wordpress/componentsdependency. See #759.
- Improve detection of existing Analytics snippet by covering a further variant that is used e.g. by the Analytify plugin. Props ernee. See #744.
- Improve UX and fix performance issues with excessive re-rendering in the module settings screen. See #742.
- Fix style issues in various data tables which previously would break out of their parent containers on certain device widths. See #480.
Unknown error (code: checking requirements failed).by resolving quota issues on the authentication service.
- Improve stability of REST API request issued by the authentication service when setting up a new site.
Method not allowederror on the authentication service.
- Ensure verification tokens and other plugin user data correctly get cleared when resetting the plugin before the user has authenticated. See #771.
- Fix bug where the verification tag sent from the service to the plugin would result in a 404 response, preventing the verification from being completed. Props theeducatedbarfly. See #765.
- Improve compatibility with sites that have a
http://website address stored as
home_url, but actually require HTTPS. Props drcrow. See #760.
- Display a reset button alongside the setup button so that the plugin can also be reset before completing the initial flow. See #753.
- Remove custom updater to instead fully rely on wordpress.org. See #644.