As you might know, Michael and I have been working very hard on the Email Newsletter Manager (which will be released soon!), which will make it very easy to send perfect email campaigns using Symphony.

However, campaigns aren't really worth anything if you can't measure the results, so I think a good statistics package is unmissable.

Ofcourse, I could settle with click-tracking using google analytics (which I already use for my clients' websites), but I would love to have more advance metrics such as open rates, aswell.

Because I am a little lost as to what I really want for this, your input would be really appreciated! So, what do you think is the best solution for this? What kind of information would you love to be tracked, and how would you handle this? Do you think all information should be stored in a section, or should a seperate page be created for better control?

Firstly: thank you very much Huib and Michael for developing this. It looked awesome and I believe it's a great plus for Symphony.

I'll think about your specific questions but thought to mention that it might be beneficial to look into your 'competitors' such as Campaign Monitor: they have some great resources online such as this article on 'open rates'.

Personally I believe Open Rates are most important, but only when linked to other metrics such as the day/time of sending, etc.

All in all it must also be said that many of these 'stats' must be taken with a large grain of salt: there's too many factors involved to make them very precise and clients should view them as 'indicators' mostly.

The most important things I look at from Campaign Monitor reports are:

  • open rates (number of opens)
  • click through rates (how many, which individual links were most popular)
  • hard and soft bounces and unsubscribes (essential in keeping your list clean)

The reports I wouldn't bother with:

  • email clients
  • comparing campaigns (I don't send enough to warrant comparison)
  • forwards and spam (not that it's not useful, just likely to be really complex to track!)

In a previous job I spent a lot of time sending HTML emails using Silverpop. Getting accurate unsubscribe, soft and hard bounces was seen as the most important thing, since each time you make a deployment to several million that contains even a small proportion of bounces (a few thousand) you're both costing yourself money, and increasing the chance of your deployment being picked up as spam.

Ooh, thanks for that article, that will be really handy to show my clients!

At this moment, I am thinking of offering open rates to my clients from within symphony (maybe using a field, to show the results within the entry, maybe from a different widget, using the dashboard extension, I don't know).

How would you like to present this to your customers? (The main reason I ask is because I would like to co-develop this with somebody who will be using this, too).

Nick, I agree that open/clickthrough rates are far more important than email clients, but I think bounces are not interesting at all for my clients.

I think bounces are only useful to clean up your list, and they should be processed silently in the backend - preferably by another extension.

I have started developing this, but I am running into some problems with the implementation.

Right now, I have created a datasource which will create a unique key for every email sent, which can then be used to create a tracking image (domain/track/4ed2afff2c772.gif, for example). So far so good, but now for the hard part: getting the information out of the database again.

Because did not want the developer to have to setup sections with specific fields and all that, I have decided to store the tracking information in its own table. This makes installing the extension a whole lot easier, but it does give me a hard time figuring out how to get the data out in a reusable way.

In my opinion, a datasource for each metric (click, open, bounce, etc) would be best. However, it is not possible to create custom datasource types that can be created using the datasource editor in Symphony. So I am either stuck with one datasource of each type that outputs all the information it has, for XSLT to parse and filter, or I have to implement some sort of filtering, and let the developer copy-paste datasources if more are needed.

Ofcourse, the easiest solution for me would be to create the dump-all datasource, but I am not really sure if this would work. Do you think Symphony will get into trouble if all statistics are thrown out in one big pile of XML? (which might be tens of thousands of records). Is there a way I could optimise this?

Then for the next problem: click tracking. My current idea is to scrape the final email just before it is sent, and replace all hrefs with a tracking link (again, something like DOMAIN/link/4ed2afff2c772/378hsfj834/). Does this sound like a good solution to you, or do you see a better one?

I really appreciate your input!

RE: your click tracking question. I think this is the only feasible way to do it, and it shouldn't be too hard to implement. Just make sure it's fast so people don't notice/get pissed off waiting for it.

I think having the option of a few different datasources to use would be helpful. For some people a dump-all DS would be best if they only have a handful of subscribers. Then have the option of 'summary' datasources which could just have the open/bounce/link rates for each campaign, without details of individual emails.

Being able to filter a DS with an email address and campaign name would be the primary use case I would think. Anything else is probably going to start getting difficult.

This is a really ambitious extension. Good luck!

RE: your click tracking question. I think this is the only feasible way to do it, and it shouldn't be too hard to implement. Just make sure it's fast so people don't notice/get pissed off waiting for it.waiting for it.

Thanks, that's what I thought. The scraping of the email will happen in the background, so speed isn't really a concern here, and the redirect itself is very, very fast. I have ran a few tests on my localhost, and I could not tell the difference between my tracked link and the original.

Being able to filter a DS with an email address and campaign name would be the primary use case I would think.

Me too, but I do see a problem: within symphony, all filters are defined by the datasource editor. Unfortunately, that is a very inflexible beast which I can not hijack to add my own datasources. Put simply; my datasources will not have a GUI.

Of course, I could just hardcode the parameter into the datasource ($email-tracking-newsletter-id), which you can then add to your page (as a page param) again. However, if you need the parameter to look different (if you are using GET, for example, or if the email has to come from another datasource) it will run into problems.

At this moment I am not too sure how to handle this, yet.

At this moment I am not too sure how to handle this, yet.

Perhaps with the new modifications for DSs and UI in 2.3 you will have a way to integrate the GUI ... Thanks for the good work !

That would be awesome! For now I'll just hardcode everything and hope for the best..

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details