namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use ProtoneMedia\AnalyticsEventTracking\Listeners\DispatchAnalyticsJob;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
DispatchAnalyticsJob::class,
],
];
}
namespace App\Http\Controllers;
use App\Order;
use App\Http\Requests\CreateOrderRequest;
use ProtoneMedia\AnalyticsEventTracking\Http\ClientIdRepository;
class CreateOrderController
{
public function __invoke(CreateOrderRequest $request, ClientIdRepository $clientId)
{
$attributes = $request->validated();
$attributes['google_analytics_client_id'] = $clientId->get();
return Order::create($attributes);
}
}
php
namespace App\Events;
use App\Order;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use ProtoneMedia\AnalyticsEventTracking\ShouldBroadcastToAnalytics;
class OrderWasCreated implements ShouldBroadcastToAnalytics
{
use Dispatchable, SerializesModels;
public $order;
public function __construct(Order $order)
{
$this->order = $order;
}
}
php
namespace App\Events;
use App\Order;
use TheIconic\Tracking\GoogleAnalytics\Analytics;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use ProtoneMedia\AnalyticsEventTracking\ShouldBroadcastToAnalytics;
class OrderWasCreated implements ShouldBroadcastToAnalytics
{
use Dispatchable, SerializesModels;
public $order;
public function __construct(Order $order)
{
$this->order = $order;
}
public function withAnalytics(Analytics $analytics)
{
$analytics->setEventValue($this->order->sum_in_cents / 100);
}
public function broadcastAnalyticsActionAs(Analytics $analytics)
{
return 'CustomEventAction';
}
}
php
namespace App\Events;
use App\Order;
use TheIconic\Tracking\GoogleAnalytics\Analytics;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use ProtoneMedia\AnalyticsEventTracking\ShouldBroadcastToAnalytics;
class OrderWasPaid implements ShouldBroadcastToAnalytics
{
use Dispatchable, SerializesModels;
public $order;
public function __construct(Order $order)
{
$this->order = $order;
}
public function withAnalytics(Analytics $analytics)
{
$analytics->setClientId($this->order->google_analytics_client_id);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.