devlop/utm-parameters

框架无关的UTM参数助手

1.5.2 2023-01-07 06:47 UTC

This package is auto-updated.

Last update: 2024-09-07 10:17:00 UTC


README

Latest Stable Version License

UTM参数

框架无关(PSR-7兼容)的UTM参数助手,这个工具将简化UTM参数的工作。

安装

composer require devlop/utm-parameters

使用

捕获传入的UTM参数

基本思路是从查询中捕获传入的UTM参数并将它们存储在cookie中,以备后用。

创建一个遵循此逻辑的中介(或类似)

use Devlop\UtmParameters\UtmParameters;

// Capture incoming UTM parameters from the query
$utmParameters = UtmParameters::capture($request);

if ($utmParameters !== null) {
    // Remember the UTM parameters in cookies for 30 days
    $utmParameters->remember($response, 30);
}

检索存储的UTM参数

稍后当你需要存储的UTM参数时(例如,在注册或下订单后),你可以轻松地检索它们。

use Devlop\UtmParameters\UtmParameters;

// Retrieve stored UTM parameters from cookies
$utmParameters = UtmParameters::retrieve($request);

if ($utmParameters !== null) {
    // do something with the UTM parameters
    // optionally forget the cookies
    $utmParameters->forget($response);
}

可用方法

Devlop\UtmParameters\UtmParameters具有以下可用方法

public function getSource() : string

获取 utm_source 参数。

public function getMedium() : ?string

获取 utm_medium 参数。

public function getCampaign() : ?string

获取 utm_campaign 参数。

public function getTerm() : ?string

获取 utm_term 参数。

public function getContent() : ?string

获取 utm_content 参数。

public function toArray() : array

获取所有参数作为数组

[
    "utm_source" => "github",
    "utm_medium" => "email",
    "utm_campaign" => "hackathon_2021",
    "utm_term" => null,
    "utm_content" => null,
]

迭代

UtmParameters是可迭代的

foreach ($utmParameters as $parameter => $value) {
    // ...
}

常量

所有参数键都作为常量在UtmParameters上可用,以避免在代码中硬编码任何参数键。

$parameters = $utmParameters->toArray();

$parameters[UtmParameters::SOURCE];
$parameters[UtmParameters::MEDIUM];
$parameters[UtmParameters::CAMPAIGN];
$parameters[UtmParameters::TERM];
$parameters[UtmParameters::CONTENT];

支持的请求/响应

在捕获/检索UTM参数时,支持以下请求。

在记住/忘记UTM参数时,支持以下响应。

Laravel

Cookie外观

在Laravel中,最简单的方法是使用全局cookie()辅助方法来获取QueueingFactory的实例,以便将cookie附加到响应

中介

utm-parameters附带了用于Laravel的中介,您可以使用它。

app/Http/Kernel.php中添加中介,中介将自动捕获任何传入的UTM参数并将它们存储在cookie中,持续时间为30天。

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            // other configured middleware
            \Devlop\UtmParameters\Laravel\StoreUtmParametersInCookies::class,
        ],
    ];
}