Yesterday Hopi Stosberg won her primary in a location election. I volunteered to setup web software for her. Here's what worked.
Local campaign software goals
In this small, local campaign there was no paid staff, so the candidate would be posting website content and sending out newsletters herself, among the many other tasks involved in campaigning.
Important features are:
- Ease of use
- Newsletter support
- Tracking user engagement
Blog ➕ Newsletter Ghost
WordPress is likely the most popular website software for campaign websites, and Mailman is popular for mailing list software. I'm familiar with both, but found something I liked even better. I setup Ghost. Ghost is different because it highly integrates newsletter software right into the blogging software. No second app is needed.
With Ghost, the feature to "Create a Post" is exactly the same for publishing to web and publishing to email. That's it! There's no separate tool to learn or log into. You can choose to "Publish to web", "Publish to Email" or both, which means the post goes to the blog and goes out to the mailing list as well. Killer feature.
Right away, the candidate was able to start to posting to the website and sending emails.
Right in the Ghost admin dashboard, we could track your subscriber growth rate, top sources of subscribers, engagement rates, basic member activity and open rates for newsletters.
Ghost covers most bases.
Getting the basics right: SEO!
Ghost produces clean, simple HTML that's good for search engine optimization. Soon after the website launch, the candidate was the number one result for searches for her full name. After several more blog posts were added, she became the number one result for just her last name. By checking the analytics, we could see that searches for her exact name were a major source of traffic. If the website was hard to find on search engines, we would have missed out on a lot of traffic.
A Ghost theme for small campaigns
We used the basic "Casper" theme for campaign. Using the custom routing feature, there was a homepage using the "page" feature with the blog at "/blog".
Campaign Analytics with Matomo
While Ghost covers a lot, I wanted deeper analytics to track the effectiveness of our content and user acquisition and engagement, so I installed Matomo, an alternative to Google Analytics.
Matomo provided a lot of useful information about how the website was being used including:
- Where traffic is coming from
- Which pages are most popular
- When people complete a "goal", like signing up for a newsletter, or leaving the website to go to the donation website.
- How people navigate the website
For example, I saw some other candidates were using single-page websites. I wondered if it would be worth even worth having a blog. Using Matomo, I checked! I found the blog was one of the most popular parts of the website.
We also experimented with promoting some blog posts on social media and tracking the response. I was able to see that the right post at the right time was a major driver of traffic to the site, and some people looked at more on the site than the post itself.
Here you can see big spikes from a couple successful social media posts as well a final election day spike. Yes, a lot of people wait till election day to check the website.
To refine where we posted, I was curious about the breakdown of traffic from Facebook, Reddit and Nextdoor. Matomo showed us that.
Tracking how many people scanned QR codes
QR codes were popular across campaigns in this election. A lot of them linked back directly to the candidates website, but ours included Matomo tracking codes to identify the traffic is coming from the "qrcode" campaign or the "mailer" campaign. So if the candidate spent the day canvassing and handing out "walk lit" that contained a QR code, we could see in real-time how many people were scanning those QR codes each day.
As I suspected, scanning QR Codes is not very popular, but tracking the relative use across days was still interesting.
Tracking Website Goals
Matomo allows setting up tracking custom "goals" for users of the website to better understand the traffic. For example: leaving the site to go to a donation site, signing up for the newsletter or following a link from the newsletter back to the website. I set up tracking for all these goals, providing a deeper understanding of effectiveness and engagement on the site.
Having a website that looks and works well on mobile is important! Using Matomo, I could see just how important. Often, about 50% of the site traffic was on mobile.
By contrast, a competing campaign apparently never tested his website on mobile, because the mobile site included two "About" entries in the navigation. The first one led to a page that said "Hi, I'm Christina! I'm a paragraph.". His name is not Christina and that was not his photo.
Analytics might have also helped him to notice he had two "About" pages.
Ghost provides mobile posting as well as reading, so the candidate was able to send out a "Success!" email using Ghost right from her phone the night of the election.
For my part, I installed a Matomo mobile app on my phone so I was able to track daily campaign traffic stats at a glance. If a news story broke that mentioned the candidate and started sending traffic to the site, it was easy to notice and react to that.
Bonus: Google Search Console
Another free tool I used was the Google Search Console. This tool allows to see from Google's side how often we were appearing in search engines what the top Google search keywords were that people were using to find the website. No surprise: The exact name search was most popular.
Both Ghost and Matomo are available for free and open source, so you can self-host if you are able. That's the route I went.
To buy Ghost's hosted service, I would recommend at least their "Creator" Tier for $25/month which includes 1,000 members, 2 staff users and support for theme customization.
Matomo's pricing is an additional $23/month.