Integrare Pulsing.io nella tua piattaforma

Dopo aver esplorato una piccola parte del funzionamento interno e della logica del nostro servizio, è arrivato il momento di accantonare la teoria e passare alla pratica!

Come ben detto in precedenza, l'integrazione basilare di Pulsing.io è adatta a tutti, essendo molto semplice, intuitiva e veloce.

Esistono però molte funzionalità e possibilità che è possibile integrare nel Front-End o nel Back-End del tuo Web-Site, tra cui alcune più complesse di altre da implementare. In questa guida le affronteremo una ad una e singolarmente, in modo da rendere semplice, anche per i meno esperti, l'utilizzo delle nostre Features più avanzate!

📘

Tempi di integrazioni minimali

Integrare Pulsing.io all'interno della tua Web-Application è un'operazione velocissima anche per i non addetti ai lavori. Ci vogliono solo 2 minuti e 30 secondi per avere già una versione funzionante e per cominciare a tracciare ogni minimo dettaglio dei tuoi utenti e dei loro movimenti!

Integrazione basilare

La maggior parte delle nostre funzionalità è molto semplice da integrare, e lo vedremo proprio ora!
In questa sezione integreremo il tracciamento dei Logs (Logs (Visualizzazioni)) e delle Interactions (Interactions (Interazioni)) nel tuo sito, sia per utenti generici, sia per utenti specifici. Vedremo quindi come tracciare un utente registrato e che esegue delle Actions mentre è autenticato nel suo Account.

Per tenere traccia di tutte le visualizzazioni e tutte le interazioni eseguite sul tuo Web-Site, ti basta aggiungere il seguente script all'interno di ogni pagina su cui desideri effettuare il tracciamento.

<script>
    setTimeout(() => {
      window.hj =
        window.hj ||
        function () {
          (window.hj.q = window.hj.q || []).push(arguments);
        };
      a = document.getElementsByTagName("head")[0];
      r = document.createElement("script");
      r.async = 1;
      r.src = "https://pulsing.io/js/pulsing.js";
      r.id = "pulse";
      a.appendChild(r);
    }, 2000);    
</script>

Una volta inserita questa minuscola porzione di codice, Pulsing.io sarà pronto a tracciare tutte le visualizzazioni e le interazioni nelle tue pagine! Provare per credere, esegui qualche movimento e poi visita la tua Dashboard, vedrai subito gli effetti!

Per adesso, non saprete nello specifico quale utente ha effettuato delle determinate Actions, infatti tutti verranno considerati utenti generici (ossia al di fuori del proprio Account).

Ora è il momento di implementare anche il tracciamento di utenti autenticati! Per farlo ti servirà solamente l'E-Mail identificativa e unica di esso. Nel momento in cui si desidera cominciare a tracciare un utente specifico (ad esempio subito dopo un Log-In andato a buon fine) dovrete semplicemente impostare l'E-Mail corrispondente nell'apposita Location ("pulse-identifier") del window.localStorage (componente della Storage API, potete trovare un riferimento dettagliato qui: https://developer.mozilla.org/it/docs/Web/API/Storage).

window.localStorage.setItem("pulse-identifier", [EMAIL]);

Con la stessa semplicità potrete rimuovere il tracciamento di un utente specifico e tornare a quello generico nel momento in cui l'utente uscirà dal suo Account (magari dopo un'operazione di Log-Out). Vi basterà svuotare quella Location dal window.localStorage con l'apposito metodo.

window.localStorage.removeItem("pulse-identifier");

Ed ecco fatto! Ora saprete ogni singolo movimento e interazione di ogni singolo vostro utente! Davvero fantastico vero? E soprattutto in due semplici passaggi.

In seguito torneremo sul Front-End per rivedere qualche Features più avanzata e leggermente più complessa. Per adesso passiamo al tracciamento degli Events e delle Emissions.

❗️

Hai problemi con l'integrazione di Pulsing.io o vuoi segnalare un problema?

L'assistenza di Pulsing.io è sempre disponibile per i suoi utenti. Dai uno sguardo alla fine di questa guida per delle brevi istruzioni e metodi su come contattarci 24H!

Qualche passo avanti

Gli Events e le Emissions sono una Feature molto potente di Pulsing.io, e sono anche molto semplici da utilizzare, ciò nonostante dovrete mettere una mano in più nel codice della vostra Web-Application.

Quello che dovrete fare è localizzare la sezione di codice dove termina l'azione che volete tracciare (come la creazione di un Post terminata con un successo, oppure la sua modifica o cancellazione) e posizionare una chiamata di metodo POST a https://api.pulsing.io/api/emissions, inviando assieme al corpo della Request:

  • Uno dei domini associati sulla Dashboard al tuo Web-Site;
  • La label riconoscitiva e unica dell'evento che volete emettere;
  • Nel caso vogliate emettere quell'evento per un utente specifico, il suo indirizzo E-Mail;
  • Nel caso vogliate dare un valore monetario (positivo o negativo) a questa Emission, il suo prezzo;
  • Altre informazioni secondarie e completamente facoltative che potete trovare nel dettaglio qui: POST - /api/emissions;

Per semplificare questa implementazione anche a chi sa poco o niente di programmazione e sviluppo, eccovi una lista di Snippets, per diversi linguaggi di programmazione o strumenti, che dovrete solo minimamente modificare.

curl --request POST \
  --url https://api.pulsing.io/api/emissions \
  --header 'content-type: application/json' \
  --data '{"domain": [DOMAIN], "label": [LABEL]}'
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.pulsing.io/api/emissions',
  headers: {'content-type': 'application/json'},
  body: {
    domain: [DOMAIN], 
    label: [LABEL]
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.pulsing.io/api/emissions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'

request.body = '{
  "domain": [DOMAIN], 
  "label": [LABEL]
}'

response = http.request(request)
puts response.read_body
var data = JSON.stringify({
  "domain": [DOMAIN], 
  "label": [LABEL]
});

var xhr = new XMLHttpRequest();

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.pulsing.io/api/emissions");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
import requests

url = "https://api.pulsing.io/api/emissions"

payload = '{
  "domain": [DOMAIN], 
  "label": [LABEL]
}'

headers = {'content-type': 'application/json'}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Ed ecco un'altra funzionalità aggiunta senza problemi! In questo modo ogni azione che volete registrare e monitorare riguardante la vostra piattaforma e i vostri utenti sarà tracciata in maniera accurate e precisa in automatico, ogni volta che quella frazione di codice verrà eseguita per completare una determinata azione di un utente.

🚧

Impedire le emissioni di eventi non creati da te

Nel momento in cui viene emesso un Event inesistente, esso verrà creato On-The-Fly con tutti i valori di Default, basandosi sui dati della Emission inviata.

Questa Feature è facilmente disattivabile impostando l'apposita opzione nella Dashboard oppure utilizzando direttamente i nostri Endpoints per modificare il tuo Web-Site.

Nel caso l'impostazione venga de-attivata, ogni volta in cui verrà emesso un Event non presente, verrà lanciato un errore 404 - Not Found come Response.

Anche qui, in seguito, torneremo per rivedere qualche Features più impegnativa, ma, per il momento, potrete già usufruire di una versione completa e accurata di Pulsing.io, pronta a fare crescere la vostra azienda e il vostro Business!

Ora è il momento di dare un'occhiata a qualche funzionalità più di nicchia e completamente opzionale ma che può tornare davvero utile, allacciate le cinture!