Titan-Framework icon indicating copy to clipboard operation
Titan-Framework copied to clipboard

Add ability for developers to track theme/plugin users

Open ahmadawais opened this issue 10 years ago • 5 comments

If you could Add ability for developers to track theme/plugin users, that'd be great. This might help https://github.com/reduxframework/redux-framework/blob/master/ReduxCore/inc/tracking.php

ahmadawais avatar Sep 03 '15 02:09 ahmadawais

If this will be only applied to # of installs.. what if tracking data would be sent to titanframework.net and the numbers can be available publicly. That way, devs won't have to set up their own servers just to get this running. They would just be able to access their stats via http://titanframework.net/stats/?plugin=plugin_name ?

bfintal avatar Sep 03 '15 02:09 bfintal

Shouldn't be public. I am talking about actionable data, like Emails and what other plugins or themes they have installed :)

ahmadawais avatar Sep 03 '15 02:09 ahmadawais

Sounds like a good idea. However, I think it means we should also provide a "server" class/plugin that the dev would install on his server and that would collect and process all the data.

Regarding having an extra call to titanframework.net just to get some very basic stats (like active installs), it sounds like an interesting idea and a good marketing tool for TF.

julien731 avatar Sep 03 '15 03:09 julien731

How about this for a high level implementation idea:

In your project, you do a $titan->createTrackerSender() with arguments pointing to your receiving site URL:

// Inside tf_create_options
$titan->createTrackerSender( array(
    'url' => 'http://myserverwiththereceiver.com',
    'data' => array( 'plugins', 'url' ),
) );

In your own site that receives the data, you do a $titan->createTrackerReceiver() with arguments on saving the data.. thinking out loud, the argument may be a simple id so that getOption can just be used to get the tracked data and you can just do whatever you want with it.

// Inside tf_create_options
$titan->createTrackerReceiver( array(
    'id' => 'my_tracking_data',
) );

// In another area...
$titan->getOption( 'my_tracking_data' );

encryption, saving, caching, etc can be handled internally by Titan

bfintal avatar Sep 03 '15 06:09 bfintal

@bfintal That'd be great.

ahmadawais avatar Sep 03 '15 20:09 ahmadawais