Archivo de la categoría: Sin categorizar

¿Qué se necesita para escalar WooCommerce?

Una de las preguntas más comunes que escucho mucho sobre WordPress y el comercio electrónico gira en torno a la noción de WooCommerce y su capacidad de escalar. «¿Puedes escalar WooCommerce?» la gente me pregunta Y mi respuesta siempre es sí.

Pero nunca es tan simple como eso, ¿verdad?

La gente quiere saber si solo estás siendo amable, esperanzado o simplemente no tienes la experiencia suficiente para saber si WooCommerce realmente puede manejar una gran cantidad de tráfico.

Para mí, que trabajo con WooCommerce y clientes desde hace algunos años, la escala ha sido un objetivo en movimiento. En un momento, ver una tienda obtener miles de visitas por hora era un tema de conversación en torno a la escala. Luego, fueron toneladas de pedidos simultáneos. Y, finalmente, los requisitos de escala realmente locos, a fines de 2015.

Para entrar en el tema, primero tenemos que definir algunos términos.

¿Cómo se define «escala»?

La escala puede significar muchas cosas diferentes para diferentes personas.

Algunas personas hablarán sobre la escala en el mundo de las páginas vistas. Cuántas vistas de página por día (u hora) están ocurriendo en un sitio de WooCommerce. La verdad es que, con el tipo correcto de estrategias de almacenamiento en caché, esta es una métrica que no nos ayudará mucho cuando se trata de escalar. A menos que no pueda almacenar en caché ninguna parte de sus páginas, los recuentos de páginas vistas no son un buen indicador de escala.

Otros usarán los ingresos por día como una métrica de escala. Desafortunadamente, esto termina siendo una comparación de manzanas con naranjas porque los ingresos de los sitios que venden papel de lija a $ 0.40 por hoja y las tiendas que venden mochilas a $ 300 cada una realmente no se pueden comparar.

Te acercas cuando hablas de volumen de pedidos. Pero el problema con los pedidos es que las personas pueden comenzar y ordenar y luego abandonarlo, ya sabes, abandonar el carrito. Y eso significa que no se contará en su evaluación de esa métrica. Porque la mayoría de las personas, cuando hablan de órdenes, hablan de órdenes cerradas.

Entonces, ¿qué métrica uso (y recomiendo)? Añade al carrito eventos por hora (o minuto). Esto pone a todos los sitios en igualdad de condiciones. Desafortunadamente, esta no es una métrica que aparece directamente del sistema de informes de WooCommerce. Tendrá que trabajar un poco para capturar y monitorear la métrica. Pero creo que es la mejor manera de evaluar el comportamiento en un sitio, al tiempo que observa la correlación con el tráfico y el volumen de pedidos.

Una vez que tenga la métrica correcta, puede comenzar a medir dónde se encuentra y determinar qué tipo de cosas quiere hacer para llegar a donde quiere estar. Para mi cliente en 2015, pasamos un año trabajando con ellos y su sitio (y código) para lograr 2000 eventos de agregar al carrito por minuto.

¡Eso es lo que yo llamo escala!

¿Qué áreas necesitan escalar?

Navegación posterior a la tienda

Uno de los errores más comunes que cometen las personas con su sitio WooCommerce es creer que después de completar un pedido, las personas abandonarán el sitio. Es un error común porque a todos nos gusta pensar transaccionalmente. Así que vas a la tienda, haces tu compra y luego te vas.

Pero algunas personas finalizan su compra y pueden quedarse, explorando la tienda nuevamente. Solo que esta vez, todavía están conectados. Y eso significa que no hay nada en caché. Y cada clic y página que visitan está llamando a su base de datos.

Entonces, lo primero que debe observar, que es realmente simple, es asegurarse de que después de completar un pedido, desconecte a las personas para que puedan navegar por la tienda almacenada previamente en caché sin causar problemas de escala.

Estrategias de almacenamiento en caché para páginas de categorías y menús

Debido a que es un sitio de comercio electrónico, muchos desarrolladores simplemente se saltan el almacenamiento en caché por completo. No quieren preocuparse de que puedan configurar incorrectamente algo como Varnish. Entonces, al final, nada se almacena en caché, y ese es otro error. Una tonelada del sitio aún puede beneficiarse directamente desde una perspectiva de almacenamiento en caché, incluso una agresiva.

Gran parte del catálogo se puede almacenar en caché y solo necesita actualizar las cosas si alguien realiza un cambio en la definición del producto. Y en lugar de usar WooCommerce para crear sus páginas de categoría, puede crear las páginas que desee y eliminar más consultas allí. Y si estamos hablando de almacenar en caché y limitar las llamadas de consulta, mire sus menús y vea cuántos de ellos deben ser dinámicos.

La mesa Postmeta

Cada pedido que se escribe en su base de datos está colocando todos los datos del pedido en su tabla postmeta. Esta tabla crece rápidamente y el número de consultas aumenta. Una cosa que podría considerar es interceptar las órdenes y escribirlas en una sola fila de varias columnas. Pero si ese tipo de cambio lo asusta (y entiendo perfectamente por qué lo haría), también podría considerar hacer un cambio de tabla en la base de datos que ayude a que los índices funcionen mejor. ¡Esto puede tener un impacto inmediato!

La página Mis cuentas

Sé que a menudo hemos encontrado que la página Mis cuentas es un lugar donde pueden ocurrir toneladas de optimización del rendimiento. Piénselo por un segundo: los clientes vienen aquí para verificar cosas sobre sus pedidos, pero las llamadas consultan todo, todos sus datos históricos. Y eso sucede por qué otros están tratando de pedir cosas.

Lo que vimos fue que trabajar en estas llamadas y evaluarlas se traduciría en una reducción masiva de los retrasos en el rendimiento, y eso resultó en una mayor escalabilidad inmediata.

Cambiar el motor de consultas por completo

¿Qué pasaría si pudiera cambiar la forma en que se ejecutan las consultas por completo? ¿Y si pudieras hacer todo más rápido? ¿Con un solo cambio? Eso sería casi demasiado bueno para ser verdad, ¿verdad? Pues tienes razón, nunca es solo una cosa. Pero implementar ElasticSearch y hacer que haga muchas de las consultas por usted podría proporcionar grandes ganancias.

¿La escala de WooCommerce requiere mucho código personalizado?

No son toneladas de código personalizado el problema. El verdadero problema para escalar su sitio WooCommerce es la experiencia. Si nunca lo has hecho, es probable que no sepas cómo hacerlo. De hecho, ni siquiera sabes qué buscar. Entonces, si bien es posible que necesite un poco de código, lo que probablemente necesite son algunos recursos recomendados.

Déjame ayudarte con eso. Conozco bien cada una de estas empresas y confío en ti en todas sus manos.

Una última cosa…

Por supuesto, también debo mencionar que si pasar mucho tiempo pensando en cómo escalar WooCommerce no es en lo que desea invertir su tiempo, creamos un producto de alojamiento de WooCommerce administrado que lo ayudará a ejecutar su sitio de WooCommerce a escala. Automáticamente. ¡Todo lo anterior, y más, está incluido!

php

Una clase PHP para la pasarela de pagos redsys / sermepa

La clase sermepa actualmente Redsys sirve para generar el formulario que se comunicará con la pasarela de pagos que usan muchos bancos, como Santander, Sabadell, Lacaixa, etc.

Es una versión que irá creciendo y actualizándose poco a poco y mejorándolo.

https://github.com/ssheduardo/sermepa

Requerimientos mínimos

PHP 5 >= 5.3.0, PHP 7.1, 8.0

Instalación

Si usas composer tienes 2 opciones

1.- Por línea de comandos

composer require sermepa/sermepa

2.- Creas o agregas a tu archivo composer.json la siguiente dependencia:

{
   "require": {
      "sermepa/sermepa": "^1.3.2"
   }
}

Luego ejecutas:

composer update

Si en caso contrario no usas composer, bastará con clonar el repositorio

git clone https://github.com/ssheduardo/sermepa.git

¿Cómo usar la clase?

Ejemplo:

//Si usas composer
//include_once('vendor/autoload.php');

//Si clonaste la clase
//include_once('sermepa/src/Sermepa/Tpv/Tpv.php');

try{
    //Key de ejemplo
    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';

    $redsys = new Sermepa\Tpv\Tpv();
    $redsys->setAmount(rand(10,600));
    $redsys->setOrder(time());
    $redsys->setMerchantcode('999008881'); //Reemplazar por el código que proporciona el banco
    $redsys->setCurrency('978');
    $redsys->setTransactiontype('0');
    $redsys->setTerminal('1');
    $redsys->setMethod('C'); //Solo pago con tarjeta, no mostramos iupay
    $redsys->setNotification('http://localhost/noti.php'); //Url de notificacion
    $redsys->setUrlOk('http://localhost/ok.php'); //Url OK
    $redsys->setUrlKo('http://localhost/ko.php'); //Url KO
    $redsys->setVersion('HMAC_SHA256_V1');
    $redsys->setTradeName('Tienda S.L');
    $redsys->setTitular('Pedro Risco');
    $redsys->setProductDescription('Compras varias');
    $redsys->setEnvironment('test'); //Entorno test

    $signature = $redsys->generateMerchantSignature($key);
    $redsys->setMerchantSignature($signature);

    $form = $redsys->createForm();
} catch (\Sermepa\Tpv\TpvException $e) {
    echo $e->getMessage();
}
echo $form;

Con esto generamos el form para la comunicación con la pasarela de pagos.

Enviar datos de la tarjeta

Si queremos enviar los datos de la tarjeta para que no nos lo solicite la pasarela de pagos, podemos hacerlo de la siguiente forma.

try{
    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';

    $redsys = new Sermepa\Tpv\Tpv();
    $redsys->setAmount(rand(10,600));
    $redsys->setOrder(time());
    $redsys->setMerchantcode('999008881'); //Reemplazar por el código que proporciona el banco
    $redsys->setCurrency('978');
    $redsys->setTransactiontype('0');
    $redsys->setTerminal('1');
    $redsys->setMethod('C'); //Solo pago con tarjeta, no mostramos iupay
    $redsys->setNotification('http://localhost/noti.php'); //Url de notificacion
    $redsys->setUrlOk('http://localhost/ok.php'); //Url OK
    $redsys->setUrlKo('http://localhost/ko.php'); //Url KO
    $redsys->setVersion('HMAC_SHA256_V1');
    $redsys->setTradeName('Tienda S.L');
    $redsys->setTitular('Juan Risco');

    $redsys->setPan('4548812049400004'); //Número de la tarjeta
    $redsys->setExpiryDate('2012'); //AAMM (año y mes)
    $redsys->setCVV2('123'); //CVV2 de la tarjeta

    $redsys->setEnvironment('test'); //Entorno test

    $signature = $redsys->generateMerchantSignature($key);
    $redsys->setMerchantSignature($signature);

    $form = $redsys->createForm();
} catch (\Sermepa\Tpv\TpvException $e) {
    echo $e->getMessage();
}
echo $form;

Pago con referencia

Esta operativa nos permite guardar los datos de la tarjeta. SIS almacena la tarjeta y devuelve la referencia que deberá ser almacenada por el comercio.

Imaginemos que en el ejemplo anterior, queremos guardar los datos de la tarjeta, solo bastará con agregar el método setIdentifier(). Cuando se haga el llamado a la url de notificación, éste nos devolverá Ds_Merchant_Identifier y Ds_ExpiryDate.

//Para una nueva referencia agregar este método al ejemplo anterior
$redsys->setIdentifier();

//En la url de notificación nos devolverá algo como esto
Array
(
    [Ds_Date] => 17%2F02%2F2022
    [Ds_Hour] => 23%3A25
    [Ds_SecurePayment] => 1
    [Ds_Card_Number] => 491801******4602
    [Ds_ExpiryDate] => 3212
    [Ds_Merchant_Identifier] => 2214a9c5ac0bd6e0fg476e6b3468ac4fa38a592c
    [Ds_Card_Country] => 724
    [Ds_Amount] => 0
    [Ds_Currency] => 978
    [Ds_Order] => 1645136683
    [Ds_MerchantCode] => 999008881
    [Ds_Terminal] => 001
    [Ds_Response] => 0000
    [Ds_MerchantData] =>
    [Ds_TransactionType] => 0
    [Ds_ConsumerLanguage] => 1
    [Ds_AuthorisationCode] => 005090
    [Ds_Card_Brand] => 1
    [Ds_Merchant_Cof_Txnid] => 2202172334011
    [Ds_ProcessedPayMethod] => 1
    [Ds_Control_1645136701458] => 1645136701458
)

Ahora bien, si queremos realizar otro cobro sin que nos pidan los datos de la tarjeta para ese mismo usuario, bastará con pasar el Ds_Merchant_Identifier anterior en el método setIdentifier().

Cada banco tiene un sistema de seguridad a través de un código de SMS, tarjeta de coordenadas, etc. que se mostrará para completar la transacción.

$redsys->setIdentifier(2214a9c5ac0bd6e0fg476e6b3468ac4fa38a592c);

//En la url de notificación nos devolverá algo como esto
Array
(
    [Ds_Date] => 17%2F02%2F2022
    [Ds_Hour] => 23%3A28
    [Ds_SecurePayment] => 1
    [Ds_Card_Number] => 491801******4602
    [Ds_Merchant_Identifier] => 2214a9c5ac0bd6e0fg476e6b3468ac4fa38a592c
    [Ds_Card_Country] => 724
    [Ds_Amount] => 12000
    [Ds_Currency] => 978
    [Ds_Order] => 1645136909
    [Ds_MerchantCode] => 999008881
    [Ds_Terminal] => 001
    [Ds_Response] => 0000
    [Ds_MerchantData] =>
    [Ds_TransactionType] => 0
    [Ds_ConsumerLanguage] => 1
    [Ds_AuthorisationCode] => 078737
    [Ds_Card_Brand] => 1
    [Ds_Merchant_Cof_Txnid] => 2202172334011
    [Ds_ProcessedPayMethod] => 1
    [Ds_Control_1645136925978] => 1645136925978
)

Si no queremos que nos muestre ninguna pantalla y directamente realice el pago debemos hacer uso del método setMerchantDirectPayment():

$redsys->setMerchantDirectPayment(true);

También podemos hacer los cobros recurrentes a traves de Rest.

try{
    //Key de ejemplo
    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';

    $redsys = new Sermepa\Tpv\Tpv();
    $redsys->setAmount(rand(20,80));
    $redsys->setOrder(time());
    $redsys->setMerchantcode('999008881'); //Reemplazar por el código que proporciona el banco

    $redsys->setCurrency('978');
    $redsys->setTransactiontype('0');
    $redsys->setTerminal('1');
    $redsys->setIdentifier('2214a9c5ac0bd6e0fg476e6b3468ac4fa38a592c');
    $redsys->setVersion('HMAC_SHA256_V1');
    $redsys->setEnvironment('restTest'); //Rest entorno test
    $redsys->setMerchantCofIni('N');
    $redsys->setMerchantDirectPayment(true);

    $redsys->setMerchantCofTxnid(2202172334011);

    $signature = $redsys->generateMerchantSignature($key);
    $redsys->setMerchantSignature($signature);

    $response = json_decode($redsys->send(), true);

    $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);
    $DsResponse = $parameters["Ds_Response"];
    $DsResponse += 0;
    if ($redsys->check($key, $response) && $DsResponse <= 99) {
        //Si es todo correcto ya podemos hacer lo que necesitamos, para este ejemplo solo mostramos los datos.
        print_r($parameters);
    } else {
        //acciones a realizar si ha sido erroneo
    }

} catch (\Sermepa\Tpv\TpvException $e) {
    echo $e->getMessage();
}

Comprobación de Pago

Podemos comprobar si se ha realizado el pago correctamente. Para ello necesitamos setear la clave del banco y pasar la variable $_POST que nos devuelve en la URL de notificación o de retorno. Tener en cuenta que debemos realizar esta comprobación en la url de notificación. Por ejemplo, en el fichero que es llamado por la URL de retorno:

try{
    $redsys = new Sermepa\Tpv\Tpv();
    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';

    $parameters = $redsys->getMerchantParameters($_POST["Ds_MerchantParameters"]);
    $DsResponse = $parameters["Ds_Response"];
    $DsResponse += 0;
    if ($redsys->check($key, $_POST) && $DsResponse <= 99) {
        //acciones a realizar si es correcto, por ejemplo validar una reserva, mandar un mail de OK, guardar en bbdd o contactar con mensajería para preparar un pedido
    } else {
        //acciones a realizar si ha sido erroneo
    }
} catch (\Sermepa\Tpv\TpvException $e) {
    echo $e->getMessage();
}

https://github.com/ssheduardo/sermepa

Download-Official-Remix-OS-

Como descargar e instalar Remix OS 2

1. Prepara todos los archivos

En Windows, hazte tanto con la herramienta USB de Remix como con la ISO de Remix OS. La herramienta ocupa poco más de 4 MB, mientras que la ISO son 2 Gb, que la persona que lo filtró ha comprimido en algo más de 600 MB.

El Windows Defender de Windows 10 se empeña en detectar la herramienta de grabación USB como malware, así que la borrará una y otra vez nada más que termines de descargarla, a no ser que desactives la protección en tiempo real (bajo tu propia responsabilidad, claro).

Si tienes la ISO en formato comprimido, descomprímela en alguna carpeta de tu disco duro.

2. Formatea tu pendrive en FAT32

Necesitarás un pendrive de gran capacidad para grabar Remix OS. Si ya está formateado en FAT32, no necesitas hacer nada más (salta al paso 3), pero si no es así, debes formatearlo primero.

Para comprobar el formato de tu memoria USB, ve al Administrador de archivos, haz clic derecho y elige Propiedades. En la carpeta General aparece el sistema de archivos, que generalmente será FAT32 o NTFS.

Si tu memoria está formateada en NTFS, haz clic derecho sobre ella en el Administrador de archivos y elige Formatear. En sistema de archivos, elige FAT32. Si está activado el Formateo rápido (recomendado) el proceso toma apenas un par de segundos.

3. Graba la ISO en la memoria

De vuelta a los archivos que descargaste antes, inicia la utilidad USB de Remix (remix-usb-tool.exe). En el apartado ISO File, pulsa Browse para seleccionar la imagen ISO que descomprimiste en alguna carpeta de tu disco duro.

En USB Disk, elige la letra de la unidad de la memoria USB. Asegúrate de que es la correcta, si bien la aplicación parece detectarla automáticamente por ti. Cuando estés listo, pulsa OK para que comience la copia de los archivos.

Aquí es el momento de que tu puerto USB 3.0 y memoria USB se luzcan. El proceso tarda unos cuantos minutos en completarse. Paciencia.

4. Inicia tu PC desde la memoria USB

Reinicia tu PC y asegúrate de que se inicia desde la memoria USB. La mayoría de las BIOS te permiten seleccionar el orden de los dispositivos de arranque, pero además es cada vez más común que el sistema te permita cambiarlo fácilmente pulsando alguna tecla durante el arranque (por ejemplo, F2). Si tienes dudas, consulta el manual de tu PC o placa base.

En Windows 10 a veces cuesta un poco más hacer un reinicio completo, pero lo puedes forzar desde las Opciones > Actualizaciones y Seguridad > Recuperación > Inicio avanzado.

5. Inicia la instalación

Si todo ha ido bien, una ventana te dará la bienvenida a la instalación de Remix OS, dándote la opción de elegir entre un modo invitado o residente.

El modo invitado te permite probar el sistema operativo sin compromiso, pero no guardará tu información y aplicaciones cuando termines de usarlo. El modo residente sí guarda esta información.

Yo he elegido modo Residente, lo cual inicia la instalación que, una vez más, tomará unos cuantos minutos. Ten paciencia, ya estás muy cerca de poder probar esta curiosa versión de Android.

6. Configura Remix OS

Enhorabuena, ya tienes Remix OS listo para usar, pero antes de nada, al igual que cuando inicias Android por primera vez en un teléfono, tienes que establecer unos cuantos ajustes.

Lo primero es el idioma (inglés o chino), después tendrás el acuerdo de licencia de rigor y, por último, pulsando el botón Start ya podrás empezar a usar Remix OS 2.0 en tu PC.

Como eliminar las pestañas en productos en Woocommerce

Uno de los más habituales requerimientos de clientes a la hora de diseñar la página de producto de su tienda online en Woocommerce suele ser la eliminación de las pestañas de comentarios y características, principalmente por un motivo de usabilidad.

Para eliminar las pestañas podemos utilizar el siguiente código en el functions.php de tu plantilla:

/**
 * Eliminar pestañas de productos
 */
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );

function woo_remove_product_tabs( $tabs ) {

    unset( $tabs['description'] );      	// Remove the description tab
    unset( $tabs['reviews'] ); 			// Remove the reviews tab
    unset( $tabs['additional_information'] );  	// Remove the additional information tab

    return $tabs;
}

El problema es que nos falta la descripción larga del producto. Para afinar aún más la plantilla se puede usar el siguiente código para mostrar la descripción. El número indica la posición entre los elementos

//** Mostrar la descripción del producto sin pestañas **//

function woocommerce_template_product_description() {
  wc_get_template( 'single-product/tabs/description.php' );
}
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_product_description', 30 );
tag manager

Que es y para que sirve Google Tag Manager

A estas alturas, casi todos habréis oído hablar alguna vez del administrador de etiquetas de Google  (o Google Tag Manager). Quizá tengáis claro en qué consiste… o quizá no.

En este post pretendemos asentar algunas ideas básicas sobre qué es y para qué se utiliza esta estupenda herramienta que, a la larga, cambiará nuestra forma de implementar, por ejemplo, los seguimientos de Google Analytics, píxeles de conversión de Google AdWords, o de trackear todo tipo de campañas de publicidad online.

De este modo, se modificará para siempre la relación entre departamentos de IT y Marketing de grandes empresas (agilizando procesos como el lanzamiento de nuevas campañas publicitarias); y se simplificará la vida de agencias de Marketing Online a la hora de realizar el mantenimiento de códigos de seguimiento y píxeles variados en numerosos sitios webs.

¿En qué consiste Tag Manager?

Se trata de un código <script> que genera un iframe contenedor que, al ser colocado justo tras la apertura del <body> en una página web, reemplazará la mayoría de las etiquetas de seguimiento de campañas y herramientas que antes solíamos instalar una a una. Por ejemplo, para realizar una correcta medición de campañas SEM, para instalar herramientas de analítica web o para A/B testing.

Para configurar el contenedor e indicar qué etiquetas queremos que se activen y en qué páginas, hemos de acceder a la herramienta online Google Tag Manager . Su interfaz ha mejorado bastante con los cambios sucesivos, asemejándose a otras herramientas de Google. Aún así, si tenemos en cuenta la complejidad de la materia que estamos tratando y los enormes beneficios que aportará su comprensión, resulta lógico tener que formarse un poco para llegar a manejarla y exprimirla del todo.

¿Para qué sirve el Administrador de Etiquetas de Google?

¿Nunca os ha pasado que queréis lanzar una campaña de anuncios patrocinados o remarketing y desde vuestro departamento de programación os comunican que no es posible hasta tal día que se sube la web a producción? O, en el caso de las agencias, ¿no sentís que tenéis dependencia de vuestros proveedores de desarrollo web para implementar ciertas tags en el código fuente? ¿No os gustaría poder tener el control, un contenedor para gobernarlos a todos? Si la respuesta a alguna de esas preguntas es que sí, estáis de enhorabuena.

Con Google Tag Manager, en lugar de tener que andar modificando código en diferentes páginas o includes, para insertar una nueva tag, o tener que estar revisando una lista interminable de archivos para ver dónde están puestas ciertas etiquetas que toca eliminar, bastará con consultar un panel de administración y trabajar con etiquetas, activadores y variables.

En la imagen anterior se muestran algunas de las plantillas de etiqueta disponibles en Google Tag Manager, como ejemplo, pero existen otras muchas utilidades de Tag Manager que ayudarán a simplificar y automatizar procesos de marketing. Estos son algunos ejemplos de etiquetas aceptadas actualmente, que te pueden sacar de un apuro:

  • Seguimiento de conversiones de Google AdWords (¡también sin thank you page!) y configuración de conversiones de llamada (número de reenvío de AdWords).
  • Etiquetas de Remarketing de AdWords y Remarketing Dinámico: hace mucho tiempo había que ir página a página —o por grupos de contenido— introduciendo manualmente las diferentes etiquetas de remarketing de Google para las diferentes listas de usuarios (¡increíble pero cierto!). Nuestra teoría es que el desarrollo de Google Tag Manager, aparte de la utilidad que nos aporta a todas las agencias y departamentos de marketing, fue en parte respuesta de Google a la necesidad de tener una etiqueta de remarketing dinámica (otros ya la tenían antes que él).
  • Seguimiento de Google Analytics, con todo tipo de implementaciones avanzadas al alcance de la mano, minimizando la utilización de código al mínimo y necesario —la dataLayer—. Podrás utilizar GTM para generar de eventos automáticos de clic, formulario, temporizador, etc., páginas virtuales, seguimiento de e-commerce, seguimiento de subdominios y multidominio, user ID, agrupaciones de contenido, dimensiones y métricas personalizadas…
  • ¡Traffickers! Etiquetas de conversión y de contador de DoubleClick, Marin Software, ClickTale, comScore
  • Etiquetas de imagen y HTML personalizadas: este último punto abre un mundo de posibilidades casi infinito, a excepción de unas pocas etiquetas (síncronas, en dos partes, etc.) que no se pueden utilizar y que tienden a desaparecer…

Eliminar correo antiguo de tu servidor con Cpanel

En ocasiones querremos eliminar correos antiguos porque ocupan espacio y no los necesitamos, de una cuenta determinada, desde una fecha determinada en adelante o simplemente porque necesitamos espacio libre en nuestro hosting.

Para ello el hosting cPanel prevé una opción muy útil en la sección de «Correo Electrónico» denominada «Email Disk Usage» para no llegar al límite de espacio que tenemos en el disco duro.

Accediendo a la opción de cPanel – Email Disk Usage

Accedemos al panel de control cpanel y buscamos la opción:

Selección de cuentas de correo

Al acceder observamos un desplegable «Account» que contiene todas las cuentas de correo electrónico que hemos creado y desde seleccionaremos cuenta por cuenta para eliminar los emails que deseamos desechar.

Menú de Acciones

Nada más seleccionar una de las cuentas nos encontraremos con una pantalla similar a la siguiente:

Cada carpeta, ya sea la del INBOX (Bandeja de entrada), TRASH (Papelera), SENT (Enviados) o DRAFTS (Borradores), etc. dispondrán de un enlace «Manage» en la columna «Acciones» siempre y cuando haya correos en ellas.

Haz clic en «Manage» para hacer visible un nuevo desplegable desde el que seleccionar la acción deseada:

Eliminación de mensajes de email

Si queremos eliminar todos los correos, simplemente usaremos la opción «All messages» y pulsaremos sobre el botón «Delete Permanently» (Borrar permanentemente).
Por el contrario si deseamos usar un filtro concreto para eliminar correos seleccionaremos la opción «Custom query» (Consulta personalizada) y se abrirá un nuevo campo para introducir la consulta como se muestra en la captura de abajo: