Blog - Ultime notizie
Google Analytics 4

Ecommerce dataLayer per Google Analytics 4

Il livello di dati (o dataLayer) è un oggetto Javascript utilizzato da Google Tag Manager e da gtag.js per trasmettere informazioni ai tag. Gli eventi o le variabili possono essere trasmessi tramite il livello dati e gli attivatori possono essere configurati in base ai valori delle variabili.

Usare un dataLayer ben strutturato è fondamentale anche e soprattutto quando si tratta di un ecommerce perchè questo consentirà di passare in maniera agevole i dati dal sito a tutti i tag interessati, per esempio GA4, Meta, Ads.

Con questo articolo voglio lasciarvi la struttura che dovrebbe avere il dataLayer su un sito ecommerce per essere ben strutturato e completo.

Di seguito le azioni (eventi) da implementare e la relativa struttura del livello dei dati.

Questo evento dovrebbe apparire quando al visitatore appare una lista di prodotti (o elementi) di una determinata categoria

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "view_item_list",
  ecommerce: {
    item_list_id: "related_products",
    item_list_name: "Related products",
    items: [
     {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.03,
      quantity: 3
    },
    {
      item_id: "SKU_12346",
      item_name: "Google Grey Women's Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 3.33,
      index: 1,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "gray",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 21.01,
      promotion_id: "P_12345",
      promotion_name: "Summer Sale",
      quantity: 2
    }]
  }
});

L’evento select_item avviene quando un prodotto è stato selezionato da un elenco. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "select_item",
  ecommerce: {
    item_list_id: "related_products",
    item_list_name: "Related products",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento view_item avviene quando un prodotto viene visualizzato. Utilizza questo evento per scoprire gli articoli più popolari visualizzati. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "view_item",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento add_to_cart avviene quando un utente aggiunge un prodotto a carrello. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "add_to_cart",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento view_cart avviene con la visualizzazione del carrello da parte dell’utente. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "view_cart",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento view_promotion avviene quando una promozione viene visualizzata da un elenco. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "view_promotion",
  ecommerce: {
    creative_name: "Summer Banner",
    creative_slot: "featured_app_1",
    promotion_id: "P_12345",
    promotion_name: "Summer Sale",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento select_promotion avviene quando una promozione viene selezionata da un elenco. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "select_promotion",
  ecommerce: {
    creative_name: "Summer Banner",
    creative_slot: "featured_app_1",
    promotion_id: "P_12345",
    promotion_name: "Summer Sale",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento remove_from_cart avviene quando un prodotto viene rimosso dal carrello. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "remove_from_cart",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento add_to_wishlist avviene quando un prodotto viene aggiunto alla lista dei desideri. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "add_to_wishlist",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento begin_checkout avviene quando un utente arriva nel checkout dell’ecommerce. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "begin_checkout",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    coupon: "SUMMER_FUN",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento add_payment_info avviene quando viene selezionato un metodo di pagamento nel checkout. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "add_payment_info",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    coupon: "SUMMER_FUN",
    payment_type: "Credit Card",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento add_shipping_info avviene quando viene selezionato un metodo di spedizione nel checkout. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "add_shipping_info",
  ecommerce: {
    currency: "USD",
    value: 30.03,
    coupon: "SUMMER_FUN",
    shipping_tier: "Ground", //questo è il valore del metodo di spedizione da popolare
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

L’evento purchase avviene quando un utente completa l’acquisto. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "purchase",
  ecommerce: {
    transaction_id: "T_12345",
    // Sum of (price * quantity) for all items.
    value: 72.05,
    tax: 3.60,
    shipping: 5.99,
    currency: "USD",
    coupon: "SUMMER_SALE",
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    },
    {
      item_id: "SKU_12346",
      item_name: "Google Grey Women's Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 3.33,
      index: 1,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "gray",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 21.01,
      promotion_id: "P_12345",
      promotion_name: "Summer Sale",
      quantity: 2
    }]
  }
});

L’evento refund avviene quando un utente viene rimborsato del suo acquisto. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "refund",
  ecommerce: {
    currency: "USD",
    transaction_id: "T_12345", // Transaction ID. Required for purchases and refunds.
    value: 30.03,
    coupon: "SUMMER_FUN",
    shipping: 3.33,
    tax: 1.11,
    items: [
    {
      item_id: "SKU_12345",
      item_name: "Stan and Friends Tee",
      affiliation: "Google Merchandise Store",
      coupon: "SUMMER_FUN",
      discount: 2.22,
      index: 0,
      item_brand: "Google",
      item_category: "Apparel",
      item_category2: "Adult",
      item_category3: "Shirts",
      item_category4: "Crew",
      item_category5: "Short sleeve",
      item_list_id: "related_products",
      item_list_name: "Related Products",
      item_variant: "green",
      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
      price: 10.01,
      quantity: 3
    }
    ]
  }
});

 
 
Inoltre, nei siti ecommerce o comunque nei siti in cui i visitatori possono iscriversi è importante tracciare anche questi eventi:


L’evento sign_up avviene quando un utente crea un account nel sito. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "sign_up",
  method: "Google", //il metodo usato per iscriversi al sito
});

L’evento login avviene quando un utente si collega al sito. Tramite questa azione si potrebbero anche raccogliere le Conversioni avanzate o le Advanced Match, ma questa è un’altra storia. Il dataLayer dovrebbe essere composto in questa maniera:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "login"
});

 
 

Se hai trovato interessante quello che ho raccontato in questo articolo, contattami tramite questo modulo

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Contattami se ti servono informazioni relative a Ecommerce dataLayer per Google Analytics 4




    Servizi correlati

    Google Analytics 4

    Google Analytics 4

    Google Analytics è un servizio gratuito di Web Analytics messo a disposizione da Google che offre dei rapporti molto approfonditi sulle visite del proprio sito internet o app sulla tipologia di visitatori e sulla loro provenienza… e poi molto altro!

    Google Tag Manager

    Google Tag Manager

    Google Tag Manager è uno strumento online gratuito e messo a disposizione da Google che permette la gestione e l’installazione di tag (o snippet di codice o ancora, in italiano, frammenti di codice) in un sito, senza avere accesso ftp...

    Tutti i prodotti Google

    Tutti i prodotti Google

    Uso quotidianamente tutti i prodotti Google e ne sperimento le loro potenzialità. Tutti i giorni ho a che fare con Gmail, Gsuite, Google Analytics, Google Tag Manager, Google Search Console, Drive, Youtube, My Business, Maps, Documenti, Fogli (Google Sheet), Presentazioni,...

    Altri servizi

    API

    API

    Uso e gestione delle varie librerie Api esistenti: Google Analytics, Google Maps, Fatture in cloud, Sendowl, Ebay, Amazon, ecc.. Lettura di dati tramite JSON, ecc…

    Conoscenza di CMS

    Conoscenza di CMS

    I principali CMS che conosco sono: Wordpress, Drupal, Prestashop, Magento. In questa breve lista li ho messi in ordine di esperienza acquisita.

    Creazione di Landing Page

    Creazione di Landing Page

    La landing page è una pagina specifica che viene raggiunta da un visitatore dopo aver cliccato solitamente su un link o su un annuncio pubblicitario. E’ strutturata in modo da espandere l’argomento trattato nel link o annuncio e per convertire...

    Gestire un sito web

    Gestire un sito web

    Hai commissionato un sito web, con gallerie fotografiche, slide show, animazioni JQuery e lo lasci invariato per anni? Pensi che il tuo biglietto da visita in internet debba rimanere statico come la brochure che hai fatto stampare e che viene...

    Invio email, gestione, creazione, G Suite

    Invio email, gestione, creazione, G Suite

    Gli strumenti per l’invio dei messaggi elettronici sono molti e tutti diversi. Alcuni mettono a disposizione molti strumenti, altri meno. Alcuni sono flessibili, altri meno. E comunque può succedere che l’email non arrivi al destinatario per i molteplici motivi: DKIM,...

    Matomo

    Matomo

    Se stai cercando un’alternativa libera a Google Analytics per monitorare il tuo sito web, Matomo è la scelta giusta per te. Questo software open source ti offre una vasta gamma di strumenti per analizzare i visitatori del tuo sito, come...

    Moduli e GDPR

    Moduli e GDPR

    GDPR, Privacy policy, cookie policy, moduli per la raccolta dei dati conformi allo standard della privacy policy, analisi e determinazione di quello che serve per essere in regola col regolamento GDPR.

    Servizi di Hosting

    Servizi di Hosting

    Ti trovi con un sito internet già portato a termine ma che sembra lento, poco navigabile (in termini di velocità) o a volte ti trovi schermate di errore (solitamente di memory limit) che non sai come interpretare, ma che spariscono...

    Social Network, Google Merchant

    Social Network, Google Merchant

    Come usare i social network in modo da rendere in tuo sito internet interconnesso ad essi. Invio di articoli ai Social Network, invio prodotti attraverso i feed, Google Merchant.

    Standard di sicurezza

    Standard di sicurezza

    Valutare se un sito è stato bucato o meno, quali standard di sicurezza usare per evitare che questo succeda di nuovo. Applicare il certificato HTTPS alla navigazione e fare in modo che tutte le url vengano redirette in navigazione sicura,...

    Sviluppo di siti internet

    Sviluppo di siti internet

    Nel corso degli anni ho acquisito un’ottima conoscenza dello sviluppo di siti web. Ho lavorato su un’ampia gamma di progetti che mi hanno richiesto di sviluppare diverse competenze. Ho lavorato a piccoli siti web con solo una o due pagine,...

    Tutti i prodotti Google

    Tutti i prodotti Google

    Uso quotidianamente tutti i prodotti Google e ne sperimento le loro potenzialità. Tutti i giorni ho a che fare con Gmail, Gsuite, Google Analytics, Google Tag Manager, Google Search Console, Drive, Youtube, My Business, Maps, Documenti, Fogli (Google Sheet), Presentazioni,...

    Hai un problema con il web?

    Il tuo sito internet non vuole funzionare? Vuoi rinnovarlo o sistemarlo? Hai un’idea di integrazione ma non sai se è possibile realizzarla o meno?

    Testimonianze

    Ho avuto il piacere di collaborare con Sara in diversi miei progetti. Ho sempre apprezzato la cura e l’impegno con cui prende in carico i suoi compiti. Tra le sue doti migliori spiccano la puntualità e la disponibilità nel risolvere questioni non prettamente attinenti alla sua area…

    Incredibile mente. Non conosce sosta finchè la problematica non viene risolta. Ha trasformato il mio sito vetrina costruito con un CMS desueto in un Ecommerce Drupal + Ubercart. I prodotti sono stati importati nel nuovo CMS attraverso un import e un crawler interamente scritto a mano.

    Stavo avendo problemi con la Web Agency a cui mi ero affidato. Mi avevano promesso un sistema di booking online completamente personalizzato. Ma non riuscivano a portarlo a termine. Per fortuna, ad un certo punto del progetto, è intervenuta Sara, che lo ha portato a termine.

    Skills in cui sono forte

    PHP7
    Html5
    Sviluppo web
    Google Analytics
    API di qualsiasi tipo
    Google Tag Manager
    jQuery
    Css3
    Trasferimento e acquisto domini
    Wordpress
    Drupal

    Recensioni

    Flavio Corò
    Flavio Corò
    22/09/2023
    Ho avuto il piacere di contattare la Sig.ra Sara tramite suggerimento da parte di un mio cliente per riisolvere una pratica burocratica/lavorativa e devo dire che la VELOCITÀ, PROFESSIONALITÀ, e COMPETENZA fanno parte del Suo bagaglio lavorativo,qualita al giorno d'oggi per niente scontate.Pienamente soddisfatto.
    Sonico Beauty
    Sonico Beauty
    17/01/2023
    Sara ci ha aiutato a risolvere piu' problemi in pochi minuti e con molta professionalità. Massima disponibilità e grande conoscenza nel mondo web. Assolutamente consigliata. Grazie mille
    Studio Legale Avvocato Armando Baffioni Venturi
    Studio Legale Avvocato Armando Baffioni Venturi
    07/11/2022
    Contattata tramite il suo sito web si è rivelata una persona affabile e preparata, pronta nel recepire le mie necessità e nel darmi le indicazioni corrette da seguire. Assolutamente da consigliare anche per assistenze e consulenze da remoto.
    Hermann Gils
    Hermann Gils
    28/10/2022
    Molto esperta, preparata e competente!
    Antonio Cimadomo
    Antonio Cimadomo
    07/08/2022
    Definire La Sig.a Sara Gasparini persona capace, Umile, molto intelligente e disponibile è il minimo che si possa fare. E' stata una grande emozione per me averla 'scovata'. Persone come Sara alzano, e di tanto, il livello sociale/culturale. Ringrazio ancora Sara per esserci.... Antonio p.s. Peccato ci siano solo 5 stelle :-(
    Max R_DJ
    Max R_DJ
    16/06/2021
    Molto professionale e preparata, ha risolto subito un mio problema inerente alle recensioni Google sul mio sito web. Complimenti Sara!
    Fabrizio Aureli
    Fabrizio Aureli
    18/03/2021
    Ottima collaboratrice

    Lasciami una recensione