Opened 3 years ago

Closed 15 months ago

Last modified 15 months ago

#1899 closed New feature (fixed)

Add a Referer report listing all websites, search engines, campaigns in one unified report

Reported by: matt Owned by: capedfuzz
Priority: major Milestone: 1.12.x - Piwik 1.12.x
Component: Core Keywords:
Cc: Sensitive: no


Currently Piwik offers a search engine report, a websites report and a campaign report.

It would be useful to have a report that would merge all this data into a single Referrer. This will help compare traffic from each source, for example visualize the importance of website referers VS google, or VS any active marketing campaign.

Implementation: this report could be built in PHP only, merging existing datatables for each referer type. This wouldn't add much overhead to the archiving process.

Change History (11)

comment:1 Changed 3 years ago by matt (mattab)

  • Type changed from Bug to New feature

comment:2 Changed 21 months ago by matt (mattab)

  • Milestone changed from 1.x - Piwik 1.x to 1.8.x - Piwik 1.8.x
  • Owner set to capedfuzz
Last edited 17 months ago by matt (previous) (diff)

comment:3 Changed 17 months ago by matt (mattab)

This ticket is for adding the new "All Referrers" report aggregating all other referrers reports into one.

I moved the other idea "Improve the Referrers Overview report" to its own ticket and added specification and my thoughts. See #3619

comment:4 Changed 16 months ago by matt (mattab)

1) Extending Referer type to load the subtable: I'm curious to see code & UI for this but could be a good thing!

2) this ticket is something different though. it's key to have all referrers listed alongside each other "merged" in the report.

Should be merged the following: Direct entries + Keyword entries (aggregating all search engines per keywrods + Websites domains (aggregating all sub URLs) + Campaigns names.

This report table rows are not expandable to subdatatable. (I think this would be non trivial and is not that important). So if users see "" bringing lots of Traffic overall he wont be able to click on to open the subtable to see which pages exactly, but he can go to Referers>Websites to have the subtables there.

Sample report

Direct entries 156
KeywordX via search 154
KeywordY via search 120 101
CampaignNameHere 98
KeywordZ 15 1

comment:5 Changed 16 months ago by matt (mattab)

  • Data would be provided by a new API eg. Referers.getAll which would call getKeywords, getWebsites, getCampaigns, and getRefererType (for number of direct entries).
  • Note: when aggregating there is the trouble with "Others" row which is called "Others". When aggregating we wouldn't know if the "Others 556" refers to Other Keywords or Other Websites for exampe. Would be nice to append eg. "Others (Keywords)" when merging.
  • It should ideally work for simple + advanced data + goal data tables.

Any feedback?

comment:6 Changed 15 months ago by capedfuzz (diosmosis)

  • Resolution set to fixed
  • Status changed from new to closed

(In [7830]) Fixes #1899, add report that merges all Referrer reports and modified Referrer overview report to support subtables for each referrer type.


  • modified VisualPHPUnit so Incomplete errors that come from missing expected files have 'Use Processed' link option.
  • fixed bug in VisualPHPUnit's 'Use Processed' link (a piwik-specific change).
  • Added ability to prepend/append HTML to labels in HTML datatable output by using html_label_prefix/html_label_suffix.
  • Fix bug in Piwik_DataTable_Array::mergeSubtables where keyName was not copied in new array.

comment:7 Changed 15 months ago by matt (mattab)

In 1be181b792615a8e3cfe7418020805c30eb4f529:

Refs #1899 adding metadata report for Mobile/Email reports

comment:8 Changed 15 months ago by matt (mattab)

  • Resolution fixed deleted
  • Status changed from closed to reopened

I notice Row Evolutoin is not working on the report. If it is easy to add support, let's do it, otherwise let's simply hide the Row Evolution icon for this report

comment:9 Changed 15 months ago by capedfuzz (diosmosis)

  • Resolution set to fixed
  • Status changed from reopened to closed

In d482aea64018302952d3f5e7626e28a3df81ca7b:

Fixes #1899, disable row actions for Referrers.getAll, since efficiently setting subtables for DataTable_Array children is nontrivial.

comment:10 Changed 15 months ago by capedfuzz (diosmosis)

@matt, tried to think of an easy way of adding support, but to do it cleanly it would require either refactoring DataTable_Array (getting rid of, actually), adding a new function that visits each DataTable in a DataTable_Array structure and passes the indexes to a callback, or moving metadata from DataTable_Array to DataTable and allowing callbacks to be used in place of DataTable_Filter class names.

The quick way to fix it would be to add two more private functions to Referrers_API which seemed like a bit much for one API method.

comment:11 Changed 15 months ago by matt (mattab)

+1 for disabled support. Getting rid of DataTable_Array would be useful, but maybe we keep that one for later as it's non trivial.

Note: See TracTickets for help on using tickets.