analytics - 使用 Google Analytics 跟踪桌面应用程序

标签 analytics

我想跟踪一个 C++ 桌面应用程序。我在 Google Analytics 上创建了一个帐户,但我只看到 2 个选择:跟踪网站或移动应用程序。我选择了移动应用程序,我收到了一个像 UA-xxxxxxxx-x 这样的 ID。现在,我想知道是否可以使用该 ID 跟踪桌面应用程序,以及如何跟踪。我在论坛上看到了几个例子,但每次都指定了一个网站,但就我而言,我没有任何网站,我只想获得有关我的应用程序的统计信息(使用的功能等......)。

然后我尝试了这个我在Qt中找到的例子(当然没有最终值)

void Analytics::initialize()
{
    m_manager = new QNetworkAccessManager(this);
    // Call slot_receive() when reply is received
    QObject::connect(m_manager, SIGNAL(finished(QNetworkReply *)),
                     this, SLOT(slot_receive(QNetworkReply *)));

    // Send requests to Google Analytics while app is running
    QTimer * timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(slot_requestAnalyticsView()));
    timer->start(5 * 60 * 1000); // send requests every 5 minutes
    slot_requestAnalyticsView(); // send first request
} 


void Analytics::slot_requestAnalyticsView()
{
    // create request and set URL of receiver
    QNetworkRequest request;
    QUrl host("http://www.google-analytics.com/collect");
    request.setUrl(host);
    request.setHeader(QNetworkRequest::ContentTypeHeader,
                      "application/x-www-form-urlencoded");

    // setup parameters of request
    QString requestParams;
    requestParams += "v=1"; // version of protocol
    requestParams += "&t=pageview"; // type of request
    requestParams += "&tid="; // Google Analytics account
    requestParams += ANALYTICS_ID;

    requestParams += "&cid=";
    requestParams += getMacAddress(); // unique user identifier
    requestParams += "&dp=foobar"; // name of page (or app name)
    requestParams += "&ul=" + QLocale::system().name(); // language

    // send request via post method

    QString qPost = request.url().toString() + QString( "?" ) + requestParams;
    qDebug() << "\nPOST = " << qPost << "\n";
    m_manager->post(request, requestParams.toStdString().c_str());
} 

void Analytics::slot_receive(QNetworkReply * reply)
{
     // Output information about reply
    qDebug()<<"RequestUrl:" << reply->request().url();
    qDebug()<<"Status:" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
    qDebug()<<"Error:"<< reply->error();
    QByteArray bytes=reply->readAll();
    qDebug()<<"Contents" << QString::fromUtf8(bytes.data(), bytes.size());
} 

我将该代码放在我的应用程序中,但每次我执行它时,都不会调用“slot_receive”,而且我在 Google Analytics 上的统计页面也没有任何变化。

谢谢。

最佳答案

还有c++ client对于Qmonix分析。

目前客户端只能在 POSIX 兼容的操作系统上工作,并且依赖 libcurl 进行 HTTP 通信。但我相信它也可以轻松移植以支持其他平台。

简而言之,Qmonix 是一种分析 SDK,它提供可安装在您自己机器上的服务器软件,不涉及云服务。它使用 HTTP 进行通信。 Qmonix 允许自定义事件,它不是特定于 Web 或移动设备的(尽管有 JavaScript 和 Android 库)。

关于analytics - 使用 Google Analytics 跟踪桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147671/

相关文章:

android - 事件未显示在 firebase 上

android - 如何跟踪 Amazon SNS 发送的打开的推送通知

testing - 质量检查-网站分析测试-如何扩展我对此的知识?

javascript - analytics.js 的 SegmentIO 开源版本设置问题

python - 报告生成器的建议(Python 或 Web 服务)

php - 跟踪用户 - 自定义 PHP/MySQL 网站分析

PHP 页面点击数据库中的计数器

javascript - 如何跟踪一个 Facebook 广告在不同页面上的多次转化?

javascript - 跟踪用户操作 - 应用程序分析

azure - 如何在不显式指定名称的情况下将 json 键值对投影到列