Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google analytics 如果发生(崩溃和)异常,Google Analytics可以给我发电子邮件吗?_Google Analytics - Fatal编程技术网

Google analytics 如果发生(崩溃和)异常,Google Analytics可以给我发电子邮件吗?

Google analytics 如果发生(崩溃和)异常,Google Analytics可以给我发电子邮件吗?,google-analytics,Google Analytics,Google Analytics正确地报告了我的Android应用程序引发的异常。我可以使用预定的电子邮件将此报告发送给我。然而,在没有任何需要报告的情况下(即,报告告诉我没有发生异常)每天收到一封电子邮件是乏味的。因此,我只希望在有需要报告的情况下接收电子邮件(即,报告告诉我发生了一个或多个异常)。似乎可以将自定义警报用于此目的。但是,自定义警报似乎与异常不兼容。这就引出了我的问题 是否可以将自定义警报配置为在异常情况下提供电子邮件通知? 或者,更一般地说 是否可以将Google Analyt

Google Analytics正确地报告了我的Android应用程序引发的异常。我可以使用预定的电子邮件将此报告发送给我。然而,在没有任何需要报告的情况下(即,报告告诉我没有发生异常)每天收到一封电子邮件是乏味的。因此,我只希望在有需要报告的情况下接收电子邮件(即,报告告诉我发生了一个或多个异常)。似乎可以将自定义警报用于此目的。但是,自定义警报似乎与异常不兼容。这就引出了我的问题

是否可以将自定义警报配置为在异常情况下提供电子邮件通知?

或者,更一般地说

是否可以将Google Analytics配置为在异常情况下提供电子邮件通知?

此外,这是否也适用于崩溃

更新(2015年11月22日,2015年12月1日)

(部分)回答。我提供了一个服务器(不是Google Analytics),可以配置为在异常情况下提供电子邮件通知,这对于许多人来说可能是一个足够的解决方案

(几乎是一个)答案。提供了一个,但它不能按原样工作。在这个答案的基础上,我能够在没有异常发生的情况下将Google Analytics配置为电子邮件。这与要求完全相反。不幸的是,当一个或多个异常发生时,我无法收到电子邮件

交替方向。提出了一种新的方法,即使用正常事件,而不是异常事件。我还没试过这个方向


尚未提出完整的解决方案。

这是可能的,但不是直接的,你必须把你的分析连接起来

1) 分析管理中的配置 在管理->查看->过滤器->自定义->高级中创建两个过滤器

创建侦听hitType异常的筛选器并设置事件类别-异常

创建将异常描述复制到事件操作的筛选器

2) 创建自定义目标 在管理->查看->目标->自定义->事件中创建两个过滤器

事件类别等于异常

3) 创建自定义警报 包含异常的目标自定义警报

别忘了你的电子邮件


试试这个,让我知道

要获取邮件Id报告,无法直接从google analytics发送。我们可以将此错误报告发送到我们的应用程序,并通过编程将其发送到邮件id。

可以配置服务器(而不是Google Analytics)以提供异常情况下的电子邮件通知,这对于许多人来说可能是一个足够的解决方案

首先,您需要一个可以创建的服务帐户。您将创建一个密钥文件(
MyAnalytics.p12

其次,我们配置分析客户端(
MyAnalytics.php
):


第四,将cron配置为运行
exceptions.php
(cf.)。

唯一让我困惑的步骤是“事件类别等于异常”。此外,似乎没有必要“添加电子邮件地址”,因为电子邮件地址已经注册。(也许你可以为未来的读者添加一些额外的细节。)我现在需要测试它是否有效!它似乎不起作用:我触发了异常(由分析报告),但我没有收到电子邮件。你能修改发送异常点击的代码吗?是的,我可以修改代码,但有一些限制。然而,我不认为是这样。正如我上面提到的,唯一让我困惑的是“事件类别等于异常”,我假设这意味着:在步骤2中,定义“类别”等于“异常”。然而,当我“验证这个目标”时,我得到了“0%的转化率”,这可能是不对的。(我怀疑应该改为设置大于“0”的“值”,这将产生“25%转换率”。)我可以进行修改,添加带有Exception调用的正常事件,其中将有EventCategory Eception,EventAction-ExceptionDescription,您可以移除过滤器,只需保持目标和警报开启。此代码允许应用程序向Google Analytics报告,但不会发送解决问题的消息。以上答案已编辑。它肯定包含错误。例如,可以直接从Google Analytics发送电子邮件。这在某些方面也是荒谬的——至少对我来说是这样。
<?php
//You'll need to install google-api-php-client 
//(https://github.com/google/google-api-php-client)
require_once 'Google/autoload.php';

class MyAnalytics
{
    //When logged into Google Analytics you'll have a URL that looks
    //something like https://www.google.com/analytics/web/?authuser=0#home/a00w11p22/
    //Your profile id is everything after the p
    const PROFILE_ID = '22';

    //This is the service account email that you constructed in step 1
    const SERVICE_ACCOUNT_EMAIL = 'blah@developer.gserviceaccount.com';

    //This is the file that you constructed in step 1.
    const KEY_FILE_LOCATION = 'MyAnalytics.p12';

    private $client;
    private $analytics;
    private $cred;

    public function __construct() {
        $this->client = new Google_Client();
        $this->analytics = new Google_Service_Analytics($this->client);
        $key = file_get_contents(self::KEY_FILE_LOCATION);

        $this->cred = new Google_Auth_AssertionCredentials(
          self::SERVICE_ACCOUNT_EMAIL,
          array(Google_Service_Analytics::ANALYTICS_READONLY),
          $key
        );
    }

    public function getAnalytics() {
        $this->client->setAssertionCredentials($this->cred);

        if($this->client->getAuth()->isAccessTokenExpired()) {
           $this->client->getAuth()->refreshTokenWithAssertion($this->cred);
        }

        return $this->analytics;
    }
}

?>
<?php
    require_once 'MyAnalytics.php';

    $myAnalytics = new MyAnalytics();
    $analytics = $myAnalytics->getAnalytics();

    $results = $analytics->data_ga->get(
         'ga:' . MyAnalytics::PROFILE_ID,
         'yesterday',
         'today',
         'ga:exceptions'
    );

    $a = $results->getTotalsForAllResults();
    $count = $a['ga:exceptions'];

    echo $count;

    if (is_numeric($count) && $count > 0) {
        //handle the exception, e.g., send an email
        //(cf. https://stackoverflow.com/a/5335311/3664487)
    }       
?>