Tracking global KPIs in Planet 4

How to properly extract relevant performance data. And learn from them.

Ibrahim Elawadi
Aug 1, 2017 · 13 min read

*This post is co-authored by Ibraheem Elawadi and Luca Tiralongo

Image for post
Image for post
Analytics dashboard of greenpeace.org — image by Ibraheem Elawadi

To ensure that Greenpeace web content will drive people to action, perform properly and contribute to campaign successes, we need to properly track, consolidate and visualise Key Performance Indicators (KPIs) of Planet 4 websites and related action platforms.

Starting from the outcomes of the Discovery phase, the P4 Analytics folks narrowed the final “must have” KPIs and developed a standard methodology to best consolidate and compare stats and ultimately provide a solid base to take insight-driven, corrective actions.

National and Regional Greenpeace offices will of course be able to identify additional KPIs to best fit local needs, but the project team believes that this “must have” data set provides a solid baseline to track and compare Planet 4 performances at global and local level. The full KPI list and their consolidation methodology are publicly available, but this 5-minute summary will help set the right expectations from a standard Planet 4 setup.

Beyond the investigation, seeking stakeholder input

The P4 Analytics team went beyond the classic investigation methods. Starting with a first prioritization of the Discovery outcomes, they submitted the refined list to senior managers (global campaign leaders, engagement directors) and digital leads (campaigners, webbies), to come up with a final, smart and relevant set of actionable insights. These 2 primary audiences were asked to rate the KPIs in order of importance. Here’s the result:

Image for post
Image for post
Key set of Planet 4 performance data, as digital leads and senior managers value them — image by Ibraheem

And here’s the final list, split by “Breadth”, “Depth”and “Open” engagement areas (click on each KPI to jump right to its consolidation methodology):

Using Google Analytics and other tools to consolidate the right data

Having a look at the final “must have” KPI list, the team decided that the standard consolidation methodology should utilise the functionalities of the web analytics stack endorsed by the global Insights Team and represented below:

Image for post
Image for post
The Greenpeace "Google Web Stack" to track and visualize performances

It was quite clear that for a few of these KPIs, like “Members Returning for Action/MeRA” or “Social Sharing ratio”, for example, this setup was not sufficient, since those require 3rd party tools to consolidate them.

Breadth KPIs

1. Bounce Rate by Channelavailable in standard Google Analytics report through “Acquisition > Channels > Bounce Rate”.

Additional Setup (1) — A proper Channel Grouping must be setup to ensure the correct categorisation of Channels, and this can be done within the Settings of the property (see image). It is recommended to create a new channel grouping instead of editing the default one as channel grouping is not retrospective and hence can impact overall accuracy.

Additional Setup (2) — UTM tags must be created in line with Channel Grouping to ensure proper propagation of data in GA acquisition report.

Image for post
Image for post
Image for post
Image for post

2. Funnel Conversion by petitionnot available in standard Google Analytics report.

Setup (1) — a “Sign Up” goal must be created first using goal setup (Admin > Account > Property > View > Goals) — NB: Existing similar / unused goals must be cleaned first.

Setup (2) — Google Tag Manager (GTM) should be used to track petitions conversion using form submission (see image below)

Setup (3) — Once GTM has been associated to the goal, a Funnel visualization (available in Conversions Goal report) must be associated with it (below)

Image for post
Image for post

As an additional requirement, funnels for petition conversion must be identified (these depend on the Petition / Advocacy tool the Organization is using. For Engaging Networks, for example …)

3. Funnel Conversion Rate for volunteeringnot available in standard Google Analytics report.

Setup (1) — a “Sign Up” goal must be created first using goal setup (Admin > Account > Property > View > Goals) — NB: Existing similar / unused goals must be cleaned first.

This “Sign up” goal is of course related to whichever Volunteer management platform is being used in the different NROs.
Setup (2) — Google Tag Manager (GTM) should be used to track volunteer conversion using form submission or login in Greenwire (for offices who are using it)

Setup (3) — Once GTM has been associated to the goal, a Funnel visualization (available in Conversions Goal report) must be associated with it (below)

Image for post
Image for post

As an additional requirement, funnels for volunteer signups must be identified. These will depend on the volunteering / offline mobilization tool the Organization is using.

4. % New Users to Site — available in standard Google Analytics report through “Audience > Behaviour > New vs Returning”. No additional setup needed.

Image for post
Image for post

5. Funnel Conversion Rate start a petition — not available in standard Google Analytics report.

Setup (1) — Google Tag Manager (GTM) should be used to track petitions started in the Open Campaigning tool (e.g. ControlShift labs) from Planet 4 pages.

NB: This KPI will be tracked by offices who have adopted any Open Campaigning tool, and its setup requires cross-domain tracking in ControlShift via GTM.

6. Funnel Conversion Rate for donation — not available in standard Google Analytics report.

Option 1 — The Google Analytics event (goals/Standard), useful to compare conversion of signups vs donations:

  1. DataLayer: push donation Completed event with the necessary DataLayer Variables describing the donation.
  2. Google Tag Manager: Fire Google Analytics Event Tag on donation completed trigger.
  3. Google Analytics: Track Goal Based on Events (Admin > Account > Property > View > Goals) — NB: Existing similar / unused goals must be cleaned first.
  4. Google Analytics Funnel: whenever is needed, create a funnel based on a url GA Goal, to track funnel conversion
Image for post
Image for post
Analytics goals (event type) for tracking donation (in this example crowdfunding donations with 3 default amounts and a custom donation)
Image for post
Image for post
A Tag Manager event pushing to GA an event triggering the correct GA goals

A separate Analytics View specific to tracking donation info is required as depending on the situation, a large number of Goals need to be set up (20 Goals per View is the limitation of GA).

Option 2- The "E-Commerce" way
Second method is to enable eCommerce in Google Analytics settings and then integrate the donation platform (i.e. Engaging Networks) with GTM to pass the donation information to the DataLayer.

A manual integration could be also used depending on the donation platform. But GTM is preferred as it’s the main tagging tool for the tracking project.

7. Bounce Rate by page — available in standard Google Analytics report through “Behaviour > Site Content > All Pages”. No additional setup needed.

Image for post
Image for post

NB: Content Grouping to maximize the usefulness of the KPI should be set up.

8. Total sessions by source / channel — available in standard Google Analytics report through “Behaviour > Site Content > All Pages”.

Additional Setup (1) — Add a breakdown by channel by setting up segments (below)

Image for post
Image for post

Then create a new Segment for each channel group based on the Channel Grouping settings:

Image for post
Image for post

Additional Setup (2) — A proper Channel Grouping must be setup to ensure the correct categorization of Channels. Channels Grouping settings can be setup in Admin > Account > Property > View > Channel Settings (see below):

Image for post
Image for post

It is recommended to create a new channel grouping instead of editing the default one as channel grouping is not retrospective and hence can impact overall accuracy.

Additional Setup (3) — UTM tags must be created in-line with Channel Grouping to ensure proper propagation of data in GA acquisition report.

9. Conversion Rate for petition (signups / submissions) — not available in standard Google Analytics report.

Setup (1) — an event tracking using Google Tag Manager (GTM) for form submissions must be created.
Setup (2) — Once GTM has been associated to the goal, a “Sign the petition” goal must be created using goal setup (Admin > Account > Property > View > Goals)

NB: Existing similar / unused goals must be cleared first.

10. Total Users / Unique Visitors — available in standard Google Analytics report through “Audience > Overview > Users”. No additional setup needed.

Small point, please remember that Google replaced “Unique visitors” with “Users”.

Image for post
Image for post

11. Web performance trendline (consolidation aggregate) — available in standard Google Analytics report. No additional setup needed.
NB: please remember that Google replaced “Visits” with “Sessions”.

In “Behaviour > All pages” reports, we should extract the consolidated data for:

  • Page views
  • Unique page views
Image for post
Image for post

In the “Audience > Overview” reports, we should extract the consolidated data for::

  • Sessions
  • Avg. Session Duration
  • % of new sessions

It is recommended to create custom Reports, here’s a basic template you can add to your Account (just adjust your regex).

Depth KPIs

12. Scroll Depth — not available in standard Google Analytics report.

Setup (1) — Using Google Tag Manager, a jQuery will be fired to send events to Google Analytics at various trigger baseline 0%, 25%, 50%, 75%, and 100% according to percentage of user scrolling from Page Top (see image below)

Image for post
Image for post

Setup (2) — Google Tag Manager setup.

Note: Depending on number of Page Views, Scroll Depth can consume massive number of hits, hence, it’s recommended to fire the page scroll in specific categories (e.g. Press Release, Blog Articles).

13. Page Depth — available in standard Google Analytics report through “Audience > Overview > All Pages”. No additional setup needed.

Image for post
Image for post

14. Visitor Frequency — available in standard Google Analytics report through “Audience > Behaviour > Frequency & Recency”. No additional setup needed.

More info on how Frequency and Recency are determined and consolidated are here.

Image for post
Image for post

15. Visitor Recency — available in standard Google Analytics report through “Audience > Behaviour > Frequency & Recency”. No additional setup needed.

More info on how Frequency and Recency are determined and consolidated are here.

Image for post
Image for post

16. Time on page by mobile device / Operative System (OS) — available in standard Google Analytics report through “Behaviour > Overview”.

Image for post
Image for post

Additional Setup (1) — add a separate Segments “breakdown by device” for each device/OS:

Image for post
Image for post

17. Most popular tags not available in standard Google Analytics report.

Setup (1) — Using Wordpress REST API, the list of tags can be retrieved into JSON file: $ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/tags count option required to display number of published posts for the term.

Setup (2) — Import Tags list into Google Sheets using ImportJSON and set the sheet as following:

  • Order the table by number of posts and limit the display to 10 using Pivot Table by highlighting the first 11 Raws then activate : Data > Pivot Table
Image for post
Image for post
Set up the Pivot table to properly order P4 most popular tags

Setup (3) OUR CHOICE — Set up a custom dimension in Google Analytics to extract from the DataLayer the custom variable "Post_tag" in Google Tag Manager .

1) set up the custom dimension in Google Tag Manager.

Image for post
Image for post

Creating a variable in Tag Manager to identify and extract Post_Type[/caption]

2) Add the Custom Dimension in Google Analytics view to consolidate the information (in our case the ‘Post tags’ information)

Image for post
Image for post

New custom dimension in Google Analytics (Property Settings > Custom Definitions > Custom Dimensions)[/caption]

3) Add the Variable to the Tag UA (Universal Analytics) — Page view — GP to establish the connection GTM > GA

Image for post
Image for post

Adding a new variable (Post_tags) as a custom dimension to the UA Pageview tag[/caption]

18. Visitor Action/Conversion Frequency — We will use a mixed methodology to consolidate this KPI, using data from KPI 19 (MeRA) and KPI 14 (Visitor Frequency).

Setup (1) — using the MeRA events to Google Analytics of KPI 19 (see goal), create a segment for members returning for action.

Setup (2) — Then using methodology identified in KPI 14, the visitor frequency will reflect Members Returning for Action Frequency.

Image for post
Image for post

19. Members Returning for Action (MeRA) — Since most Change Agents will take action in Planet 4 from Engaging Networks (EN), we need to set up cross-tool tracking methodology.

We will use a custom JavaScript code for the Engaging Networks API to identify if the supporter email exists in the EN database or not, and based on that make it “fire” a Google Analytics event to ​identify whether such member signed up before (hence is a “returning member”) or not.

Image for post
Image for post

Setup (1) — insert the Engaging Networks custom JS API code in the petition HTML body.

Setup (2)Google Analytics: Track Goal Based on Events (Admin > Account > Property > View > Goals) — NB: Existing similar / unused goals must be cleaned first.

Sample Petition JS Code to fire GA event.

Open KPIs

20. New Blog Posts (by non-staff / Change Agents) — Extracting data related to blog posts created by non Greenpeace Staff (user-generated content) can be obtained directly in Wordpress.

Setup (1) — Create a special category for Blog posts by non-staff in Planet 4.

Setup (2) — Use Wordpress REST API to retrieve list of posts by category:

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/categories (use the option “count” to display)

Setup (3) — Import the list into Google Sheets using ImportJSON.

Additional setup (4)Install ImportJSON in Google Sheets (here’s a sample script).

21. Social Sharing ratio — We can ensure that all social sharing buttons that come with Planet 4 or EN have event tracking for clicks on the buttons.

Image for post
Image for post

Basically, we need to make sure that we track clicks on all sharing buttons. We identified 2 main ways to do this:

Option 1) >> Building Google Analytics tracking code right into Planet 4:

  • Entails making sure that all social sharing buttons have GA event tracking firing for all clicks on buttons
  • Would need to ensure that offices then don’t use other custom code or plugins to install social sharing buttons
  • Requires more work to setup, but gives us more flexibiliy on the button design etc.

Option 2) Rely on 3rd party social sharing plugins:

Note: the 2 options provides similar functionalities, and final decision to the developers depending on the Social Sharing plugin they choose, with priority to Add-to-any.

23. Total Comments per Day / Month — Disqus plugin in Wordpress comes with an analytics dashboard for measuring overall engagement on the site. More info on the Disqus plugin are available here and a full Disqus / Wordpress FAQ is here.

We will use the standard Disqus callback to Google Analytics .

Coming up next: visualizing all these data in Data Studio dashboards

The upcoming challenge of the Planet 4 KPIs & Analytics team will be to shape how all these data will be visualised in Google DataStudio. Ideally, whenever a Planet 4 site will be set up in Greenpeace offices, 2 template dashboards pulling all these stats (one for digital leads, one for senior management) will be delivered as “Out Of the Box”.

The Concept of these 2 DataStudio Dashboard is ready, now it’s a matter of getting hands-down and make this happen.

Lastly, we would love to thank all the folks who helped the team as volunteers in the last few months: Anke, Cody, Dimitris, Gabor, Leola, Lucas, Michael, Sina, Stefanus and Tristan, nothing of this could have been possible without you data wizards.

Planet 4

Planet 4 is the codename for the complete redesign of…

Ibrahim Elawadi

Written by

Data Advocate @Greenpeace. Sometimes I code, sometimes I write, sometimes take pictures of stars.

Planet 4

Planet 4

Planet 4 is the codename for the complete redesign of Greenpeace.org. This project is developed using open principles, and this Medium Publication will be the central hub for news and updates pertaining to the Planet 4 project. Learn more at www.greenpeace.org/p4

Ibrahim Elawadi

Written by

Data Advocate @Greenpeace. Sometimes I code, sometimes I write, sometimes take pictures of stars.

Planet 4

Planet 4

Planet 4 is the codename for the complete redesign of Greenpeace.org. This project is developed using open principles, and this Medium Publication will be the central hub for news and updates pertaining to the Planet 4 project. Learn more at www.greenpeace.org/p4

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store