web-dev-qa-db-fra.com

Le courrier électronique de suivi s'ouvre dans Google Analytics

Nous avons suivi dans nos courriels pour suivre les clics sur notre site via Google Analytics. Mais existe-t-il un moyen de suivre les ouvertures? J'imagine que je dois ajouter une image de suivi Google au courrier électronique quelque part. Peut-être aussi javascript?

23
at.

Comme d'autres l'ont souligné, vous ne pouvez pas utiliser Javascript dans les e-mails. Le suivi réel est effectué par une demande de __utm.gif cependant et le Javascript construit simplement les paramètres GET.

Google prend en charge les utilisations non analytiques de Google Analytics dans leurs documents Web mobiles: http://code.google.com/mobile/analytics/docs/web/

Ils documentent la liste complète des paramètres , mais les seuls paramètres nécessaires sont:

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

La référence qui décrit tous les paramètres autorisés par le GIF de suivi Google Analytics est ici . Utilisez-le pour créer une balise <img> dans votre courrier électronique faisant référence au GA GIF.

Selon ce post , les champs obligatoires minimum sont:

  • 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

On dirait que vous utilisez le suivi de campagne pour GA, mais que vous souhaitez également savoir le nombre d'ouvertures. Cela est possible avec Google Analytics, car ils suivent les consultations de page ou les événements en utilisant le suivi par pixel, comme le fait tout suivi (je pense?) Par courrier électronique. Cependant, vous ne pouvez pas utiliser javascript car cela ne s'exécutera pas dans un courrier électronique.

Utilisation du suivi des pixels de Google Analytics: Le moyen le plus simple consiste à utiliser des outils de développement de navigateur tels que Firebug pour Firefox ou Dragonfly d’Opera pour capturer une demande utm.gif et copier l’URL. Modifiez les en-têtes en fonction de vos besoins. Vous pouvez le compter comme événement ou comme page vue. Si vous le comptez comme un événement, cela devrait ressembler à ceci:

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}

Vous pouvez utiliser cela pour comprendre ce qui décrit quoi dans les en-têtes.

4
vee_ess

Je ferais mieux de poster ceci pour éviter à tout le monde d’avoir la peine d’essayer de construire cette monstrueuse URL gif UTM. 

Vous pouvez maintenant utiliser la nouvelle Measurement Protocol API pour envoyer une demande POST et enregistrer facilement des événements, des vues de page, des occurrences ou presque tout autre type de mesure. C'est super facile!

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

payload_data

Par exemple, voici un extrait de code permettant d'envoyer un événement en C # (à l'aide du noeud final SSL):

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");
            }
        }
    }
}

Bien plus facile que le bidouillage avec le __utm gif.

Exemple utile

Vous pouvez facilement ajouter ceci aux emails en faisant ceci:

Dans un email:

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

Dans votre site MVC, par exemple, NewsletterController:

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

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

Dans votre Global.asax ou RouteConfig:

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

BOOM, fini, mon fils. Vous pouvez maintenant suivre les ouvertures de courrier en utilisant une API beaucoup plus agréable qui est supportée et documentée.

2
kamranicus

Votre exigence est-elle de savoir combien de fois un e-mail est ouvert par un utilisateur donné. Nous avons un problème similaire. Nous utilisons un serveur de relais SMTP et souhaitions savoir combien de fois nos courriels de marketing sont ouverts, en plus de Google-Analytics, qui enregistre un événement uniquement lorsque quelqu'un clique sur un lien vers notre site par courrier électronique.

Ceci est notre solution. Il est basé sur l’appel REST en remplaçant l’élément image de HTML (nos courriels sont en base HTML) 

où TRACKING est une URL générée dynamiquement qui pointe vers notre service REST avec des informations de suivi sur la personne à laquelle le courrier électronique a été envoyé. C'est quelque chose comme ça

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

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

Ce sera quelque chose comme " https://fiction.com:8080/marketplace/tracking/Create?eventName=email&entityType=Person&entityRef=56 "

Lorsque le code HTML de courrier électronique est généré, il est remplacé par TRACKING par 

Le point important est de renvoyer une réponse de type image et une image transparente d’un pixel avec la réponse REST.

0
user3171132