{"id":365855,"date":"2026-09-17T21:32:51","date_gmt":"2026-09-17T21:32:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/preferred-sources-for-publishers\/"},"modified":"2026-09-18T09:06:51","modified_gmt":"2026-09-18T09:06:51","slug":"hooray-sourcesignal-for-google-preferred-sources","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/hooray-sourcesignal-for-google-preferred-sources\/","author":23565619,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.1","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Hooray SourceSignal for Google Preferred Sources","header_author":"Hooray Plugins","header_description":"Invite your readers to choose your publication as a preferred source in Google Search \u2014 with a block, a shortcode or automatic placement. No code, no snippets, no CSS.","assets_banners_color":"fafcfd","last_updated":"2026-09-18 09:06:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":104,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"hoorayplugins","date":"2026-09-18 01:19:42","revision":3701173},"1.1.0":{"tag":"1.1.0","author":"hoorayplugins","date":"2026-09-18 09:06:51","revision":3701648}},"upgrade_notice":{"1.1.0":"<p>Two new presentations, counting of what readers do, and a four-tab settings screen. Presentation is now one setting; a site whose 1.0 values differed keeps what its articles showed. Counting adds a table of day-by-day totals holding nothing about any reader; switch it off on the Analytics tab.<\/p>","1.0.0":"<p>Adds a setup wizard, a live preview, category targeting and a suggested privacy-policy paragraph. Your existing settings are kept, and nothing changes for readers unless you change it.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3701019,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3701019,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3701019,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3701019,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"preferred-sources\/cta":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"preferred-sources\/cta","version":"1.1.0","title":"Preferred Sources button","category":"widgets","icon":"star-filled","description":"Add a Google Preferred Sources button or prompt to your content.","keywords":["google","preferred","sources","source","prompt","button","search","news","publisher"],"textdomain":"hooray-sourcesignal-for-google-preferred-sources","supports":{"html":false,"anchor":true,"align":["wide","full"],"spacing":{"margin":true,"padding":false}},"attributes":{"style":{"type":"string"},"heading":{"type":"string"},"text":{"type":"string"},"buttonLabel":{"type":"string"},"theme":{"type":"string"},"lang":{"type":"string"},"hideWhenAsked":{"type":"boolean","default":true},"appearance":{"type":"object"}},"editorScript":"psfp-editor","style":"psfp-cta"}},"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3701648,"resolution":"1","location":"assets","locale":"","width":1280,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3701648,"resolution":"2","location":"assets","locale":"","width":1280,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3701648,"resolution":"3","location":"assets","locale":"","width":1280,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3701648,"resolution":"4","location":"assets","locale":"","width":1280,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3701648,"resolution":"5","location":"assets","locale":"","width":1280,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3701648,"resolution":"6","location":"assets","locale":"","width":1280,"height":1000}},"screenshots":{"1":"The settings screen: the seven presentations and the live preview, drawn at phone, article or full width.","2":"The Appearance tab: the wording readers see, with the preview above it.","3":"The compact pill in an article byline.","4":"The promotional card mid-article.","5":"The Analytics tab: what readers did, and what the plugin cannot know.","6":"The Preferred Sources button block in the editor."}},"plugin_section":[],"plugin_tags":[278247,3019,1248,271892,4123],"plugin_category":[],"plugin_contributors":[281372,281373],"plugin_business_model":[],"class_list":["post-365855","plugin","type-plugin","status-publish","hentry","plugin_tags-google-preferred-sources","plugin_tags-google-search","plugin_tags-news","plugin_tags-preferred-sources","plugin_tags-publisher","plugin_contributors-hoorayplugins","plugin_contributors-jbyrne123","plugin_committers-hoorayplugins"],"banners":{"banner":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/banner-772x250.png?rev=3701019","banner_2x":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/banner-1544x500.png?rev=3701019","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/icon-128x128.png?rev=3701019","icon_2x":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/icon-256x256.png?rev=3701019","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-1.png?rev=3701648","caption":"The settings screen: the seven presentations and the live preview, drawn at phone, article or full width."},{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-2.png?rev=3701648","caption":"The Appearance tab: the wording readers see, with the preview above it."},{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-3.png?rev=3701648","caption":"The compact pill in an article byline."},{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-4.png?rev=3701648","caption":"The promotional card mid-article."},{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-5.png?rev=3701648","caption":"The Analytics tab: what readers did, and what the plugin cannot know."},{"src":"https:\/\/ps.w.org\/hooray-sourcesignal-for-google-preferred-sources\/assets\/screenshot-6.png?rev=3701648","caption":"The Preferred Sources button block in the editor."}],"raw_content":"<!--section=description-->\n<h4>Google Preferred Sources for WordPress \u2014 without the code<\/h4>\n\n<p>SourceSignal makes it easy to add Preferred Sources buttons and prompts to your WordPress site \u2014 without editing code or hiring a developer.<\/p>\n\n<p>Install the plugin, choose what you want the button to look like and where you want it to appear, and turn it on.<\/p>\n\n<p>That's it.<\/p>\n\n<h4>Built by a publisher, for publishers<\/h4>\n\n<p>I run a small independent publishing company. We don't have an in-house development team.<\/p>\n\n<p>When Google launched Preferred Sources, I wanted it on our sites. The basic Google code looked simple enough. Making it work the way I wanted across WordPress, different placements, mobile devices, caching and our existing site setup was another story.<\/p>\n\n<p>So I built SourceSignal.<\/p>\n\n<p>The goal was simple: make Google Preferred Sources something a publisher can set up in a few minutes instead of another project to send to a developer.<\/p>\n\n<p>We use it on our own publishing sites, and we've tested it on real WordPress sites and browsers.<\/p>\n\n<h4>What you can do with SourceSignal<\/h4>\n\n<ul>\n<li><strong>Add Google Preferred Sources without touching code.<\/strong> No snippets, no theme files, no CSS.<\/li>\n<li><strong>Choose how it looks.<\/strong> Google's official button; a compact pill or a promotional card drawn by the plugin and carrying Google's G; a plain card, an inline button, a text link or a card in your own colours; or a button you already have.<\/li>\n<li><strong>Choose where it appears.<\/strong> Automatically before or after articles, or place the Preferred Sources button block or the <code>[preferred_source]<\/code> shortcode yourself.<\/li>\n<li><strong>Control where it shows.<\/strong> Limit automatic placement to the post types and categories you choose.<\/li>\n<li><strong>Preview everything before turning it on.<\/strong> The wizard and the settings screen draw the real prompt at phone, article or full width. Nothing changes for readers until you press <strong>Turn it on<\/strong>.<\/li>\n<li><strong>See what readers do.<\/strong> Day-by-day counts of how often each prompt was on screen, pressed, and opened Google's flow \u2014 kept on your own site, with nothing about any reader in them. Optionally send the same counts to the Google Analytics tag your site already runs.<\/li>\n<li><strong>Don't nag your readers.<\/strong> Choose how long to hide it after someone uses or closes it.<\/li>\n<li><strong>Works with page caching and CDNs.<\/strong> Every visitor gets the same HTML; the reader's browser decides whether to show it.<\/li>\n<li><strong>Still works if Google's script doesn't load.<\/strong> Readers get a link to Google's Source Preferences page instead.<\/li>\n<\/ul>\n\n<h4>A note about Google<\/h4>\n\n<p>SourceSignal helps you promote Google's Preferred Sources feature. Google controls the feature and the final selection happens on Google's side.<\/p>\n\n<p>Google does not provide publishers with confirmation that an individual reader completed the selection, so SourceSignal does not report clicks as confirmed Preferred Source adds. The counts on the Analytics tab are of what happened on your own pages \u2014 on screen, pressed, Google's flow opened \u2014 and nothing more.<\/p>\n\n<p>SourceSignal is an independent publisher tool and is not affiliated with or endorsed by Google. The compact pill and the promotional card carry Google's G so readers recognise what the button does; they are drawn by the plugin and are not Google's official button.<\/p>\n\n<h4>Want to promote Preferred Sources beyond your website?<\/h4>\n\n<p>We're also building SourceSignal Pro for publishers who want to promote Preferred Sources through newsletters, social media and print.<\/p>\n\n<p>Pro adds publisher-controlled campaign links, printable QR codes, campaign management and reporting for the parts of the funnel we can actually measure \u2014 including views, clicks and Google-flow launches.<\/p>\n\n<p>Pro is coming soon.<\/p>\n\n<h3>External services<\/h3>\n\n<p>To open Google's Preferred Sources screen, this plugin loads Google's publisher library from <code>https:\/\/news.google.com\/swg\/js\/v1\/publisher.js<\/code>.<\/p>\n\n<p><strong>When it loads:<\/strong> on pages that carry a Preferred Sources button or prompt \u2014 or, if you switch on \"Let buttons added outside the block editor open the card too\", on every page of your site. That setting is off unless you turn it on, and the settings screen tells you which state your site is in.<\/p>\n\n<p><strong>What Google receives:<\/strong> loading that file is a request to Google, so Google receives what any web request carries \u2014 the reader's IP address, their browser, and the address of the page they are on. If you use Google's own rendered button, Google also draws it inside a frame served from Google, and that frame receives the address of the article the reader is on. Google's library also records, on Google's side, that it was loaded and that its button was shown or pressed, against the address of the page; this plugin does not see those records and cannot switch them off.<\/p>\n\n<p><strong>The fallback:<\/strong> when Google's library cannot load, or JavaScript is switched off, the prompt becomes a plain link to Google's Source Preferences page, <code>https:\/\/www.google.com\/preferences\/source?q=yourdomain.com<\/code>. It is written into the page but only requested if a reader follows it.<\/p>\n\n<p>Google's handling of any of this is governed by Google's own terms and privacy policy, not by this plugin:<\/p>\n\n<ul>\n<li>Terms: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Google Analytics (optional, off by default).<\/strong> If you tick \"Also send these as events to Google Analytics\" on the Analytics tab, the reader's browser also sends one event per count \u2014 <code>psfp_view<\/code>, <code>psfp_click<\/code>, <code>psfp_invoke<\/code>, <code>psfp_fallback<\/code>, <code>psfp_dismiss<\/code> \u2014 through whatever Google tag your site already runs. Each event carries which prompt it was, where on the page it sat, its position, the content type and a schema number, and nothing about the reader. This plugin loads no analytics script of its own: if your site has no Google tag, nothing is sent. What Google does with those events is governed by Google's privacy policy (https:\/\/policies.google.com\/privacy).<\/p>\n\n<h3>Privacy<\/h3>\n\n<p><strong>Nothing about any individual reader is stored on your server.<\/strong> There is no reader table, no event log, no visitor identifier, no IP address and no user-agent string, and nothing is ever sent to the plugin's author.<\/p>\n\n<p><strong>Counting, which you can switch off.<\/strong> While counting is on, the plugin keeps day-by-day totals in one table on your own site: a date, which prompt it was, where on the page it sat, and how many times it was on screen, pressed, opened Google's flow, fell back to the plain link, or was closed. A row is a day, not a person, and rows older than 400 days are deleted automatically. Your own visits as a logged-in editor are not counted. Switch counting off on the Analytics tab and the table is never written to and the counting script is never loaded.<\/p>\n\n<p><strong>In the reader's own browser<\/strong>, when they press or close a Preferred Sources button or prompt, the plugin saves a date stamp \u2014 in local storage and in a first-party cookie of the same name:<\/p>\n\n<ul>\n<li><code>psfp_used_at<\/code> \u2014 the reader pressed it.<\/li>\n<li><code>psfp_closed_at<\/code> \u2014 the reader closed it.<\/li>\n<\/ul>\n\n<p>Each holds a date and nothing else: no name, no account, no identifier. The cookie is set with <code>path=\/<\/code> and <code>SameSite=Lax<\/code>, and expires by itself after the window you chose. Nothing is written merely because a reader was shown the prompt, and <strong>nothing at all is written if both windows are set to \"Keep showing it\"<\/strong>. Your server never reads either copy, which is what keeps page caching working \u2014 though the cookies travel with ordinary page requests the way every cookie does.<\/p>\n\n<p>It is per browser, not per person: the same reader on a phone and a laptop counts twice, and clearing site data resets it.<\/p>\n\n<p>WordPress's <strong>Settings \u2192 Privacy<\/strong> screen carries a suggested paragraph for your own privacy policy, generated from your site's own settings, including the counting and Google Analytics paragraphs only when those are switched on. It is a starting point, not legal advice.<\/p>\n\n<p>The plugin stores its own settings in <code>psfp_settings<\/code> and <code>psfp_setup<\/code>, a note of what the 1.1 upgrade changed in <code>psfp_migration<\/code>, a 60-second marker after activation, and \u2014 while counting is on \u2014 the table of day-by-day totals, <code>psfp_analytics_daily<\/code>, with a daily job that deletes rows older than 400 days. Uninstalling removes all of it \u2014 the options, the table and the job \u2014 from every site on a network, and leaves your posts alone.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. Nothing changes for readers yet.<\/li>\n<li>WordPress opens <strong>Set up Preferred Sources<\/strong>. (If it does not, open <strong>Preferred Sources \u2192 Setup<\/strong> from the admin menu.)<\/li>\n<li>Answer the questions \u2014 where it should appear, on what content, how it should look, what it should say \u2014 watching the preview beside them.<\/li>\n<li>Press <strong>Turn it on<\/strong> on the last step.<\/li>\n<li>If your site uses a caching plugin or a CDN, clear its cache.<\/li>\n<\/ol>\n\n<p>To place it by hand instead, add the <strong>Preferred Sources button<\/strong> block to any post or page. In the editor, search for \u201cpreferred sources\u201d.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20google%20preferred%20sources%20to%20wordpress%3F\"><h3>How do I add Google Preferred Sources to WordPress?<\/h3><\/dt>\n<dd><p>Install this plugin, answer the setup questions, look at the preview, and press <strong>Turn it on<\/strong>. You can also drop the Preferred Sources button block into a post (search \u201cpreferred sources\u201d in the editor), or use the <code>[preferred_source]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20add%20google%27s%20javascript%20manually%3F\"><h3>Do I need to add Google's JavaScript manually?<\/h3><\/dt>\n<dd><p>No. The plugin loads Google's publisher library on pages that need it, and leaves it off pages that do not.<\/p><\/dd>\n<dt id=\"can%20i%20add%20preferred%20sources%20without%20a%20developer%3F\"><h3>Can I add Preferred Sources without a developer?<\/h3><\/dt>\n<dd><p>Yes. Install it, choose where it appears and how it looks, preview it, and turn it on. No PHP, no JavaScript, no templates.<\/p><\/dd>\n<dt id=\"which%20presentation%20should%20i%20choose%3F\"><h3>Which presentation should I choose?<\/h3><\/dt>\n<dd><p>Google's official button is drawn by Google, in each reader's own language, and changes when Google changes it. The compact pill sits in a byline or next to a date; the promotional card is a house-ad panel for mid-article or the end of a story \u2014 both are drawn by the plugin and carry Google's G. The plain card, inline button, text link and the card in your own colours carry no Google logo and follow your theme. Every one of them opens the same Google screen; the settings screen previews each before you save.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20and%20cdns%3F\"><h3>Does it work with caching and CDNs?<\/h3><\/dt>\n<dd><p>Yes. Every visitor gets the same HTML, and whether a particular reader sees the prompt is decided in their browser. Clear your cache after you change a setting.<\/p><\/dd>\n<dt id=\"can%20i%20control%20which%20posts%20or%20categories%20show%20it%3F\"><h3>Can I control which posts or categories show it?<\/h3><\/dt>\n<dd><p>Yes. Automatic placement can run before or after articles, on the post types you choose, and \u2014 for posts \u2014 only in, or except in, the categories you choose. You can also place a block or shortcode by hand and leave automatic placement off.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20button%20i%20already%20have%3F\"><h3>Can I use a button I already have?<\/h3><\/dt>\n<dd><p>Yes. Tick \"Open the preferred sources card\" on a core Button block, or give a page-builder button the class <code>psfp-trigger<\/code>. You can also choose \"Card, your own colours\" in the plugin's block.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%20or%20page%20builder%3F\"><h3>Does it work with my theme or page builder?<\/h3><\/dt>\n<dd><p>It inherits your theme's fonts and colors and sets nothing globally. For a page-builder button, use the class <code>psfp-trigger<\/code>. Tested with Twenty Twenty-Five, Twenty Twenty-Four and Twenty Twenty-One, and exercised with Kadence.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20google%27s%20script%20doesn%27t%20load%3F\"><h3>What happens if Google's script doesn't load?<\/h3><\/dt>\n<dd><p>Readers get a link to Google's Source Preferences page instead, opened in a new tab. If JavaScript is off entirely, that link is what they see in the first place.<\/p><\/dd>\n<dt id=\"what%20does%20the%20analytics%20tab%20count%3F\"><h3>What does the Analytics tab count?<\/h3><\/dt>\n<dd><p>How often each prompt was on screen (half of it visible for a second \u2014 the same rule ad servers use), how often it was pressed, how often Google's flow was opened, and how often it was closed, as day-by-day totals for the last thirty days. They are first-party counts of what happened on your own pages, not audited, and not comparable to Google's own reporting. Google's own button is drawn and handled by Google, so its presses cannot be counted here and its row shows only how often it was on screen.<\/p><\/dd>\n<dt id=\"does%20sourcesignal%20know%20whether%20someone%20completed%20the%20final%20google%20selection%3F\"><h3>Does SourceSignal know whether someone completed the final Google selection?<\/h3><\/dt>\n<dd><p>No. Google does not tell publishers that. SourceSignal can count that a prompt was on screen, pressed, or opened Google's flow, and remember in the reader's browser that it was pressed or closed. None of that is a confirmed add, and the plugin never reports one.<\/p><\/dd>\n<dt id=\"i%20upgraded%20from%201.0%20and%20my%20articles%20look%20different.\"><h3>I upgraded from 1.0 and my articles look different.<\/h3><\/dt>\n<dd><p>They should not. 1.0 kept two presentation settings \u2014 one for automatic placement, one for the block and shortcode \u2014 and 1.1 has one. If your two 1.0 values were the same, nothing changed. If they differed, the upgrade kept the one your articles were already showing and the settings screen tells you once which one it kept, with the other one click away.<\/p><\/dd>\n<dt id=\"can%20i%20promote%20preferred%20sources%20through%20email%2C%20social%20or%20print%3F\"><h3>Can I promote Preferred Sources through email, social or print?<\/h3><\/dt>\n<dd><p>Not in the free plugin. It puts buttons and prompts on your WordPress site. SourceSignal Pro is being built for newsletters, social and print. It is coming, and it is not yet for sale.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Two presentations drawn by the plugin and carrying Google's G: a compact pill that sits in a byline or a header, and a promotional card for mid-article or the end of a story. Google's own button, the card, the inline button, the text link and the card in your own colours are unchanged.<\/li>\n<li>Counting, on by default and switchable off: how many times each prompt was on screen (half of it visible for a second, the same rule your ad server uses), pressed, and opened Google's flow \u2014 kept as day-by-day totals in one table on your site, with nothing about any reader in it. The Analytics tab shows the last thirty days and says plainly what the numbers are not: Google does not report whether anyone completed the add, so there is no conversion rate and never will be. Google's own button is handled by Google, so its row shows impressions only rather than an invented click rate.<\/li>\n<li>Optional forwarding of the same events to the Google Analytics tag your site already runs \u2014 off by default, switched on with a checkbox on the Analytics tab or the <code>psfp_ga4_enabled<\/code> filter. It sends which prompt, where it sat and its position, and nothing about the reader.<\/li>\n<li>Every event is also announced to other plugins through <code>psfp_event<\/code>, with a documented, versioned shape, so a publisher's own logging can listen without this plugin knowing.<\/li>\n<li>One presentation for the whole site. \"Presentation\" and \"Which presentation\" were two settings for the same thing \u2014 the preview followed one, articles followed the other. There is one now, chosen next to the preview; any block or shortcode can still be set differently, and the block's presentation control gained \"Use the site default\". A site whose two 1.0 values differed keeps what its articles showed and is told once, with the other value one click away. Developers who want automatic placement to differ have the <code>psfp_auto_style<\/code> filter.<\/li>\n<li>The settings screen is four tabs \u2014 Placement, Appearance, Analytics, Advanced \u2014 with the preview beside all of them. Controls that only apply to one presentation appear with it, and saving returns you to the tab you were on.<\/li>\n<li>The preview draws the prompt in a content column at a phone, an article or the full width, and, for Google's button, puts a labelled stand-in at the button's footprint. The stand-in is drawn by the plugin in its own words \u2014 no Google artwork, and still nothing loaded from Google inside wp-admin.<\/li>\n<li>Unticking \"Draw a border around it\" now changes the preview before you save.<\/li>\n<li>The block is now called \"Preferred Sources button\", and the screens say button, prompt and card rather than \"invitation\".<\/li>\n<li>The reporting table's styling arrives through the enqueued admin stylesheet, and the plugin's front-end bootstrap is printed through WordPress's own inline-script printer so content-security-policy nonces apply to it.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>A setup wizard: eight plain questions, a live preview, and a last step that turns it on. Nothing changes on your site until that step, and an existing install is never redirected into it.<\/li>\n<li>The preview on the settings screen and in the wizard now follows every change instantly, including the presentation, rendered by the same code as the front end.<\/li>\n<li>Automatic placement can be limited to, or kept out of, particular categories.<\/li>\n<li>A suggested privacy-policy paragraph under Settings \u2192 Privacy, written for the site's own settings.<\/li>\n<li>Alignment now moves Google's own button as well as the plugin's presentations.<\/li>\n<li>Nothing is written to a reader's browser when both \"asking again\" windows are set to \"Keep showing it\".<\/li>\n<li>The settings screen says what was corrected when a colour, domain or language tag could not be used, reminds you about page caches after a save, and states plainly when Google's library is being loaded on every page.<\/li>\n<li>Uninstalling now also removes the record of whether setup was run.<\/li>\n<li>A backslash typed into the heading, text or button label now survives saving; a suppression window set outside the dropdown's choices (for example from WP-CLI) is no longer reset to \"Keep showing it\" on the next save.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Google's own button is left alone. The plugin no longer waits six seconds, guesses whether Google's control rendered, and adds its own link beside it \u2014 a live beta showed that guess was wrong on a working button in every browser it was tried in, including one already reading \"Added to Preferred Sources\".<\/li>\n<li>The link beside Google's button is now shown only when Google's library never loads at all, which is the one case where there is definitely no button to press.<\/li>\n<li>Asset version bumped so browsers and CDNs pick up the new script and stylesheet rather than a cached 0.1.0 copy.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Close button on the card and \"your own design\" presentations, so the \"hide it after a reader closes it\" setting has something to act on.<\/li>\n<li>Google's own button falls back to a link if the library never fills its slot.<\/li>\n<li>Automatic placement stays out of excerpts and out of query loops inside an article.<\/li>\n<li>Automatic placement stands down on an article that already contains a block or shortcode \u2014 the one the publisher placed wins.<\/li>\n<\/ul>","raw_excerpt":"Add Google Preferred Sources to your WordPress site in minutes \u2014 no coding or developer required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365855"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hoorayplugins"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365855"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365855"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365855"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365855"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365855"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}