[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
Laravel – Seguimiento de los parámetros utm_* de Google Analytics para un mejor ROI de marketing – Truco simple
UTM…
“Demasiado tiempo; no he leído”
- Agregue un middleware para almacenar todos los parámetros utm en la sesión.
- Muestre estos detalles, junto con otros, como entradas ocultas en los CTA.
No es broma, no hay nada lujoso aquí, pero es súper efectivo y práctico.
Salte al título “La parte divertida” a continuación o sea mi invitado y lea lo siguiente aburrido…
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
Introducción tonta y aburrida
No vine para contarles todo sobre la importancia de los parámetros de consulta UTM, estoy aquí para compartir una experiencia sobre cómo aprovechar estos parámetros extremadamente beneficiosos y cómo hacer feliz a su departamento de marketing ahora.
Entonces, si desea realizar un seguimiento de las referencias de las plataformas de redes sociales, o tal vez una publicación de blog en algún lugar, o tal vez un enlace en un correo electrónico o en el sitio web de pie de página de su cliente, necesitará lo siguiente:
- Fuente (utm_source: Where)
- Medio (utm_medium: How)
- Campaña (utm_campaign: Why)
- Contenido (utm_content: detalles, lea la siguiente cita de las respuestas de Google)
Se utiliza para diferenciar contenido similar o enlaces dentro del mismo anuncio. Por ejemplo, si tiene dos enlaces de llamado a la acción dentro del mismo mensaje de correo electrónico, puede usar utm_content y establecer diferentes valores para cada uno para que pueda saber qué versión es más efectiva.
- Término (utm_term: palabra clave usada, palabras clave pagadas o no pagadas)
Entonces, ¿por qué como desarrollador estoy escribiendo sobre esto?
Porque implementaremos esto en Laravel para realizar un seguimiento de estos parámetros y porque será una forma en la que podamos incorporarlos en nuestros CTA y formularios de clientes potenciales. Además, estaremos dando una razón más para que la gente de marketing no sienta más que respeto por nosotros.
La Parte Divertida: Codificación
En 2 sencillos pasos:
- Agregue un middleware para almacenar todos los parámetros utm en la sesión.
- Muestre estos detalles, junto con otros, como entradas ocultas en los CTA.
Paso 1:
Middleware `StoreMarketingQueryParamsMiddleware` utilizado en Kernel.php
// Usage
class Kernel extends HttpKernel
{
// .....
// .....
// .....
protected $routeMiddleware = [
// .....
'store-marketing-query-params' => \App\Http\Middleware\StoreMarketingQueryParamsMiddleware::class,
];
}
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class StoreMarketingQueryParamsMiddleware
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$utmQueryParams = [
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content',
];
foreach ($utmQueryParams as $utmQueryParam) {
if ($request->has($utmQueryParam)) {
session()->put($utmQueryParam, $request->input($utmQueryParam));
}
}
return $next($request);
}
}
Paso 2:
Uso dentro de un archivo blade:
<!-- .... -->
<!-- UTM params -->
<input type="hidden" name="utm_source" value="{{ session('utm_source') }}">
<input type="hidden" name="utm_medium" value="{{ session('utm_medium') }}">
<input type="hidden" name="utm_campaign" value="{{ session('utm_campaign') }}">
<input type="hidden" name="utm_term" value="{{ session('utm_term') }}">
<input type="hidden" name="utm_content" value="{{ session('utm_content') }}">
<!-- Other handy inputs for marketing ROIs -->
<input type="hidden" name="url" value="{{request()->url()}}">
<input type="hidden" name="ip_address" class="ip" value="{{request()->ip()}}">
<input type="hidden" name="locale" value="{{ app()->getLocale() }}">
<!-- And you might want to add other inputs like: country, currency ..etc -->
<!-- .... -->
Conclusión
Aunque pueda pensar que este simple truco es realmente trivial, solo quiero recordarle que su usuario final generalmente visita su sitio web y navega por un par de páginas antes de completar un formulario de cliente potencial, por lo que almacena dichos detalles y sobrescribirlo con otros nuevos cada vez que llegan a su sitio web es realmente útil para el ROI de marketing, especialmente con Google Analytics.
Gracias por leer, querido geek.
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
