dwivedianuj9118/behavior-tracker
Composer 安装命令:
composer require dwivedianuj9118/behavior-tracker
包简介
Consent-first behavior & preference tracking for Laravel.
README 文档
README
Consent-first, privacy-aware behavior & preference tracking for Laravel 10/11.
Features
- Consent banner + tiny JS collector (beacon/fetch).
- POST endpoint to store events (page_view, click, preference, time_on_page, consent).
- Eloquent model + migration.
- Profile widget Blade partial.
- Optional middleware to auto-inject the script.
Install
- Add the package to your project (path repo during local dev):
{
"repositories": [
{ "type": "path", "url": "dwivedianuj9118/behavior-tracker" }
]
}
Then:
composer require wwivedianuj9118/behavior-tracker:@dev
Publish & migrate
php artisan vendor:publish --provider="Dwivedianuj9118\\BehaviorTracker\\BehaviorTrackerServiceProvider" --tag=behavior-tracker-migrations
php artisan vendor:publish --provider="Dwivedianuj9118\\BehaviorTracker\\BehaviorTrackerServiceProvider" --tag=behavior-tracker-config
php artisan vendor:publish --provider="Dwivedianuj9118\\BehaviorTracker\\BehaviorTrackerServiceProvider" --tag=behavior-tracker-assets
php artisan migrate
Inject banner + script (layout)
{{-- resources/views/layouts/app.blade.php --}}
@include('behavior-tracker::consent-banner')
<script src="{{ asset('vendor/behavior-tracker/behavior-collector.js') }}" data-endpoint="{{ config('behavior-tracker.endpoint_path') }}"></script>
Or enable auto-inject via middleware:
Set auto_inject => true in config/behavior-tracker.php.
Add middleware to your web group (optional):
protected $middlewareGroups = [
'web' => [
// ...
\Dwivedianuj9118\BehaviorTracker\Http\Middleware\InjectBehaviorScript::class,
],
];
Show profile widget
@include('behavior-tracker::profile-widget', ['user' => auth()->user()])
Usage
Auto page view is sent on DOMContentLoaded (after consent=Yes).
Track clicks by adding data-behavior="add_to_cart" on elements; events are POSTed to endpoint_path.
Send custom events from your app:
window.BehaviorTracker.sendEvent('preference', { key: 'category', value: 'electronics' });
Config
See config/behavior-tracker.php.
Privacy
Consent required by default (require_consent true).
Provide export/delete UI in your app if needed using /behavior/my-data and your own deletion endpoint.
Testing
vendor/bin/phpunit
---
## 🧪 tests/Feature/CollectEndpointTest.php
```php
<?php
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Route;
use Dwivedianuj9118\BehaviorTracker\Models\UserBehavior;
uses(RefreshDatabase::class);
it('rejects without consent when required', function () {
config(['behavior-tracker.require_consent' => true]);
$response = $this->postJson('/behavior/collect', [
'event_type' => 'page_view',
'payload' => ['url' => '/'],
]);
$response->assertStatus(403);
});
it('accepts with consent header', function () {
config(['behavior-tracker.require_consent' => true]);
$response = $this->postJson('/behavior/collect', [
'event_type' => 'page_view',
'payload' => ['url' => '/']
], ['X-Behavior-Consent' => 'yes']);
$response->assertOk();
$this->assertDatabaseCount('user_behaviors', 1);
});
dwivedianuj9118/behavior-tracker 适用场景与选型建议
dwivedianuj9118/behavior-tracker 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 dwivedianuj9118/behavior-tracker 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dwivedianuj9118/behavior-tracker 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 27
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-10