Linux 软件免费装
Banner图

Semantic Journey

开发者 hdfraser
更新时间 2026年7月25日 03:54
PHP版本: 7.4 及以上
WordPress版本: 7.0
版权: GPL-2.0+
版权网址: 版权信息

标签

privacy content quality reader progress editorial analytics reader engagement

下载

1.7.1

详情介绍:

Semantic Journey answers questions about your content that conventional analytics answers badly or not at all: what does this content experience look like for real readers, and did they reach the actions that matter to you? Not how many events fired, how long sessions lasted, or how you compare to a benchmark. It is a plain-language, privacy-first alternative to conventional analytics for editorial teams, built around a fixed contract:
  1. Semantic, not mechanical. "Readers reached the end", never "scroll depth exceeded 80%".
  2. Understandable without training. No analytics vocabulary, no dashboards that require interpretation skills.
  3. Outcome-first language. Progress, completion, confidence, clarity, friction. Never metrics, events, rates, or funnels.
  4. Privacy-first by design. No personal data, no identifiers, no cookies, no user tracking, nothing sent to third parties.
  5. Aggregate-only signals. No sessions, no individuals, no cross-page journeys, no behavioral profiling.
  6. Liftable by default. Every module is self-contained and works independently of any other plugin.
Semantic Journey works on any public post type, not only posts and pages: products, portfolio items, or any custom post type your site uses. Reader Progress (module 1) The reference implementation of the contract above. Reader Progress reports four fixed milestones for each piece of content: Detection is content-relative, using IntersectionObserver against the primary content container, never scroll events, scroll percentages, time-on-page, or mouse movement. Milestones fire at most once per page view and are recorded as counts only: no per-event timestamps, no session or user identity of any kind. Decision Point (module 2) A Decision Point marks the moment a reader reached a site-owner-defined action: a "Buy Now" button, a survey link, a phone number. Unlike Reader Progress's four fixed milestones, Decision Point labels are yours to define, and a Decision Point can be reached more than once per page view since each click is a genuine, separate signal. Four ways to mark a Decision Point, in order of precedence: Decision Point data appears as additional columns on the same Reports screen as Reader Progress, and in the same CSV export, built dynamically from whichever labels actually have data in the selected time window. Reports A dedicated Reports screen shows, for any content item, how many readers started, reached the middle, read most, or reached the end, over a 7/30/90-day window, plus a column for each Decision Point label with data in that window, with search, column sorting, and a CSV export. The four Reader Progress columns use plain-language milestone names; there are no rates, percentages, or scores to interpret. Copy prompt for your LLM The Reports screen can build a plain-text summary of exactly what is currently displayed (the full filtered set, not just the current page) for you to paste into an LLM of your choice, if you want a plain-English interpretation of the counts. This plugin does not send this text anywhere itself, there is no outbound link and no third-party integration; it copies to your clipboard only, and where you paste it afterward is entirely your own choice. The built-in instructions ask the LLM not to invent rates or percentages and not to assert a definite cause for any pattern, matching this plugin's own approach to the same data. On the post editor A small sidebar box on the post/page edit screen (and any other trackable post type) confirms whether Reader Progress and Decision Point are recording for that piece of content, showing 30-day counts for each, with a link straight to the filtered Reports screen. Read-only, no fields to fill in. On the Posts and Pages list, and the Dashboard A Semantic Journey column on the Posts/Pages list table (and any other trackable post type) gives an at-a-glance summary without opening each item. A small Dashboard widget shows the top 5 pieces of content by readers reaching the end, over the last 7 days. Privacy and external services This plugin does not send any data to third-party services. All data collected by Reader Progress stays in your own WordPress database, in a dedicated table, as aggregate daily counts. Nothing is shared externally, and no cookies or personal identifiers are used at any point. For developers Other plugins can integrate with Semantic Journey through a small, stable public API (see includes/functions.php): Semantic Journey itself has no concept of licensing, plans, or host-specific gating; that interpretation belongs entirely to the integrating plugin.

安装:

  1. Upload the semantic-journey folder to /wp-content/plugins/, or install it via Plugins > Add New > Upload Plugin.
  2. Activate Semantic Journey through the Plugins menu. Activation creates the wp_reader_progress_daily and wp_decision_points_daily tables and schedules their daily retention-purge events.
  3. Go to Semantic Journey > Settings to confirm Reader Progress and Decision Point are enabled, set your retention windows, and optionally add Decision Point URL pattern rules.
  4. Visit Semantic Journey > Reports to see reader activity once readers have visited your content. No further configuration is required; Reader Progress and automatic tel:/mailto:/sms: link detection both work immediately after activation.

屏幕截图:

  • Settings screen: module toggles, retention window, and uninstall data-removal preference.

升级注意事项:

1.7.1 Email and text message links are now detected automatically, alongside phone numbers. No database changes. 1.7.0 Adds CSS selector rules for Decision Point, for marking buttons and other non-link elements. No database changes. 1.6.4 Fixes a settings sanitization finding from review feedback. No functional impact for normal use. 1.6.3 Fixes a CSV export security issue (formula injection). Recommended for all users of the CSV export feature. 1.6.2 Hardens both REST endpoints against being scripted directly, with no impact on normal use. No database changes. 1.6.1 Fixes a Plugin Check escaping finding. No functional change. 1.6.0 Adds a branded header, a Copy prompt for your LLM feature on Reports, and several accessibility fixes. No database changes. 1.5.1 Fixes a bug that could silently discard a module's enabled/disabled setting outside the Settings screen. No database changes. 1.5.0 Fixes custom post types being tracked but not shown on Reports. Adds a Posts list column, a Dashboard widget, multisite support, and a privacy policy declaration. No database changes. 1.4.0 Adds Decision Point (module 2) and new Decision Point columns on Reports. New database table; no changes to existing Reader Progress data. 1.2.0 Internal standards compliance update. No functional change; safe to upgrade directly. 1.1.0 Adds a Reports screen with CSV export. No database changes; safe to upgrade directly from 1.0.0.

常见问题:

Why did a reader's milestone or click not get recorded?

The most common reason is that JavaScript or a required browser feature was unavailable, described elsewhere in this FAQ. One other case: each submission carries a short-lived security token, similar to how WordPress protects its own forms, which identifies nothing about the visitor but expires roughly a day after the page loaded. If a browser tab is left open far longer than that before a reader reaches a milestone, that one signal is silently not recorded rather than recorded against an expired token. This is intentional: a missing signal in that rare case is preferable to weakening the same check for every other visitor.

Does the Copy prompt for your LLM feature send my data anywhere?

No. It builds a plain-text summary and copies it to your clipboard only. There is no outbound link, no API call, and no third-party integration built into this feature. Whether you paste that text into an LLM afterward, and which one, is entirely your own separate choice.

Does this replace Google Analytics or a similar tool?

No. It answers a narrower, editorial question and is not a general-purpose analytics platform. It has no sessions, no user identity, and no cross-page journeys by design.

Does Reader Progress use cookies?

No. It stores no identifiers of any kind, and no data is shared with any third party.

What happens if a reader has JavaScript or IntersectionObserver disabled?

The module silently disables itself for that page view. No partial or misleading data is ever recorded.

How long is data kept?

90 days by default, on a rolling basis, configurable in Semantic Journey > Settings. Older rows are purged automatically once a day.

What happens to my data if I uninstall the plugin?

By default, nothing is removed, in case you are reinstalling or upgrading. If you want your data removed on uninstall, enable "Remove data on uninstall" in Settings first.

Can a Decision Point be reached more than once by the same visitor?

Yes. A Decision Point is a click on an action, not a reading milestone, so each click is counted, matching how a conversion or goal click is normally understood. This is a deliberate difference from Reader Progress's four milestones, which each fire at most once per page view.

Why isn't my button being recorded as a Decision Point?

URL pattern rules only match real links (an element with an href). Many buttons, especially ones generated by page builders or ones that submit a form via AJAX, are not links at all. For those, use a CSS selector rule instead (Settings > Decision Point), which matches any element, or add a data-sj-decision="Label" attribute directly to the button. If you configured a CSS selector rule and it still is not firing, check your browser's console: an invalid selector is reported there rather than failing with no explanation at all. If the element is a phone number, email, or text message link, no rule is needed at all, those three are detected automatically.

Does this work on a WordPress multisite network?

Yes. Activating network-wide sets up every existing site, and any site created afterward on a network-active install is set up automatically. Each site's data stays separate; there is no cross-site rollup in the free version.

Does this affect my privacy policy?

Semantic Journey adds a short, accurate entry to Tools > Privacy > Policy Guide describing what it does: it does not collect personal data of any kind. You can include this text in your site's privacy policy as-is or edit it to match your own wording.

更新日志:

1.7.1 1.7.0 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.1 1.5.0 1.4.1 1.4.0 1.3.0 1.2.0 1.1.0 1.0.0