it-swarm.com.de

Die Verfolgung von E-Mails wird in Google Analytics geöffnet

Wir haben in unseren E-Mails nachverfolgt, um Klicks über Google Analytics auf unsere Website zurückzuverfolgen. Aber gibt es eine Möglichkeit, Eröffnungen zu verfolgen? Ich könnte mir vorstellen, dass ich irgendwo ein Google-Tracking-Bild zur E-Mail hinzufügen muss. Möglicherweise auch Javascript?

23
at.

Wie bereits erwähnt, können Sie Javascript nicht in E-Mails verwenden. Die eigentliche Verfolgung erfolgt jedoch durch eine Anfrage nach __utm.gif und das Javascript erstellt nur die GET-Parameter.

Google unterstützt die Verwendung von Google Analytics ohne Javascript in seinen Mobile-Webdokumenten: http://code.google.com/mobile/analytics/docs/web/

Sie dokumentieren die vollständige Liste der Parameter , aber die einzigen notwendigen Parameter sind:

Parameter    Description
utmac        Google Analytics account ID
utmn         Random ID to prevent the browser from caching the returned image
utmp         Relative path of the page to be tracked
utmr         Complete referral URL
16
Turadg

Die Referenz, die alle Parameter beschreibt, die das Google Analytics-Tracking-GIF zulässt, ist here . Verwenden Sie diese Option, um in Ihrer E-Mail einen <img>-Tag zu erstellen, der auf die GIF GA verweist.

Gemäß diesem Beitrag sind die mindestens erforderlichen Felder:

  • utmwv = 4,3
  • utmn = <random#> &
  • utmhn = <hostname> &
  • utmhid = <random#> &
  • utmr = - &
  • utmp = <URL> &
  • utmac = UA-XXXX-1 &
  • utmcc = _ utma% 3D<utma cookie>3B% 2B _ utmz% 3D<utmz cookie>% 3B
14
Raleigh Buckner

Das klingt so, als würden Sie Kampagnen-Tracking für GA verwenden, möchten aber auch wissen, wie viele Öffnungen vorhanden waren. Dies ist bei Google Analytics möglich, da sie Seitenzugriffe oder -ereignisse mithilfe von Pixel-Tracking wie alle (ich denke?) E-Mail-Tracking verfolgen. Sie können jedoch kein Javascript verwenden, da dies in einer E-Mail nicht ausgeführt wird.

Verwenden von Google Analytics-Pixel-Tracking: Der einfachste Weg wäre, Browserentwickler-Tools wie Firebug für Firefox oder Opera Dragonfly zu verwenden, um eine utm.gif-Anfrage zu erfassen und die URL zu kopieren. Passen Sie die Header an Ihre Bedürfnisse an. Sie können es entweder als Ereignis oder als Seitenaufruf zählen. Wenn Sie es als Ereignis zählen, sollte es ungefähr so ​​aussehen:

http://www.google-analytics.com/__utm.gif?utmwv=4.8.6&utmn=1214284135&utmhn=www.yoursite.com&utmt=event&utme=email_open&utmcs=utf-8&utmul=en&utmje=1&utmfl=10.1%20r102&utmdt=email_title&utmhid={10-digit time code}&utmr=0&utmp=email_name&utmac=UA-{your account}

Sie können dies verwenden, um zu verstehen, was in den Kopfzeilen beschrieben wird.

4
vee_ess

Ich poste dies besser, um jedem die Mühe zu ersparen, diese monströse UTM-Gif-URL zu erstellen. 

Sie können jetzt die neue Measurement Protocol API verwenden, um eine POST -Anforderung zu senden und Ereignisse, Seitenaufrufe, Treffer oder fast jede andere Art von Messung einfach aufzuzeichnen. Es ist super einfach!

POST /collect HTTP/1.1
Host: www.google-analytics.com

payload_data

Beispiel: Ein Codeausschnitt zum Senden eines Ereignisses in C # (mit SSL-Endpunkt):

public void SendEvent(string eventCategory = null, string eventAction = null, string eventLabel = null, int? eventValue = null)
{
    using(var httpClient = new HttpClient() {BaseAddress = new Uri("https://ssl.google-analytics.com/")}) {
        var payload = new Dictionary<string, string>();

        // Required Data
        payload.Add("v", "1"); // Version
        payload.Add("tid", "UA-XXX"); // UA account
        payload.Add("aip", "1"); // Anonymize IP
        payload.Add("cid", Guid.NewGuid().ToString()); // ClientID
        payload.Add("t", "event"); // Hit Type

        // Optional Data
        payload.Add("ni", "1"); // Non-interactive hit

        // Event Data
        if (eventCategory != null)
        {
            payload.Add("ec", eventCategory);
        }
        if (eventAction != null)
        {
            payload.Add("ea", eventAction);
        }
        if (eventLabel != null)
        {
            payload.Add("el", eventLabel);
        }
        if (eventValue != null)
        {
            payload.Add("ev", eventValue.Value.ToString(CultureInfo.InvariantCulture));
        }

        using (var postData = new FormUrlEncodedContent(payload))
        {
            var response = httpClient.PostAsync("collect?z=" + DateTime.Now.Ticks, postData).Result;

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception("Could not send event data to GA");
            }
        }
    }
}

Viel einfacher als der Hack mit dem __utm-GIF.

Nützliches Beispiel

Sie können dies einfach E-Mails hinzufügen, indem Sie Folgendes tun:

In einer E-Mail:

<img src="{url}/newsletter/track.gif?newsletterName=X" />

In Ihrer MVC-Site beispielsweise NewsletterController:

public ActionResult Track(string newsletterName) {
    using(var ga = new AnalyticsFacade()) {
       ga.TrackEmailOpen(newsletterName);
    }

    return Content("~/images/pixel.gif", "image/gif");
}

In deiner Global.asax oder RouteConfig:

routes.MapRoute(
    "newsletteropen",
    "newsletter/track.gif",
    new
    {
        controller = "Newsletter",
        action = "Track"
    });

BOOM, fertig, mein Sohn. Sie können jetzt das Öffnen von E-Mails mithilfe einer viel besseren API verfolgen, die unterstützt und dokumentiert ist.

2
kamranicus

Ist Ihre Anforderung, zu verfolgen, wie oft eine E-Mail von einem bestimmten Benutzer geöffnet ist. Wir haben ein ähnliches Problem. Wir verwenden einen SMTP-Relay-Server und wollten nachverfolgen, wie oft unsere Marketing-E-Mails geöffnet sind, zusätzlich zu Google-Analytics, die nur dann registriert werden, wenn jemand per E-Mail auf den Link zu unserer Website klickt.

Das ist unsere Lösung. Es basiert auf einem Aufruf von REST durch Überschreiben des Image-Elements von HTML (unsere E-Mails sind HTML-Basis). 

wobei TRACKING dynamisch generiert wird. URL, die auf unseren REST -Dienst verweist und Informationen zur Person enthält, an die die E-Mail gesendet wurde. Es ist so etwas

// def trackingURL = URLEncoder.encode ("eventName = emailTracking & entityType = employee & entityRef =" + email.empGuid, "UTF-8");

trackingURL = baseUrl + "/ tracking/create?" + trackingURL;

Es wird etwas sein wie " https://fiction.com:8080/marketplace/tracking/Create?eventName=email&entityType=Person&entityRef=56 "

Wenn die eigentliche E-Mail-HTML-Datei generiert wird, wird TRACKING durch ersetzt 

Ein wichtiger Punkt ist, dass Sie eine Antwort vom Typ image und ein transparentes Bild mit einem Pixel mit der Antwort REST zurückgeben.

0
user3171132