All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- http://phppackagechecklist.com/#1,2,3,4,5,6,9,10,11,12,13,14 Complete check list items.
- Add unit tests.
- Add facade(s) for use in views.
- Detect through subscription create when a user had previously unsubscribed (churn), then resubscribes (unchurn). (This is already detected in subscription update.)
- Filter any incoming web-hook events that are in test mode.
- configuration setting to disable the default-bundled tracking hooks.
- event listeners to properly detect new laravel 5.2 events.
- event listener to work with Laravel 5.2 core events.
- tracking of robots, if a browser isn't detected, and it is confirmed as a robot.
- incorrect usage of array_filter, causing empty strings to be passed.
- reverted from using getAttribute(), as it is redundant.
- refactored
track()
method to track: Url, Operating System, Hardware, Browser, Referring Domain, IP (For GeoLocation)
- any "unknown" values from being passed.
- referenced to user model properties to use
getAttribute()
instead of referencing them directly.
- tracking of
name
in addition tofirst name
andlast name
. - tracking of
referrer
andreferring domain
to help get additional information for Live View (may not yet work fully).
- improper tracking of user details, which caused users' names to be blank and a
0 Object [object]
field to be tracked erroneously. - fixed tracking to not depend on
$user->id
when referencing the primary key, but pulling it dynamically instead.
- documentation references to old Mixpanel class.
- usage of first_name and last_name attributes on User classes that don't have them.
- Exception if no
$user->created_at
attribute exists.
- FQCN references in event handler.
- namespace for controller in routes file.
- namespace for service provider.
- path to routes file.
- Move to new repository, change namespace.
- Change referer detection.
- Identify user when tracking Page View if logged in.
- Update "Last Seen" timestamp when logged-in user views a page.
- Referrer is now also recorded in Page View tracks.
- Temporarily disabled alias() until its purpose and usefulness is better assessed.
- Namespace HTTP/Controllers changed to Http/Controllers.
- Fixed method to detect current URL.
- Attempt at fixing client IP detection.
- PHP version requirement updated to >5.5.
- Fix namespace and path references.
- Fix URL and Route detection for 'Page View' tracking.
- Fixed detection of Page View elements to only be added if they exist.
- Upgraded to Laravel 5.1
- Page View tracking.
- MixPanel alias() on registration to enabled proper funneling.
- Ignore transfer transactions.
- Additional check to detect stripe customer number.
- Tightened sanity checks on subscription user detection.
- Extracted logic to get stripe customer id and throw exception if not found.
- Fixed logic error in customer ID parsing.
- Refactored subscription update functionality to be a little more robust. Testing all aspects of this has proven difficult, as Stripes webhook tests don't account for all variations possible in a given webhook request type.
- Added FromPlan and ToPlan when tracking subscription changes.
- Subscription updates check for previous subscription information, as not all subscription changes have it.
- Checked for existence of user when logging out before identifying with MixPanel.
- Webhook for tracking Stripe events.
- Documented MixPanel events in README.
- Sanitize People data before setting it, so that values don't get erased if something is not set.
- Fix method parameters.
- Track client IP address.
- Ignore charge updates.
- Formatting of non-existent dates during profile setting.
- Detection of stripe customer id in webhook.
- Updated
composer.json
details. - Updated README details.
- Renamed events to model the formula <what + action>, i.e. "Login Succeeded" or "Page Viewed".
- Update profile information if not set (i.e. for prior existing users).
- Log signup date as string, not as object.
- Name detection on user model.
- Initial package development.
- User observer.
- User events handler.
- DocBlocks.