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

后端 未结 3 923
悲&欢浪女
悲&欢浪女 2021-02-12 10:03

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 dai

相关标签:
3条回答
  • 2021-02-12 10:08

    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!

    0 讨论(0)
  • 2021-02-12 10:24

    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.

    0 讨论(0)
  • 2021-02-12 10:24

    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).

    0 讨论(0)
提交回复
热议问题