No me puedo quedar quieto…
De verdad que lo intento, pero es superior a mi. Siempre estoy probando cosas, y el principal campo de prueba de mis locuras es, como cabría esperar, esta página.
Hoy quería aprovechar el Informe de Transparencia de este mes para explicar cómo estoy paulatinamente migrando toda la gestión del contenido exclusivo de los mecenas a la página y el sistema de newsletter que utilizamos habitualmente (Mailchimp), pero antes, tengo que decir que, como cabría esperar, éste ha sido de lejos el mejor mes en cuanto a beneficios desde que hace algo más de tres años empezase el proyecto.
5 nuevos mecenas, uno que ha cambiado su nivel a un nivel superior, y otro que se ha ido. Sin olvidar que ya tenemos nuestro primer mecenas corporativo (CiberProtector (ES)) lo que ha hecho que aumentemos casi el doble de beneficios respecto al mes pasado (uno que curiosamente no había sido nada bueno).
Las gráficas con los datos en bruto las enviaré, como suelo hacer, directamente a todos los miembros de la Comunidad en el email de hoy.
Así que vamos al lío con los cambios.
Índice de contenido
- Recuperando parte del control perdido en una plataforma de terceros
- Cómo hacer que el feed de artículos de Patreon salga en WordPress
- Cómo dar acceso a contenido publicado en WordPress únicamente a los mecenas
- Cómo gestionar los envíos de correo a mecenas vía Mailchimp
- Un resumen de la iniciativa
- El mecenazgo por niveles
Recuperando parte del control perdido en una plataforma de terceros
Si llevas tiempo por aquí ya sabrás que en su día saqué a decisión de todos vosotros si continuábamos utilizando Patreon como plataforma de donaciones o si me montaba en esta santa casa nuestro propio sistema.
Y al final, entre beneficios y perjuicios (si te interesa el tema por aquí tienes las conclusiones que saqué al respecto) decidimos mantenernos en Patreon.
- Perdemos en torno al 12% entre fees de intermediarios (Patreon + Payoneer + cambio de divisa), pero yo no tengo que gestionar los pagos en si, por lo que me despreocupo del mantenimiento y seguridad del sistema.
- A cambio, eso sí, estamos supeditados a los designios de la plataforma, con sus propias limitaciones, como es el hecho de que yo no puedo invitar a usuarios específicos a que vean mi contenido sin pagar (los mecenas corporativos, por ejemplo, reciben el acceso a cinco trabajadores de la compañía a todo nuestro contenido, y esto lo hago mediante redirecciones en mi proveedor de correo).
Además, recientemente, y como ya he explicado, cambiamos por completo el sistema de donaciones, cerrando de forma definitiva a nuevos mecenas el antiguo nivel WEP y WPA (1 y 3 dólares respectivamente), para dejarlos en 3 y 5, con una serie de añadidos.
La siguiente fase dentro de mi maquiavélica estrategia es implementar todos los beneficios que pueda en entornos que son de mi estricto control, como es la página y nuestra pasarela de email, y dejar en la medida de lo posible únicamente como sistema de pagos Patreon.
Y un tema que me preocupaba es que con la tontería, los mecenas de la Comunidad están recibiendo como mínimo (ojo a ese “como mínimo”) cuatro emails míos semanalmente. Cuatro malditos emails:
- La newsletter pública del lunes: En donde hago un resumen de todo lo que ha ocurrido en el sector tecnológico los últimos 7 días.
- La newsletter exclusiva de ciberseguridad del miércoles: Para todos los mecenas de nivel PROFESIONAL o superior (5 o más dólares), con lo más importante en materia de seguridad y privacidad de los últimos días. Enfocado sobre todo al mundo profesional (ingenieros, emprendendores, empresarios…).
- El artículo exclusivo del martes y del jueves: Que les llega también vía correo de Patreon, y en el que habitualmente trato en profundidad un tema de rabiosa actualidad.
La cosa es que pregunté por el grupo privado de Telegram a los mecenas, y para mi sorpresa, los cabrones (con cariño :)) querían que siguiera enviándoles todos estos correos. Es más, varios me dijeron que era la mejor manera que había para forzarlos a estar al tanto de lo que ocurría en el sector.
Cuatro emails semanales… y todavía me pedís más :). ¡Tenéis el cielo ganado!
Después de darle vueltas al asunto, he decidido dejar temporalmente el siguiente esquema de publicaciones:
- Lunes: envío como siempre la newsletter pública del lunes y publico en el blog de manera pública el artículo que toque.
- Martes: Publico de forma privada tanto en el blog como en Patreon el artículo exclusivo de mecenas, que les llega también vía correo a estos.
- Miércoles: Publico de manera pública en el blog el artículo que toque, y de forma privada la newsletter únicamente en Patreon, de forma que también les llega vía correo.
- Jueves: Publico de forma privada tanto en el blog como en Patreon el artículo exclusivo de mecenas, que les llega también vía correo a estos.
- Viernes: Publico por el blog de manera pública el artículo que toque.
- Sábado: Como ya dije el mes pasado, he reservado los sábados para publicar (públicamente en el blog, se entiende) piezas más desenfrenadas, seguramente sobre cine/videojuegos, o entrevistas que me hagan. No habrá contenido cada sábado, pero es que últimamente se me acumulan los temas que quiero tratar y esta es la salida más lógica que he encontrado.
Y la idea a uno o dos meses vista es que deje Patreon solo para publicar alguna que otra cosa, gestionándolo todo bien en el blog, bien vía Mailchimp.
Voy a explicar entonces cómo se puede integrar Patreon en WordPress. Cómo lo hemos hecho nosotros, y cómo estoy estudiando la manera de hacer lo propio mediante Mailchimp para cubrir lo que desde WP no puedo hacer.
Cómo hacer que el feed de artículos de Patreon salga en WordPress
El primer paso, que ya lo implementé hace un par de meses, era conseguir de alguna manera que se vieran los artículos que he publicado en la intranet de mecenas (Patreon) dentro del propio blog.
Para ello, es necesario que Patreon ofrezca alguna API o algún sistema estandarizado de creación de RSS que pueda enchufar a WordPress.
Y ya te digo que no lo hace.
¿Cuál es la opción entonces? Hacerlo uno mismo.
Me he liado la manta a la cabeza, y partiendo del trabajo de esta cuenta de GitHub (EN) he generado un archivo .php dentro de la instalación de Patreon (en el index de tu hosting, y que se llame, por ejemplo, patreon.php) con el siguiente código:
<?php
// set your creator ID here - you have to figure it out from the patreon HTML source code
$CREATOR_ID = 'PON TU ID AQUÍ';
/**
* Class PatreonRSS
*
* Very simple class to fetch posts from Patreon and create an RSS feed from it
*
* A bit hacky and cuold be improved a lot, but works
*/
class PatreonRSS
{
/** @var array which fields to include in the response, for now we don't need much */
protected $fields = array(
'post' =>
array(
'post_type',
'title',
'content',
//'comment_count',
//'min_cents_pledged_to_view',
//'like_count',
//'post_file',
//'image',
//'thumbnail_url',
//'embed',
//'is_paid',
'published_at',
'url',
//'pledge_url',
//'patreon_url',
//'current_user_has_liked',
//'patron_count',
//'current_user_can_view',
//'current_user_can_delete',
//'upgrade_url',
),
'user' =>
array(
'image_url',
'full_name',
'url',
)
);
/** @var array haven't really played with those, except the creator id */
protected $filter = array(
'is_by_creator' => true,
'is_following' => false,
'creator_id' => 'set by constructor',
'contains_exclusive_posts' => true
);
/**
* PatreonRSS constructor.
* @param string $id
*/
public function __construct($id)
{
$this->filter['creator_id'] = $id;
}
/**
* Output the RSS directly to the browser
*/
public function rss()
{
$data = $this->getData();
echo '<?xml version="1.0"?>';
echo '<rss version="2.0">';
echo '<channel>';
$this->printRssChannelInfo($data['campaign'], $data['user']);
foreach ($data['posts'] as $item) {
$this->printRssItem($item);
}
echo '</channel>';
echo '</rss>';
}
/**
* Output the RSS but use a cache
*
* Note: this does absolutely no error checking and will just ignore errors. You have
* to make sure the given $dir exists and is writable. Otherwise there will be no caching
*
* @param string $dir directory in which to store cache files - has to be writable
* @param int $maxage maximum age for the cache in seconds
*/
public function cachedRSS($dir, $maxage)
{
$cachefile = $dir.'/'.$this->filter['creator_id'].'.xml';
$lastmod = @filemtime($cachefile);
if(time() - $lastmod < $maxage) {
echo file_get_contents($cachefile);
return;
}
ob_start();
$this->rss();
$rss = ob_get_clean();
@file_put_contents($cachefile, $rss); // we just ignore any errors
echo $rss;
}
/**
* Constructs the URL based on the fields and filter config at the top
*
* @return string
*/
protected function getURL()
{
$url = 'https://api.patreon.com/stream?json-api-version=1.0';
foreach ($this->fields as $type => $set) {
$url .= '&fields[' . $type . ']=' . rawurlencode(join(',', $set));
}
foreach ($this->filter as $key => $val) {
if ($val === true) $val = 'true';
if ($val === false) $val = 'false';
$url .= '&filter[' . $key . ']=' . $val;
}
$url .= '&page[cursor]=null';
return $url;
}
/**
* Fetches the data from Patreon and cleans it up for our usecase
*
* @return array
*/
protected function getData()
{
$url = $this->getURL();
$json = file_get_contents($url);
$data = json_decode($json, true);
$clean = array(
'posts' => array(),
'user' => array(),
'campaign' => array()
);
foreach ($data['data'] as $item) {
$clean['posts'][] = $item['attributes'];
}
foreach ($data['included'] as $item) {
if ($item['type'] == 'user') {
$clean['user'] = $item['attributes'];
$clean['user']['id'] = $item['id'];
continue;
}
if ($item['type'] == 'campaign') {
$clean['campaign'] = $item['attributes'];
$clean['campaign']['id'] = $item['id'];
}
}
return $clean;
}
/**
* Print a single post as RSS item
*
* @param array $item
*/
protected function printRssItem($item)
{
echo '<item>';
echo '<title>';
echo htmlspecialchars($item['title']);
echo '</title>';
echo '<description>';
echo htmlspecialchars($item['content']);
echo '</description>';
echo '<link>';
echo htmlspecialchars($item['url']);
echo '</link>';
echo '<guid>';
echo htmlspecialchars($item['url']);
echo '</guid>';
echo '<pubDate>';
echo date('r', strtotime($item['published_at']));
echo '</pubDate>';
echo '</item>';
}
/**
* Print the channel info from our campaign and user data
*
* @param array $campaign
* @param array $user
*/
protected function printRssChannelInfo($campaign, $user)
{
echo '<title>';
echo htmlspecialchars($campaign['creation_name'] . ' Patreon Posts');
echo '</title>';
echo '<description>';
echo htmlspecialchars(strip_tags($campaign['summary']));
echo '</description>';
echo '<link>';
echo htmlspecialchars($user['url']);
echo '</link>';
}
}
// main
header('Content-Type: application/rss+xml');
$patreon = new PatreonRSS($CREATOR_ID);
$patreon->cachedRSS(__DIR__, 60*60); // cache for an hour
Con esto lo que estamos haciendo es generar un RSS de todo el contenido que está publicando un creador de contenido en Patreon.
Falta cambiar ese PON TU ID AQUÍ del principio por el ID de tu cuenta de Patreon. Y para saber cuál es, tendremos que sacarlo del código de la página:
- Abrimos nuestra cuenta de Patreon.
- Botón derecho en cualquier lugar que no sea un enlace de nuestra cuenta de Patreon > Ver código fuente de la página.
- Apretamos Control + F (para hacer una búsqueda), y tecleamos “creator_id”.
- Lo que va después es nuestro identificador. Una serie de números que copiaremos y pegaremos donde dije antes.
Cuando alguien entra a esa página, lo que obtenemos es un feed RSS del contenido publicado en Patreon. Si ese contenido es público, mostrará la imagen o vídeo destacado más el título más el contenido. Si es privado, solo mostrará el título. Todo en formato RSS, claro.
Para terminar, tenemos que utilizar cualquier plugin que nos permita mostrar RSS en WordPress. Yo por ejemplo he utilizado este gratuito (ES). Metes la URL del RSS (tuweb/patreon.php, por ejemplo) y listo.
En nuestro caso lo estamos mostrando tanto en el sidebar de la home, como en el footer.
Hay que tener en cuenta que esto es un apaño no oficial. Por tanto, en cualquier momento Patreon puede cambiar el código y hacer que esto deje de funcionar.
Cómo dar acceso a contenido publicado en WordPress únicamente a los mecenas
Para hacer esto ya es necesario tirar de la API de Patreon.
Y afortunadamente hay dos plugins de WordPress que nos lo permiten hacer:
- Patreon WordPress (EN): Es el plugin oficial, gratuito, y el que yo he utilizado. Permite definir cualquier contenido (o todo el contenido que publiquemos por defecto) como privado para mecenas de un nivel específico, basándose en lo que donan cada mes. No basado en los niveles propiamente dicho, ojo, sino en la cuantía donada. Para ello genera un usuario en WordPress que mediante la API de Patreon se asegura de que está al corriente de pago, y puede acceder a ese contenido en particular. Si no es así (o no es mecenas, o es mecenas pero no del nivel adecuado) muestra el título y si lo deseamos un contenido extra, que en mi caso, y como puedes ver en la imagen superior, está formado por una imagen y un texto, junto con el botón de desbloquear artículo.
- Patron Plugin Pro (EN): Es un plugin de pago no oficial, aunque cuenta con el beneplácito de la compañía. Hace todo lo que ofrece el de pago más algunos añadidos (mayor parametrización, la posibilidad de crear banners, widgets, botones…).
En ambos casos la configuración inicial es la misma.
- Una vez instalado, vamos a este enlace de Patreon (EN) y creamos una clave para la API nueva.
- Incluimos todos los datos que nos pide (nombre, descripción, URL donde va a ser usada la API, URL de la política de privacidad y uso…).
- La versión de la API, en mi caso, he puesto la 2.
- Le damos a generar, y nos mostrará una serie de códigos que tenemos que meter en la página de configuración del plugin.: el Client ID, el Client Secret, el Creator’s Access Token y el Creator’s Refresh Token.
A partir de entonces, todos los artículos contarán en el panel de edición de WordPress con un apartado extra en el que podemos definir el nivel necesario para acceder a dicho contenido. En el plugin gratuito esto se hace únicamente mediante el valor de la donación mínima (todos los que donen eso o más pueden verlo). En el otro caso, puedes configurar más casuísticas, pudiendo incluso ocultar solo una parte del artículo para que sea exclusivo de mecenas.
Esta es la razón principal de por qué este mes he avisado a todos los antiguos mecenas WEP de que no podrían acceder a este tipo de contenido. Si pongo que por defecto pueda entrar cualquier mecenas que done más de un dólar al mes, estaría engañando a los nuevos, ya que aunque aparecería lo de 1 dólar, al entrar verían que la primera opción abierta es la de 3 dólares.
En todo caso, y por ofrecerles una opción que les saliera más rentable, les he propuesto que pueden cambiar al otro nivel antiguo cerrado (el de 3), que sí tiene acceso a este contenido y además siguen teniendo acceso a la newsletter exclusiva de los miércoles, ahorrándose con el cambio 2 dólares (a día de hoy este nivel cuesta 5).
Cómo gestionar los envíos de correo a mecenas vía Mailchimp
Este es el último punto del que quería hablar en este tutorial.
En principio, he encontrado una manera de automatizar hasta el extremo la gestión de mecenas dentro de Patreon utilizando un servicio de email marketing tan potente como es MailChimp.
¿Cuál es el problema entonces? Que al menos hasta el momento (sigo investigando) no he conseguido segmentar la lista de mecenas automáticamente dependiendo del nivel de mecenazgo. Algo que al menos en mi caso me interesa, ya que dependiendo del nivel, y como ya he explicado, se accede a uno u otro contenido.
En teoría se puede. La API de Patreon da bastantes datos del mecenas, y entre ellos estaría el identificador numérico del nivel al que pertenece. Sin embargo, aunque lo configuro para que se actualice en una columna de la lista de Mailchimp, no me hace caso.
Pero lo que es que se incluya automáticamente un mecenas a una lista de MailChimp, y se elimine automáticamente cuando éste se va, sí lo podemos hacer.
¿El cómo? Utilizando Zapier (EN), una especie de servicio intermediario que, tirando de la API de Patreon, se encarga de pedir la creación/modificación/eliminación automática de usuarios en Mailchimp, así como si queremos el envío de un mensaje de bienvenida.
Si ya has utilizado herramientas como IFTT o Botize, el servicio te resultará conocido. Permites el acceso a Patreon y a Mailchimp (en este caso), y una vez hecho, puedes crear recetas del tipo: si ocurre algo en Patreon, haz esto otro en Mailchimp, o viceversa.
La cuenta gratuita de Zapier nos da para crear cinco recetas con dos ingredientes cada una (dos cuentas). Más que de sobra para automatizar lo que queríamos.
Yo, por ejemplo, tengo por ahora creadas solo dos.
En la primera agrego nuevos mecenas a una lista previamente creada en Mailchimp. Y en la segunda, los desuscribo si dejan de ser mecenas.
Seguramente cree una tercera para el mensaje de bienvenida, si al final doy el paso a utilizar esto por defecto.
Porque pasar a utilizarlo me va a suponer tener que cambiar a mano el nivel de mecenazgo al que pertenece cada mecenas. Como decía, hasta el momento no he encontrado la manera de actualizar esto cuando un usuario se hace mecenas, o cuando un mecenas cambia el nivel.
También es cierto que para el volumen que tengo es algo que podría hacer a mano. Pero vaya, tengo que darle más vueltas a ver si el cambio realmente me interesa.
Y con esto termino otro tocho-post sobre cómo implementar Patreon dentro de un blog de WordPress, y/o una estrategia de email marketing.
Espero que te haya servido.
¡Muchas gracias por el apoyo, y nos seguimos leyendo!
Un resumen de la iniciativa
Esta parte va dirigida a aquellos que después de haber leído lo anterior quieren saber más del asunto, con las razones y la manera de apoyar este proyecto, y que se resumen en:
- Por un lado, ofrecer más a los que estuvieran más sedientos de información de valor, en una intranet, con una newsletter exclusiva de ciberseguridad, y con un grupo privado de Telegram en el que estar en contacto directo.
- Por otro, buscar esa ansiada independencia analítica que sigue siendo pilar de mi manera de entender este medio, y que lamentablemente, cierra aún hoy en día más puertas de las que abre.
- Y por último, encontrar esa financiación, aunque sea baja, que permitiera mantener el proyecto convenientemente suministrado de buen contenido, indistintamente de mis ingresos como consultor.
Además, estos ejercicios de transparencia, con una periodicidad mensual, se los envío primero a los miembros de la Comunidad, y pueden ser consultados en la etiqueta #TransparenciaPY.
El mecenazgo por niveles
En PabloYglesias gestionamos todo el sistema de mecenazgo mediante la plataforma Patreon, que es probablemente la más conocida, y que opera en todo el mundo.
¿Cómo funciona? Pues tú te “suscribes” a uno de los niveles de mecenazgo de mi página mediante tu cuenta de PayPal o tu tarjeta de crédito, y periódicamente Patreon te cobrará la cuantía del nivel al que perteneces, pudiendo cambiarlo o parándolo cuando quieras desde tu perfil de Patreon.
Puedes revisar todos los niveles de mecenazgo que tengo actualmente en la página de suscripción.
Nivel INICIADO
Este nivel es como su propio nombre indica el inicial, y de hecho es el mejor si lo que buscas es:
- O bien apoyar a este proyecto.
- O bien recibir además algo de contenido extra.
Los miembros del nivel Iniciado tienen acceso al grupo privado de Telegram, en el que prácticamente a diario debatimos sobre temas y solucionamos las dudas que tienen los integrantes. Y además, cada martes te enviaré el contenido exclusivo de mecenas de la semana, que es un artículo de actualidad tecnológica o seguridad que también publico en el blog pero que por razones obvias solo tenéis acceso los mecenas.
Nivel PROFESIONAL
Este nivel incluye, como cabría esperar, todos los beneficios del nivel anterior.
Pero además cada jueves recibirás la newsletter exclusiva de mecenas, que es una newsletter con las cinco o seis noticias de seguridad y privacidad que entiendo le deberían preocupar a un profesional, trabaje por cuenta ajena o por cuenta propia.
Nivel PITAGORÍN
En este nivel además de obtener, por supuesto, todas las ventajas del anterior, incluye dos extras:
- Acceso prioritario y con ofertas exclusivas a mis cursos y talleres.
- Envío de mis nuevos libros dedicados semanas antes del lanzamiento.
Nivel BOX TECNOLÓGICO
Este es, junto con el nivel INICIADO, el que más éxito tiene.
Y la razón es obvia. Además de todo lo anterior, los mecenas de este nivel dos veces al año (en julio y en enero) reciben un regalo de tecnología elegido por mi que les envío a su casa, y que por supuesto es un secreto.
De esta manera hemos llegado a regalar gafas de realidad virtual, mini-drones, condones USBs y un largo etcétera…
Nivel EMPRENDEDOR
Este, como su propio nombre indica, ya está enfocado a los perfiles profesionales.
Siendo mecenas de nivel EMPRENDEDOR recibes todo lo anterior además de una reunión privada mensual vía Hangouts o Skype en la que te resolveré cualquier duda.
Por ejemplo algunos de los mecenas que he tenido de este nivel lo utilizaban para aprender sobre marketing o seguridad, o para que les ayudase a configurar diferentes servicios en sus páginas o perfiles digitales.
Nivel CONSULTORÍA DE NEGOCIO
Este nivel está diseñado para negocios que ya están en funcionamiento o para proyectos que están cerca de nacer y necesitan ese impulso final, y por tanto incluye, además de todo lo de los niveles personales de mecenazgo, dos añadidos:
- Acceso completo a mi curso de Seguridad y Privacidad: Desde el primer día, y “para ti para siempre”.
- Una consultoría de negocio mensual: Que consta de una reunión de una hora mensual para diseñar el futuro del proyecto, y de todo el trabajo vía email y mensajería que necesitemos para materializarlo… a un precio bastante inferior al que cobro a mis clientes corporativos.
Nivel PATROCINIO DE MARCA
Por último, este nivel está enfocado a negocios que ofrezcan algún producto o servicio y quieran darlo a conocer entre mi comunidad y/o para la audiencia de mis talleres y charlas.
Por ponerte un par de ejemplos, estuvimos trabajando así con Ciberprotector, una suite de seguridad de Webempresa, y dimos a conocer el trabajo de la asociación CyberEOP para el fomento de la ciberseguridad en PYMES y organismos públicos.
- Publicaremos una pieza en el blog en la que mencionaremos su producto o servicio.
- Una semana al mes será la marca patrocinadora de la newsletter pública, incluyendo su difusión por redes sociales y el enlace directo desde la newsletter que reciben 5ks+ de suscriptores.
- Si el producto o servicio encaja (temas relacionados con mi labor formativa), hablaré de él en mis talleres y charlas, y lo agregaremos como servicio extra al Curso de Fundamentos de la Seguridad en Internet.
- Incluiremos un banner en el sidebar de la web.
Además incluye el acceso para hasta cinco miembros del equipo al grupo de telegram, al curso y al contenido semanal exclusivo.
Y sobre todo, si crees que esta página merece la pena. Si te gustaría tener un contacto más directo con gente que está también interesada en estos temas. O si simplemente quieres apoyar el proyecto, sabiendo que ese dinero va destinado a mejorar ese trabajo diario, esta es la manera.
Jajaja ja tengo mucho que aprender llevo ya unas horas investigando sobre lo que aqui hablas Dios te perdone
Jajaj Fernando, así aprendemos todos, qué mejor hay :).
Ánimo con ese aprendizaje. Si en algo te puedo ayudar ya sabes por dónde encontrarme 😀