![image](https://private-user-images.githubusercontent.com/1523305/293961619-b1d71975-f0a5-4127-8214-e36e2a58d3f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwODI2OTMsIm5iZiI6MTcyMjA4MjM5MywicGF0aCI6Ii8xNTIzMzA1LzI5Mzk2MTYxOS1iMWQ3MTk3NS1mMGE1LTQxMjctODIxNC1lMzZlMmE1OGQzZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjdUMTIxMzEzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGZjZGQwNGVhMTNkY2NkZWIyYzgwN2M4N2I2OGE2YjM3ZmU0NzgwYTVkNTRjNzAxMmQyYmJkYjliZDUzZmYwNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.TXR9bLalpqEMhetn_nRFzWrGS9P9IcK896Zd7jv_lqU)
![image](https://private-user-images.githubusercontent.com/1523305/293961619-b1d71975-f0a5-4127-8214-e36e2a58d3f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwODI2OTMsIm5iZiI6MTcyMjA4MjM5MywicGF0aCI6Ii8xNTIzMzA1LzI5Mzk2MTYxOS1iMWQ3MTk3NS1mMGE1LTQxMjctODIxNC1lMzZlMmE1OGQzZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjdUMTIxMzEzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGZjZGQwNGVhMTNkY2NkZWIyYzgwN2M4N2I2OGE2YjM3ZmU0NzgwYTVkNTRjNzAxMmQyYmJkYjliZDUzZmYwNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.TXR9bLalpqEMhetn_nRFzWrGS9P9IcK896Zd7jv_lqU)
/* | |
First-Click, Last-Click, Even-Click and Time Decay Attribution for GA4 | |
Replace "event_name in ('Contact Us','Contact Us Clicked','CTA Pressed','Form Submitted')" with the name(s) of your conversion event in lines 54, 57, 61 and 76 | |
*/ | |
WITH | |
events AS ( | |
SELECT | |
event_timestamp as event_ts, | |
user_pseudo_id AS user_pseudo_id, | |
user_id, |
FROM php:7.4-fpm | |
RUN apt-get update && apt-get install -y libldb-dev libldap2-dev libzip-dev libpng-dev libjpeg62-turbo-dev libfreetype6-dev \ | |
&& docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \ | |
&& docker-php-ext-install -j$(nproc) zip pdo pdo_mysql gd ldap pcntl opcache |
trait CreatesWithLock | |
{ | |
public static function updateOrCreate(array $attributes, array $values = []) | |
{ | |
return static::advisoryLock(function () use ($attributes, $values) { | |
// emulate the code found in Illuminate\Database\Eloquent\Builder | |
return (new static)->newQuery()->updateOrCreate($attributes, $values); | |
}); | |
} |
// initialise various variables | |
var page = require('webpage').create(), | |
system = require('system'), | |
address; | |
// how long should we wait for the page to load before we exit | |
// in ms | |
var WAIT_TIME = 5000; | |
// if the page hasn't loaded after this long, something is probably wrong. |
<?php | |
namespace App\Providers; | |
use Illuminate\Support\Collection; | |
use Illuminate\Pagination\LengthAwarePaginator; | |
class AppServiceProvider extends ServiceProvider | |
{ | |
public function boot() |
<?php namespace App\Http\Middleware; | |
use Closure; | |
use Illuminate\Http\Response; | |
class DBTransaction | |
{ | |
/** | |
* Handle an incoming request. | |
* |