{"id":355794,"date":"2026-08-21T12:25:49","date_gmt":"2026-08-21T12:25:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hoverecho-ads\/"},"modified":"2026-08-24T03:49:43","modified_gmt":"2026-08-24T03:49:43","slug":"hoverecho-ads","status":"publish","type":"plugin","link":"https:\/\/fuc.wordpress.org\/plugins\/hoverecho-ads\/","author":23549480,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.3","stable_tag":"2.0.3","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"HoverEcho Ads","header_author":"M. Atlas Technologies, LLC","header_description":"Connect your HoverEcho account, manage campaigns, and publish voice-powered interactive ads on WordPress \u2014 no embed code copy\/paste required.","assets_banners_color":"cfcfcf","last_updated":"2026-08-24 03:49:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/hoverecho.com\/wordpress-plugin","header_author_uri":"https:\/\/hoverecho.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":81,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.2":{"tag":"2.0.2","author":"hoverecho","date":"2026-08-21 12:25:28","revision":3658976},"2.0.3":{"tag":"2.0.3","author":"hoverecho","date":"2026-08-24 03:49:43","revision":3662562}},"upgrade_notice":{"2.0.3":"<p>Readme and WordPress.org page updates only. No code changes required to update.<\/p>","2.0.2":"<p>Text domain is now hoverecho-ads. Reconnect is unchanged.<\/p>","2.0.1":"<p>Connect still uses hoverecho.com. Affiliate tracking is not included. Reconnect from HoverEcho \u2192 Dashboard if the stored token is missing after update.<\/p>","2.0.0":"<p>Replaces the embed-code paste workflow with account connection inside WordPress.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3662562,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3662562,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3662562,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3662562,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"hoverecho\/ad":{"name":"hoverecho\/ad","title":"HoverEcho Ad"}},"tagged_versions":["2.0.2","2.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3658976,"resolution":"1","location":"assets","locale":"","width":1094,"height":1002},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3658976,"resolution":"2","location":"assets","locale":"","width":2328,"height":1762},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3658976,"resolution":"3","location":"assets","locale":"","width":2246,"height":1142},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3658976,"resolution":"4","location":"assets","locale":"","width":2270,"height":1438},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3658976,"resolution":"5","location":"assets","locale":"","width":1204,"height":540},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3658976,"resolution":"6","location":"assets","locale":"","width":2074,"height":1136}},"screenshots":{"1":"HoverEcho Dashboard \u2014 Connect Account (wp-admin login to HoverEcho)","2":"Campaign list after connecting, with Add to site","3":"Create campaign form in wp-admin","4":"Site placement settings (pages and position)","5":"Gutenberg \u201cHoverEcho Ad\u201d block in the editor","6":"Public page with a placed HoverEcho campaign \/ widget"}},"plugin_section":[],"plugin_tags":[321,368,452,148076,4013],"plugin_category":[35,50],"plugin_contributors":[276823],"plugin_business_model":[],"class_list":["post-355794","plugin","type-plugin","status-publish","hentry","plugin_tags-ads","plugin_tags-advertising","plugin_tags-audio","plugin_tags-gutenberg","plugin_tags-voice","plugin_category-advertising","plugin_category-media","plugin_contributors-hoverecho","plugin_committers-hoverecho"],"banners":{"banner":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/banner-772x250.png?rev=3662562","banner_2x":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/banner-1544x500.png?rev=3662562","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/icon-128x128.png?rev=3662562","icon_2x":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/icon-256x256.png?rev=3662562","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-1.png?rev=3658976","caption":"HoverEcho Dashboard \u2014 Connect Account (wp-admin login to HoverEcho)"},{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-2.png?rev=3658976","caption":"Campaign list after connecting, with Add to site"},{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-3.png?rev=3658976","caption":"Create campaign form in wp-admin"},{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-4.png?rev=3658976","caption":"Site placement settings (pages and position)"},{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-5.png?rev=3658976","caption":"Gutenberg \u201cHoverEcho Ad\u201d block in the editor"},{"src":"https:\/\/ps.w.org\/hoverecho-ads\/assets\/screenshot-6.png?rev=3658976","caption":"Public page with a placed HoverEcho campaign \/ widget"}],"raw_content":"<!--section=description-->\n<h4>Your Website Can Now Speak<\/h4>\n\n<p>HoverEcho adds an interactive audio layer to WordPress. Visitors can hear a short spoken message when they hover over an advertisement or website element\u2014before they decide whether to click.<\/p>\n\n<p>On supported devices, HoverEcho can respond to desktop hover, mobile touch-and-hold, and keyboard focus.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=bpzEZO_Bk8k<\/p>\n\n<h4>What Can HoverEcho Make Speak?<\/h4>\n\n<ul>\n<li>Digital advertisements<\/li>\n<li>Buttons and calls to action<\/li>\n<li>Menus and navigation choices<\/li>\n<li>Product and featured-content cards<\/li>\n<li>Forms and input fields<\/li>\n<li>Pricing options<\/li>\n<li>Other selected website elements<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate HoverEcho Ads.<\/li>\n<li>Connect the plugin to your HoverEcho account.<\/li>\n<li>Create or select a campaign.<\/li>\n<li>Add a written message for text-to-speech, or upload recorded audio.<\/li>\n<li>Select where the experience should appear.<\/li>\n<li>Publish it to your WordPress website.<\/li>\n<\/ol>\n\n<p>No copying and pasting embed code is required.<\/p>\n\n<h4>Why Use HoverEcho?<\/h4>\n\n<ul>\n<li>Let visitors hear an explanation before clicking.<\/li>\n<li>Add audio to advertisements without changing the original creative.<\/li>\n<li>Explain buttons, menus, products, prices, and forms at the point of decision.<\/li>\n<li>Use text-to-speech or your own recorded audio.<\/li>\n<li>Manage campaigns from one HoverEcho account.<\/li>\n<li>Create a more understandable and engaging website experience.<\/li>\n<\/ul>\n\n<h4>HoverEcho Account and Subscription<\/h4>\n\n<p>This plugin connects your WordPress website to the HoverEcho hosted service. A HoverEcho account is required.<\/p>\n\n<p>New customers receive a 30-day free trial. Unless cancelled, the selected paid subscription begins automatically on day 31. Customers may cancel before the trial ends to avoid being charged.<\/p>\n\n<ul>\n<li>Create a HoverEcho account: https:\/\/hoverecho.com\/signup<\/li>\n<li>Pricing: https:\/\/hoverecho.com\/pricing<\/li>\n<li>Terms of Service: https:\/\/hoverecho.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/hoverecho.com\/privacy<\/li>\n<\/ul>\n\n<p>The WordPress plugin is the installation and connection component for the HoverEcho service. HoverEcho is not a free product.<\/p>\n\n<h4>Free Setup Support<\/h4>\n\n<p>We will help new customers connect their websites and publish their first HoverEcho experience during the 30-day trial.<\/p>\n\n<ul>\n<li>Email: Support@HoverEcho.com<\/li>\n<li>Plugin and setup help: https:\/\/hoverecho.com\/wordpress-plugin<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<ul>\n<li>HoverEcho \u2192 Dashboard: connect, disconnect, campaigns, create campaign, site placement<\/li>\n<li>HoverEcho \u2192 Settings: explanation of the HoverEcho connection (no custom host settings)<\/li>\n<\/ul>\n\n<p>Disconnect removes the stored token and connected-account fields from this WordPress site.<\/p>\n\n<p>Deleting the plugin (uninstall) removes:<\/p>\n\n<ul>\n<li>hoverecho_settings<\/li>\n<li>hoverecho_auth<\/li>\n<li>hoverecho_placements<\/li>\n<li>hoverecho_campaign_cache<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin stores data in WordPress only after an administrator connects a HoverEcho account.<\/p>\n\n<p>Stored in WordPress (<code>hoverecho_auth<\/code>):<\/p>\n\n<ul>\n<li>Encrypted HoverEcho API token<\/li>\n<li>HoverEcho user id<\/li>\n<li>Email<\/li>\n<li>First name (if provided by the login response)<\/li>\n<li>Last name (if provided)<\/li>\n<li>Subscription plan name (if provided)<\/li>\n<li>Connected-at timestamp<\/li>\n<\/ul>\n\n<p>Also stored:<\/p>\n\n<ul>\n<li>hoverecho_settings (plugin settings)<\/li>\n<li>hoverecho_placements (which campaign is shown and where)<\/li>\n<li>hoverecho_campaign_cache (transient campaign list for the block\/widget, 5 minutes)<\/li>\n<\/ul>\n\n<p>What is sent to HoverEcho on Connect:<\/p>\n\n<ul>\n<li>Email<\/li>\n<li>Password<\/li>\n<li>rememberMe (boolean)<\/li>\n<\/ul>\n\n<p>What may be sent later from wp-admin (while connected), depending on the action:<\/p>\n\n<ul>\n<li>Campaign fields such as name, dates, text message, language, voice, translation flags, receiving site URL (defaults to this WordPress site\u2019s home URL), and related create\/update fields<\/li>\n<li>Requests to list campaigns, templates, TTS voices, and translation languages<\/li>\n<\/ul>\n\n<p>What may be sent from the public site after a campaign is placed:<\/p>\n\n<ul>\n<li>A request for public campaign data (campaign ID)<\/li>\n<li>Optional tracking POSTs that include the current page URL (<code>websiteUrl<\/code>) for hover\/click-style events implemented by the widget<\/li>\n<\/ul>\n\n<p>The plugin registers WordPress privacy policy helper text, a personal data exporter, and a personal data eraser for the connected HoverEcho email. Disconnect or uninstall deletes the local token and connected-account option. That does not automatically delete the HoverEcho account on hoverecho.com.<\/p>\n\n<p>HoverEcho service Privacy Policy: https:\/\/hoverecho.com\/privacy\nHoverEcho service Terms of Service: https:\/\/hoverecho.com\/terms<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin communicates with the HoverEcho service operated at https:\/\/hoverecho.com<\/p>\n\n<p>Base API: https:\/\/hoverecho.com\/api\nHTTP from WordPress uses the WordPress HTTP API (wp_remote_request).<\/p>\n\n<h4>1. Administrator Connect (required for Dashboard features)<\/h4>\n\n<p>POST https:\/\/hoverecho.com\/api\/auth\/login<\/p>\n\n<p>JSON body sent:<\/p>\n\n<ul>\n<li>email<\/li>\n<li>password<\/li>\n<li>rememberMe<\/li>\n<\/ul>\n\n<p>Response used by the plugin: token and user object. The token is encrypted and stored in WordPress. The password is not stored.<\/p>\n\n<h4>2. Administrator Dashboard (only while connected)<\/h4>\n\n<p>Authenticated with header: Authorization: Bearer {token}<\/p>\n\n<ul>\n<li>GET https:\/\/hoverecho.com\/api\/auth\/profile<\/li>\n<li>GET https:\/\/hoverecho.com\/api\/campaigns<\/li>\n<li>GET https:\/\/hoverecho.com\/api\/campaigns\/{id}<\/li>\n<li>POST https:\/\/hoverecho.com\/api\/campaigns\/create-enhanced<\/li>\n<li>PUT https:\/\/hoverecho.com\/api\/campaigns\/{id}<\/li>\n<li>DELETE https:\/\/hoverecho.com\/api\/campaigns\/{id}<\/li>\n<li>GET https:\/\/hoverecho.com\/api\/templates<\/li>\n<li>GET https:\/\/hoverecho.com\/api\/campaigns\/tts\/voices<\/li>\n<li>GET https:\/\/hoverecho.com\/api\/campaigns\/translate\/languages<\/li>\n<\/ul>\n\n<h4>3. Public pages (only if a campaign is rendered)<\/h4>\n\n<p>Script loaded:<\/p>\n\n<p>https:\/\/hoverecho.com\/embed\/hoverecho-widget.js<\/p>\n\n<p>The widget then calls:<\/p>\n\n<ul>\n<li>GET https:\/\/hoverecho.com\/api\/campaigns\/public\/{campaignId}<\/li>\n<li>POST https:\/\/hoverecho.com\/api\/campaigns\/{campaignId}\/track-{eventType}\nJSON body: { \"websiteUrl\": \"\" }<\/li>\n<\/ul>\n\n<h4>Service links<\/h4>\n\n<ul>\n<li>Service: https:\/\/hoverecho.com<\/li>\n<li>Privacy Policy: https:\/\/hoverecho.com\/privacy<\/li>\n<li>Terms of Service: https:\/\/hoverecho.com\/terms<\/li>\n<li>Sign up: https:\/\/hoverecho.com\/signup<\/li>\n<li>Sign in: https:\/\/hoverecho.com\/signin<\/li>\n<li>Plugin page: https:\/\/hoverecho.com\/wordpress-plugin<\/li>\n<li>Pricing page (HoverEcho website, not this plugin): https:\/\/hoverecho.com\/pricing<\/li>\n<li>Support email: Support@HoverEcho.com<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>hoverecho<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install the ZIP via Plugins \u2192 Add New \u2192 Upload Plugin).<\/li>\n<li>Activate the plugin through the Plugins menu.<\/li>\n<li>In wp-admin, go to HoverEcho \u2192 Dashboard.<\/li>\n<li>Click Connect Account and sign in with a HoverEcho email and password.\nConnecting sends that email and password to https:\/\/hoverecho.com\/api\/auth\/login. See External Services.<\/li>\n<li>After connecting, select or create a campaign and click Add to site, or insert the shortcode, block, or widget.<\/li>\n<\/ol>\n\n<p>No API URL field is required. The plugin is hardcoded to:<\/p>\n\n<ul>\n<li>https:\/\/hoverecho.com<\/li>\n<li>https:\/\/hoverecho.com\/api<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20hoverecho%20account%3F\"><h3>Do I need a HoverEcho account?<\/h3><\/dt>\n<dd><p>Yes. Create one at https:\/\/hoverecho.com\/signup or connect an existing account from HoverEcho \u2192 Dashboard.<\/p><\/dd>\n<dt id=\"do%20you%20offer%20setup%20help%20for%20new%20customers%3F\"><h3>Do you offer setup help for new customers?<\/h3><\/dt>\n<dd><p>Yes. Free Setup Support is included during the 30-day trial. Email Support@HoverEcho.com or visit https:\/\/hoverecho.com\/wordpress-plugin.<\/p><\/dd>\n<dt id=\"do%20i%20still%20paste%20embed%20code%3F\"><h3>Do I still paste embed code?<\/h3><\/dt>\n<dd><p>No. Current versions place campaigns by campaign ID.<\/p><\/dd>\n<dt id=\"is%20my%20hoverecho%20password%20stored%20in%20wordpress%3F\"><h3>Is my HoverEcho password stored in WordPress?<\/h3><\/dt>\n<dd><p>No. After a successful login, WordPress stores an encrypted API token (the token returned by HoverEcho login) plus a small user summary (id, email, first name, last name, subscription plan). The password is sent only to https:\/\/hoverecho.com\/api\/auth\/login at connect time and is not saved in WordPress options.<\/p><\/dd>\n<dt id=\"how%20is%20the%20token%20stored%3F\"><h3>How is the token stored?<\/h3><\/dt>\n<dd><p>The token is encrypted with AES-256-CBC using a key derived from WordPress AUTH_KEY (or wp_salt('auth') if AUTH_KEY is the default placeholder). It is saved in the <code>hoverecho_auth<\/code> option. Admin screens talk to this site\u2019s WordPress REST API (<code>hoverecho\/v1<\/code>). Those routes require the <code>manage_options<\/code> capability and the WordPress REST nonce. WordPress then calls HoverEcho with the decrypted token as a Bearer token. The admin JavaScript does not receive the HoverEcho JWT.<\/p><\/dd>\n<dt id=\"when%20does%20the%20plugin%20contact%20hoverecho.com%3F\"><h3>When does the plugin contact hoverecho.com?<\/h3><\/dt>\n<dd><p>Activating the plugin does not send data to HoverEcho.<\/p>\n\n<p>HoverEcho is contacted when:<\/p>\n\n<ul>\n<li>An administrator clicks Connect (login)<\/li>\n<li>An administrator uses Dashboard features that load or change campaigns (list, create, delete, templates, voices, languages)<\/li>\n<li>A campaign is output on a public page (widget script + public campaign request + optional event tracking)<\/li>\n<\/ul><\/dd>\n<dt id=\"who%20can%20use%20the%20dashboard%3F\"><h3>Who can use the Dashboard?<\/h3><\/dt>\n<dd><p>WordPress users with the <code>manage_options<\/code> capability (typically administrators).<\/p><\/dd>\n<dt id=\"what%20shortcode%20is%20supported%3F\"><h3>What shortcode is supported?<\/h3><\/dt>\n<dd><p>[hoverecho campaign_id=\"123\"]<\/p>\n\n<p>Optional attributes: align (left, center, right), width, height.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Email Support@HoverEcho.com\nWebsite: https:\/\/hoverecho.com\nPlugin download page: https:\/\/hoverecho.com\/wordpress-plugin<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Rewrite WordPress.org plugin page for product launch (description, video, subscription disclosure)<\/li>\n<li>Update banner and icon assets on WordPress.org<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Add Privacy Policy and Terms of Service links for HoverEcho external service disclosure<\/li>\n<li>Change text domain to hoverecho-ads to match the WordPress.org plugin slug<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>WordPress.org compliance pass on the current 2.x plugin<\/li>\n<li>Document external HoverEcho API and widget traffic<\/li>\n<li>Add WordPress privacy exporter, eraser, and policy helper text<\/li>\n<li>Remove affiliate\/Reditus tracking from the plugin<\/li>\n<li>Lock API and site host to https:\/\/hoverecho.com (no custom API URL setting)<\/li>\n<li>Sanitize campaign REST payloads<\/li>\n<li>Load public widget CSS\/JS only when a campaign is rendered<\/li>\n<li>Replace inline widget init script with wp_add_inline_script<\/li>\n<li>Fix widget fetch\/audio on localhost publisher sites<\/li>\n<li>Improve wp-admin form layout<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Connected-account dashboard inside WordPress<\/li>\n<li>Campaign list, create, delete, and one-click site placement<\/li>\n<li>Encrypted token storage and WordPress REST API proxy to HoverEcho<\/li>\n<li>Gutenberg block campaign picker<\/li>\n<li>Widget campaign dropdown from the connected account<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release using pasted embed code, shortcode, Gutenberg block, and widget<\/li>\n<\/ul>","raw_excerpt":"Make WordPress ads and website elements speak on hover, touch-and-hold, or keyboard focus\u2014before the visitor clicks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355794"}],"author":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hoverecho"}],"wp:attachment":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355794"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355794"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355794"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355794"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355794"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}