Skip to content

Commit

Permalink
Merge pull request #11 from piwik/visitordetails
Browse files Browse the repository at this point in the history
Show campaign data in visitor log & profile
  • Loading branch information
sgiehl committed Sep 5, 2017
2 parents 9e31ef1 + 138c931 commit af1fd26
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 19 deletions.
23 changes: 6 additions & 17 deletions MarketingCampaignsReporting.php
Expand Up @@ -33,11 +33,16 @@ public function getListHooksRegistered()
return array(
'Tracker.PageUrl.getQueryParametersToExclude' => 'getQueryParametersToExclude',
'Report.filterReports' => 'removeOriginalCampaignReport',
'Live.getAllVisitorDetails' => 'extendVisitorDetails',
'Insights.addReportToOverview' => 'addReportToInsightsOverview',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
);
}

public function getStylesheetFiles(&$stylesheets)
{
$stylesheets[] = "plugins/MarketingCampaignsReporting/stylesheets/styles.less";
}

public function install()
{
$tables = \Piwik\DbHelper::getTablesInstalled();
Expand Down Expand Up @@ -92,22 +97,6 @@ public function removeOriginalCampaignReport(&$reports)
}
}

public function extendVisitorDetails(&$visitor, $details)
{
$fields = array(
'campaignId' => 'campaign_id',
'campaignContent' => 'campaign_content',
'campaignKeyword' => 'campaign_keyword',
'campaignMedium' => 'campaign_medium',
'campaignName' => 'campaign_name',
'campaignSource' => 'campaign_source',
);

foreach ($fields as $name => $field) {
$visitor[$name] = $details[$field];
}
}

public static function getAdvancedCampaignFields()
{
$dimensions = Base::getDimensions(new self());
Expand Down
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -87,6 +87,7 @@ For example, by default parameter `campaign_name` track following parameters if

## Changelog

* 3.1.0 (Sept 5th 2017) Show campaign information in visitor log and profile
* 3.0.1 (Mar 16th 2017) Enables segmented visitorlog for campaign reports
* 3.0.0 (March 2017) Plugin forked by Piwik team + Renamed + Compatibility with Piwik 3
* 1.4.0 Added possibility to configure custom campaign parameters names
Expand Down
55 changes: 55 additions & 0 deletions VisitorDetails.php
@@ -0,0 +1,55 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\MarketingCampaignsReporting;

use Piwik\Piwik;
use Piwik\Plugins\Live\VisitorDetailsAbstract;
use Piwik\View;

class VisitorDetails extends VisitorDetailsAbstract
{
public function extendVisitorDetails(&$visitor)
{
$fields = array(
'campaignId' => 'campaign_id',
'campaignContent' => 'campaign_content',
'campaignKeyword' => 'campaign_keyword',
'campaignMedium' => 'campaign_medium',
'campaignName' => 'campaign_name',
'campaignSource' => 'campaign_source',
);

foreach ($fields as $name => $field) {
$visitor[$name] = $this->details[$field];
}
}

public function renderVisitorDetails($visitorDetails)
{
$campaignData = array();
$fields = array(
'campaignId' => Piwik::translate('MarketingCampaignsReporting_CampaignId'),
'campaignName' => Piwik::translate('MarketingCampaignsReporting_Name'),
'campaignMedium' => Piwik::translate('MarketingCampaignsReporting_Medium'),
'campaignContent' => Piwik::translate('MarketingCampaignsReporting_Content'),
'campaignKeyword' => Piwik::translate('MarketingCampaignsReporting_Keyword'),
'campaignSource' => Piwik::translate('MarketingCampaignsReporting_Source'),
);

foreach ($fields as $field => $name) {
if (!empty($visitorDetails[$field])) {
$campaignData[$name] = $visitorDetails[$field];
}
}

$view = new View('@MarketingCampaignsReporting/visitorDetails');
$view->campaign = $campaignData;
return [[ 30, $view->render() ]];
}
}
4 changes: 2 additions & 2 deletions plugin.json
@@ -1,12 +1,12 @@
{
"name": "MarketingCampaignsReporting",
"description": "Measure the effectiveness of your marketing campaigns. New reports, segments & track up to five channels: campaign, source, medium, keyword, content.",
"version": "3.0.2",
"version": "3.1.0",
"keywords": ["Campaign", "Marketing", "Channels", "UTM tags"],
"license": "GPL v3+",
"homepage": "https://piwik.org",
"require": {
"piwik": ">=3.0.0,<4.0.0-b1"
"piwik": ">=3.1.0-rc1,<4.0.0-b1"
},
"support": {
"email": "hello@piwik.org",
Expand Down
8 changes: 8 additions & 0 deletions stylesheets/styles.less
@@ -0,0 +1,8 @@
.visitorReferrer.campaign {
display: none; /* do not show default campaign information in visitor log */
}

.visitorCampaign {
clear: both;
padding-top: 1em;
}
8 changes: 8 additions & 0 deletions templates/visitorDetails.twig
@@ -0,0 +1,8 @@
{% if campaign %}
<div class="visitorCampaign">
<b>{{ 'Referrers_ColumnCampaign'|translate }}</b><br/>
{% for name,value in campaign %}
{{ name }}: {{ value }}<br />
{% endfor %}
</div>
{% endif %}

0 comments on commit af1fd26

Please sign in to comment.