可以在 C# WinForms 环境中使用“Clicky Web Analytics”吗?
我唯一能发现的是网站的 HTML 代码片段。
它们也接受 HTTP 请求,但我相信它们只是用于轮询数据,而不是用于将新事件/统计信息推送到 Clicky。
我意识到它可能被称为“Clicky Web Analytics”是有原因的(即仅基于网站/网络应用程序的统计跟踪),但我现在真的可以使用 C# 解决方案。
可以在 C# WinForms 环境中使用“Clicky Web Analytics”吗?
我唯一能发现的是网站的 HTML 代码片段。
它们也接受 HTTP 请求,但我相信它们只是用于轮询数据,而不是用于将新事件/统计信息推送到 Clicky。
我意识到它可能被称为“Clicky Web Analytics”是有原因的(即仅基于网站/网络应用程序的统计跟踪),但我现在真的可以使用 C# 解决方案。
以下是如何跟踪从 C# 到 clicky 站点的自定义事件:
private static void TrackStatWithClicky(string eventValue)
{
// Prepare HTTP request
WebRequest request = WebRequest.Create
(
"http://in.getclicky.com/in.php?" +
"site_id=" + ClickySiteID + //click site id , found in preferences
"&sitekey_admin=" + ClickySiteAdminKey + //clicky site admin key, found in preferences
"&ip_address=" + GetLocalIPAddressString() + //ip address of the user - used for mapping action trails
"&type=custom" +
"&href=" + eventValue.Replace(" ", "_") + //string that contains whatever event you want to track/log
"&title=APPNAME Action" +
"&type=click"
);
request.Method = "GET";
// Get response
WebResponse response = request.GetResponse();
response.Close();
}
public static string GetLocalIPAddressString()
{
if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
{
return "";
}
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
return host.AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork).ToString();
}
这里的一些信息有助于弄清楚: https ://clicky.com/help/custom/manual#internal
他们似乎有一个用于手动数据记录的 API 。具体来说,他们提到了记录内部事件:
从内部脚本记录数据
Clicky 允许您记录来自内部脚本的数据,例如 PHP、ASP、Perl 等。其他服务不提供此功能,因为它们不记录传入的“API”,它们只验证来自引用者的传入数据。Clicky是不同的。
似乎确实为您的后端网络服务器脚本也提供了用户数据,但我很确定您可以使用任何您喜欢的语言进行 Web API 调用,包括 WinForms 脚本。不是它的真正用途,但是嘿,为什么不呢?只需发出带有 URL 编码参数的 GET 请求:
如何与我们的跟踪服务器交谈
您要交谈的页面位于
http://in.getclicky.com/in.php
。这与我们的跟踪代码对话的脚本相同。您只需要发送正确的参数,我们就会记录下来。
因此,您需要将他们的示例PHP 脚本移植到 C# 中,这样就可以了。