Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin to exclude / include only some Urls parameter #5461

Closed
mattab opened this issue Jan 3, 2008 · 11 comments
Closed

Plugin to exclude / include only some Urls parameter #5461

mattab opened this issue Jan 3, 2008 · 11 comments
Assignees
Labels
Critical Indicates the severity of an issue is very critical and the issue has a very high priority. Enhancement For new feature suggestions that enhance Matomo's capabilities or add a new report, new API etc.
Milestone

Comments

@mattab
Copy link
Member

mattab commented Jan 3, 2008

This feature in phpMyVisites was very useful.
It is mostly used on websites with no readable URLs (?module=news&newsid=14&action=view)

The plugin would provide:
- exclude given parameters from URLs
- include only given parameters
- exclude all parameters during statistics logging

This feature would be available:
- “exclude parameters” would be available
\ in a general list applying to all websites (by default it would exclude PHPSESSID, jsessionid, SESSIONID, etc.)

\ at the website level: each website define their own parameters to exclude (evaluated on top of the global list)

- “Include only given parameters” available for each website
- “Exclude all parameters” available for each website
- by default, Piwik campaigns parameter would be excluded from URLs

The UI would call the API directly, hence ensuring that all these features are available through the UI too.

For example the url`
example.com/page/index.php?userid=8571498752487&module=homepage` could be`
example.com/page/index.php?module=homepage` after removing the userid parameter.

The UI for this feature should be designed to be part of a “preference page” for a website, as we need to add several new preferences for each website: #41, #42, #43, #56. Ideally, all the UI would be ajax (very quick to go from the list of websites in the admin UI, to load one website details page, to come back to the list of websites).

Outstanding question: should it be in the SiteManager plugin, or a new plugin? Should it be part of the core (to minimize overhead of loading plugins at Tracker time…)

@anonymous-matomo-user
Copy link

This might be solved for the time being with a small plugin. To discuss: alexander dot schwartz at gmx dot net. This has hardcoded cleaning for sessions.

<?php
/**
 * Piwik - Open source web analytics
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
 * @version $Id$
 *
 * @package Piwik_TidyUrl
 */

require_once "Tracker/Action.php";

class Piwik_TidyUrl_Tracker_Action extends Piwik_Tracker_Action {
        public function getActionName() {
                $actionName = parent::getActionName();
                $actionType = parent::getActionType();
                if ($actionType == 1) {
                        // remove tomcat jsession id
                        $actionName = preg_replace("/;jsessionid=[A-Za-z0-9\.]*/","",$actionName);
                        // remove seam conversation id (assuming always at end of url)
                        $actionName = preg_replace("/&amp;conversationId=[0-9]*/","",$actionName);
                        $actionName = preg_replace("/\\?conversationId=[0-9]*/","",$actionName);
                }
                return $actionName;
        }
}

/**
 *
 * @package Piwik_TidyUrl
 */
class Piwik_TidyUrl extends Piwik_Plugin
{
    public function getInformation()
    {
        $info = array(
            'name' => 'TidyUrl',
            'description' => 'TidyUrl',
            'author' => 'ahus1',
            'homepage' => 'http://www.ahus1.de/',
            'version' => '0.1',
            'TrackerPlugin' => true, // this plugin must be loaded during the stats logging
        );

        return $info;
    }

    function getListHooksRegistered()
    {
        $hooks = array(
            'Tracker.newAction' => 'logTidyUrl',
        );
        return $hooks;
    }


    /**
     * URL Tidy
     */
    public function logTidyUrl($notification)
    {
            $action =& $notification->getNotificationObject();
            $action = new Piwik_TidyUrl_Tracker_Action();
    }

}

@robocoder
Copy link
Contributor

I still like the idea of possibly doing the tidying in piwik.js (see #519).

@robocoder
Copy link
Contributor

In #1023, the user appears to propagate/persist the campaign parameters in the URL.

In conjunction with #79, we could have an option to filter all campaign parameters.

@anonymous-matomo-user
Copy link

While exluding params as a whole is required for session params, I could also see a drill down behaviour for certain parameters (like it's already done with sites and folders in Actions/Pages).

First, I get a total of all hits, and on click these hits are splitted based on parameter value.

Example:

/index.php -> 6 pageviews

After drill down:

/index.php?message=logout -> 5 pageviews

/index.php?message=invalid-credentials -> 1 pageview

This is perfectly possible for only one parameter, but get's tricky (at least UI-wise) with more params.

@mattab
Copy link
Member Author

mattab commented Feb 10, 2010

Also, the page providing this feature could have an option "Record all page names as lowercase to avoid duplicated page names with or without capital letters"

(if you have a better wording please suggest)

@robocoder
Copy link
Contributor

From #1180, add ability to filter out the anchor/fragment after the hashmark.

@mattab
Copy link
Member Author

mattab commented Mar 31, 2010

(In [2023]) Fixes #5461 Adding URL Query parameters exclude setting, per website, and global. We also by default exclude sessionid, phpsessid, etc.
The query parameters are excluded case insensitive.

@mattab
Copy link
Member Author

mattab commented Mar 31, 2010

(In [2024]) Refs #5461 The url shouldn't be htmlspecialchared

Also fixing notice when triggering a goal manually (piwik.trackGoal(goalId)) where the location_ip used to get the country, wasn't set for a known visitor

@robocoder
Copy link
Contributor

There's a typo in the 0.6 update script. excluded_parameters should be added to the table after excluded_ips is added.

@robocoder
Copy link
Contributor

(In [2037]) fixes #5461 - re-order schema change (dependencies)

@robocoder
Copy link
Contributor

(In [2193])
refs #5461, refs #1347 - regenerate cache files

@mattab mattab added this to the Piwik 0.6 milestone Jul 8, 2014
@mattab mattab self-assigned this Jul 8, 2014
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Critical Indicates the severity of an issue is very critical and the issue has a very high priority. Enhancement For new feature suggestions that enhance Matomo's capabilities or add a new report, new API etc.
Projects
None yet
Development

No branches or pull requests

3 participants