octfx/plausible

集成plausible分析

安装: 675

依赖项: 0

建议者: 0

安全: 0

星星: 7

关注者: 2

分支: 2

开放问题: 0

类型:mediawiki-extension

1.4.0 2023-12-14 08:29 UTC

This package is auto-updated.

Last update: 2024-09-12 12:21:22 UTC


README

Plausible Analytics是一个简单、轻量级(< 1 KB)、开源且尊重隐私的Google Analytics替代品。它不使用cookies,完全符合GDPR、CCPA和PECR。

查看https://github.com/plausible/analytics

安装

  • 下载、解压并将文件放置在您的extensions/文件夹中名为Plausible的目录下。
  • 在您的LocalSettings.php文件底部添加以下代码
wfLoadExtension( 'Plausible' );  
$wgPlausibleDomain = "https://#";  
$wgPlausibleDomainKey = "mywiki.example.com"; // change to your site address
$wgPlausibleApikey = ''; // Only necessary when using Extension:PageViewInfo
  • 根据需要配置。
  • 完成 - 导航到您的维基百科的Special:Version以验证扩展是否成功安装。

配置

包含的跟踪脚本

以下跟踪模块可以通过在LocalSettings.php中设置提供的配置键为true来激活。

服务器端跟踪

某些事件可以在不依赖包含的plausible客户端脚本的情况下在服务器端发送。

以下自定义事件可以激活

# Default Configuration
$wgPlausibleServerSideTracking = [
    // Event Name: pageview
    'pageview' => false,
    // Event Name: 404 
    'page404' => false,
    // Event Name: Page: Edit 
    'pageedit' => true, // Page has been successfully edited
    // Event Name: Page: Delete
    'pagedelete' => true, // Page has been deleted
    // Event Name: Page: Undelete
    'pageundelete' => true, // Page has been undeleted
    // Event Name: Page: Move
    'pagemove' => true, // Page was moved
    // Event Name: User: Register
    'userregister' => false, // A new user registered
    // Event Name: User: Login
    'userlogin' => false, // A user logged in
    // Event Name: User: Logout
    'userlogout' =>  false, // A user logged out
    // Event Name: File: Upload
    'fileupload' => true, // A file was uploaded
    // Event Name: File: Delete
    'filedelete' => true, // A file was deleted
    // Event Name: File: Undelete
    'fileundelete' => true, // A file was undeleted
    // Event Name: Search: Not found
    'searchnotfound' => true, // A searched term was not found / has no title on the wiki
    // Event Name: Search: Found
    'searchfound' => true, // A searched term was found / has a corresponding title on the wiki
];

事件/目标名称

此扩展选择以下约定来命名事件/目标:主题:事件/操作

跟踪自定义事件

https://github.com/plausible/docs/blob/master/docs/custom-event-goals.md

如果您想跟踪自定义事件目标,如按钮点击或表单完成,您必须使用JavaScript从您的网站触发这些自定义事件。

脚本需要放置在MediaWiki:<Your Skin>.js中,例如MediaWiki:Citizen.js

示例:跟踪Skin:Citizen上的编辑按钮点击。

if (typeof window.plausible === 'undefined') {
    return;
}

document.querySelector('#ca-edit a').addEventListener('click', function (event) {
    plausible('Edit Button: Click');
});

通过CSS类

通过设置$wgPlausibleEnableTaggedEvents = true;,可以跟踪点击元素,通过设置CSS类。请参阅官方文档

您也可以直接在HTML中添加类名。如果您可以编辑要跟踪的元素的原始HTML代码,您也可以直接在HTML中添加类。例如

<!-- before -->
<button>点击我</button>
<!-- after -->
<button class="plausible-event-name=Button+Click">点击我</button>

或者如果您的元素已经有class属性,只需用空格分隔新的类

<!-- before -->
<button class="some-existing-class">点击我</button>

<!-- after -->
<button class="some-existing-class plausible-event-name=Button+Click">点击我</button>

当您向Plausible发送自定义事件时,它们不会自动显示在您的仪表板上。您必须配置目标以使转换数字显示出来。

忽略页面

https://github.com/plausible/docs/blob/master/docs/excluding-pages.md#common-use-cases-and-examples

默认情况下,Plausible Analytics跟踪您安装片段的每个页面。如果您不希望Plausible跟踪特定页面,请勿在这些页面上包含片段。

常见用例和示例

Lua集成

如果Extension:PageViewInfo已激活,plausible公开以下函数

  1. mw.ext.plausible.topPages() 返回过去一天的顶级页面和查看次数。该表按页面查看次数排序,可以使用ipairs迭代。
    示例
local result = mw.ext.plausible.topPages()
> {
  {
    page = "Foo",
    views = 100
  },
  {
    page = "Bar",
    views = 80
  },
  { [...] }
}

或者可以调用此函数以计算过去N天的查看次数,例如mw.ext.plausible.topPages( 30 )
这很昂贵,因为没有使用缓存。

  1. mw.ext.plausible.pageData( titles, days ) 返回过去N天给定标题的页面查看次数。
    示例
local result = mw.ext.plausible.pageData( { "Foo", "Bar" }, 5 )
> {
  ["Foo"] = {
    ["2023-08-04"] = 10,
    ["2023-08-05"] = 1,
    ["2023-08-06"] = 4,
    ["2023-08-07"] = 7,
    ["2023-08-08"] = 1,
    ["2023-08-09"] = 4,
  },
  ["Bar"] = {
    ["2023-08-04"] = 100,
    ["2023-08-05"] = 14,
    ["2023-08-06"] = 54,
    ["2023-08-07"] = 7,
    ["2023-08-08"] = 31,
    ["2023-08-09"] = 1,
  },
}
  1. mw.ext.plausible.siteData( days ) 返回给定过去N天的网站访问量。
    示例
local result = mw.ext.plausible.siteData( 5 )
> {
  ["2023-08-04"] = 10,
  ["2023-08-05"] = 1,
  ["2023-08-06"] = 4,
  ["2023-08-07"] = 7,
  ["2023-08-08"] = 1,
  ["2023-08-09"] = 4,
}