marshmallow / google-analytics
向您的Google Analytics发送请求从未如此简单。支持电子商务跟踪。
v1.1.2
2021-04-07 10:43 UTC
Requires
- php: ^7.0|^8.0
- marshmallow/helpers: ^2.0
This package is auto-updated.
Last update: 2024-09-05 10:41:46 UTC
README
Laravel Google Analytics包
向您的Google Analytics发送请求从未如此简单。
安装
您可以通过composer安装此包
composer require marshmallow/google-analytics
使用方法
与事件监听器一起使用
使用此包最简单的方法是使用事件和监听器。例如,如果您想使用电子商务跟踪,您应该创建一个名为OrderCreated
的事件。此事件应实现GoogleAnalyticsEvent
。这将要求您实现withAnalytics
方法。
namespace App\Events; use Marshmallow\GoogleAnalytics\GoogleAnalytics; use Marshmallow\GoogleAnalytics\Contracts\GoogleAnalyticsEvent; class OrderCreated implements GoogleAnalyticsEvent { //... public function withAnalytics(GoogleAnalytics $analytics): GoogleAnalytics { // } }
withAnalytics
方法
withAnalytics
将为您提供一个GoogleAnalytics
实例,您可以在其中添加希望发送到Google Analytics的Google Types
。以下是一个示例。
class OrderCreated implements GoogleAnalyticsEvent { protected $order; public function __construct(Order $order) { $this->order = $order; } public function withAnalytics(GoogleAnalytics $analytics): GoogleAnalytics { $ecommerce = (new EcommerceTracking) ->id($this->order->id) ->affiliation(env('APP_NAME')) ->revenue($this->order->revenue()) ->shipping($this->order->shippingCost()) ->tax($this->order->tax()) ->currency('EUR'); return $analytics->ecommerceTracking($ecommerce); } }
注册监听器
将GoogleEcommerceTrigger
监听器添加到您的EventServiceProvider.php
。
OrderCreated::class => [ GoogleEcommerceTrigger::class ]
连接类型
您可以添加任意多的类型。继续上面的例子,假设您想告诉Google Analytics哪些产品与这个订单一起销售。
class OrderCreated implements GoogleAnalyticsEvent { protected $order; public function __construct(Order $order) { $this->order = $order; } public function withAnalytics(GoogleAnalytics $analytics): GoogleAnalytics { $analytics->ecommerceTracking($ecommerce); foreach ($this->order->products as $product) { $hitItem = (new ItemHit) ->id($this->order->id) ->name($product->name()) ->price($product->price()) ->quantity($product->quantity()) ->code($product->sku()) ->variation($product->category->name) ->currency('EUR'); $analytics->itemHit($hitItem); } } }
Google事件类型
以下是我们目前支持的不同Google Types的概述以及如何使用它们。
事件
$pageview = (new Pageview) ->hostname('marshmallow.dev') ->page('/home') ->title('homepage'); $analytics->pageview($pageview);
事件
$event = (new Event) ->category('video') ->action('play') ->label('holiday') ->value(300); $analytics->event($event);
电子商务跟踪
$ecommerce = (new EcommerceTracking) ->id(123456) ->affiliation('westernWear') ->revenue(50.00) ->shipping(32.00) ->tax(12.00) ->currency('EUR'); $analytics->ecommerceTracking($ecommerce);
电子商务商品(商品点击)
$item1 = (new ItemHit) ->id(12345) ->name('sofa') ->price(300) ->quantity(2) ->code('u3eqds43') ->variation('furniture') ->currency('EUR'); $analytics->itemHit($item1);
独立示例
如果您不想与事件和监听器一起使用,也可以独立使用。
$pageview = (new Pageview) ->hostname('marshmallow.dev') ->page('/home') ->title('homepage'); (new GoogleAnalytics()) ->version(1) ->trackingId(env('SEO_GA')) ->anonymousClientId() ->pageview($pageview) /** * Call the sendToGoogle method at the end */ sendToGoogle();
变更日志
有关最近更改的更多信息,请参阅变更日志。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件stef@marshmallow.dev而不是使用问题跟踪器来联系。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。