Can Google Analytics email me if (crashes and) exceptions occur?

微笑、不失礼 提交于 2019-12-20 17:31:10

问题


Google Analytics is correctly reporting exceptions thrown by my Android app. And I can use Scheduled Emails to send this report to me. However, receiving a daily email when there isn't anything to report (i.e., the report tells me that zero exceptions occurred) is tedious. Thus, I'd like to receive emails only when there is something to report (i.e., the report tells me that one or more exceptions occurred). It seems that Custom Alerts can be used for this purpose. However, Custom Alerts do not appear to be compatible with Exceptions. This leads me to my question.

Can Custom Alerts be configured to provide email notification on exceptions?

Or, more generally,

Can Google Analytics be configured to provide email notification on exceptions?

Also, does this work for crashes too?

UPDATE (22 Nov 2015, 1 Dec 2015)

(Partial) answer. I provide an answer that enables a server (not Google Analytics) to be configured to provide email notification on exceptions, which is probably a sufficient solution for many.

(Almost an) answer. jakub-kriz has provided a detailed answer, but it does not work as-is. Building upon the answer, I was able to configure Google Analytics to email when no exceptions occur. This is the exact opposite of what is required. Unfortunately, I have been unable to get emails when one or more exceptions occur.

Alternate direction. jakub-kriz has proposed an alternative solution, whereby normal events are used, rather than exception events. I haven't tried this direction.

A complete solution has not yet been proposed.


回答1:


It is possible, but not in a direct way, you have to hookup you analytics quite dirty.

1) Configuration in Analytics Admin

Create two filters in Admin -> View -> Filters -> Custom -> Advanced

Create filter that listens on hitType exception and set Event Category - Exception

Create filter that replicates Exception description into Event Action

2) Create custom Goal

Create two filters in Admin -> View -> Goals -> Custom -> Event

Event Category equals Exception

3) Create Custom Alert

Custom alert by Goal containg exception

Do not forget your email

Try this and let me know!




回答2:


To get report on Mail Id there is no way to send directly from google analytics. We can send this error report handling it and send it to programmatically to mail id from our app.




回答3:


A server (not Google Analytics) can be configured to provide email notification on exceptions, which is probably a sufficient solution for many.

First, you need a service account, which can be created https://console.developers.google.com/project/_/apiui/credential. You'll create a key file (MyAnalytics.p12).

Secondly, we configure our analytics client (MyAnalytics.php):

<?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;
    }
}

?>

Thirdly, we query and report on exceptions (exceptions.php):

<?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)
    }       
?>

Fourth, configure cron to run exceptions.php (cf. https://stackoverflow.com/a/22358929/3664487).



来源:https://stackoverflow.com/questions/33500003/can-google-analytics-email-me-if-crashes-and-exceptions-occur

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!