-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Add possibility to manage and view Apps #7131
Comments
This feature is rather large scope and un-clear how it will be done. But let's try to think about this. User story: as a developer I want to define a custom type (eg. Mobile App) and for properties of my custom type I want to:
see for inspiration: Facebook Analytics for apps real time demo |
To implement this feature we will need to work on things that we want to achieve mid/long term anyway. Eg having everything based on APIs, render things in the UI, refactor the Archiver for easy additions of new reports, clarify what is in core and what in plugins, make sure a plugin does not do things that should be in another plugin (eg Live plugin has knowledge of all other plugins, the I will use here the word "Type", this is the same as "Property" or whatever we will name it later. Reports (Widgets, Menus, ...)
Dimensions / metrics
Rename "website" wording If we use the word "website" or "site" somewhere, we should replace it with "App", "Mobile App", "Server", ... See #7833 Admin Websites UI See #7893 Tracking
In general
Example definition of a type This is very early work in progress. I think in the beginning we would only support defining a type in PHP but for simple types we could also allow a JSON definition this will be easy to develop if needed.
class Type
{
private $type = 'mobileapp';
private $name = 'Mobile App';
private $namePlural = 'Mobile Apps';
private $management = array(
'name' => 'App name',
'urls' => 'App identifiers',
'customFields' => array()
);
private $reports = array(
'disable' => array('Referrers', 'DevicesDetection.getBrowser*'),
'enable' => array(),
'rename' => array(
'VisitorInterest.getNumberOfVisitsByDaysSinceLast' => 'Sessions by days since last session'
)
);
private $metrics = array(
'nb_visitors' => 'Users',
'nb_visitor' => 'User',
'nb_unique_visitors' => 'Unique Users',
'nb_visits' => 'Sessions',
'nb_pageviews' => 'Screens'
);
} Part of our long term vision
Those things should be in core. Everything else on top should be in plugins. |
This would be the first step to get #4734 done. The idea is to add only one new type "App" (or "Mobile App") for now (it might be useful to directly add another one such as "API"). It is more like an experiment to make some first experiences with this topic.
Features:
org.piwik.mobile
(probably not needed). An API would maybe rather have an "Endpoint" instead of a URL.Some tasks to solve those tasks:
I think this would be enough for a first step and will already provide a value for our users. We will already face enough challenges during this and learn a lot about possible problems. In the following step we could maybe disable / enable some reports depending on the type. We should create a follow up issue for Piwik 2.13.0 after this issue is resolved. The follow up issue will depend on how much of this issue we will get done in 2.12.0 etc
We will develop this in a way that plugins will be directly able to define their own "Types" even though this won't be a public API or whatever for a long time. New types should be already developed in a plugin. The types "App" and "API" would be most likely removed in the releases as it will be experimental and probably not yet ready for end-users. I think it won't even make sense to put them on the Marketplace unless we think the API is already stable enough.
Maybe it could be by default as easy (from a plugin developer perspective) as something like this:
The text was updated successfully, but these errors were encountered: