# DataFirefly Social Connect — Guida completa

> Guida completa all'installazione, configurazione e utilizzo di DataFirefly Social Connect: accesso social tramite Google, Apple, Facebook, Microsoft, LinkedIn e X per WooCommerce, con statistiche, attribuzione degli ordini, test A/B e antifrode.

- Pagina: <https://www.datafirefly.com/it/documentation/datafirefly-social-connect/>
- Lingua: it
- Aggiornato il: 2026-06-28
- Altre lingue: [fr](https://www.datafirefly.com/documentation/datafirefly-social-connect/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-social-connect/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-social-connect/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-social-connect/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-social-connect/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-social-connect/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-social-connect/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Panoramica

DataFirefly Social Connect aggiunge al tuo negozio WooCommerce un accesso social in un clic tramite sei provider (Google, Apple, Facebook, Microsoft, LinkedIn e X), una dashboard statistica completa, l'attribuzione degli ordini al provider d'origine, un test A/B dei pulsanti, un sistema antifrode e la conformità GDPR nativa.

Il plugin non utilizza alcuna libreria CDN esterna: i grafici della dashboard sono renderizzati con canvas HTML5 nativo, e i flussi OAuth 2.0 / OpenID Connect sono implementati direttamente nel modulo (verifica completa della firma JWKS per Google One-Tap, firma ES256 al volo per Apple, rafforzamento `appsecret_proof` per Facebook, PKCE S256 per X).

**Requisiti**: WordPress 6.2 o superiore, WooCommerce 7.0 o superiore, PHP 8.0 o superiore. La compatibilità con HPOS e i blocchi carrello e checkout di WooCommerce viene dichiarata all'attivazione.

## Installazione

1. Scarica il file ZIP del plugin dalla tua area cliente DataFirefly.
2. In WordPress, vai in _Plugin → Aggiungi nuovo → Carica plugin_.
3. Seleziona il file ZIP e clicca su _Installa ora_.
4. Clicca su _Attiva_. WooCommerce deve essere attivo al momento dell'attivazione, altrimenti il plugin rifiuta di installarsi.
5. Nella barra laterale dell'amministrazione appare un nuovo menu _Social Connect_, con due sottopagine: _Statistiche_ e _Impostazioni_.

All'attivazione vengono create due tabelle SQL: `wp_dfsc_connections` (account collegati) e `wp_dfsc_events` (registro eventi per le statistiche). Le opzioni predefinite vengono scritte in `dfsc_settings`.

## Configurazione dei provider

Ogni provider ha la propria scheda nella tab _Provider_ delle impostazioni. Per ciascuno, in cima alla scheda viene mostrata l'**URI di redirezione** da copiare e incollare nella console del provider. È questo parametro che autorizza il tuo sito a ricevere il ritorno dell'autenticazione.

### Google (con One-Tap)

1. Vai su [Google Cloud Console](https://console.cloud.google.com/) e crea (o seleziona) un progetto.
2. In _APIs & Services → OAuth consent screen_, configura la schermata di consenso (tipo Esterno per un negozio pubblico, aggiungi il tuo dominio ai domini autorizzati).
3. In _Credentials → Create credentials → OAuth client ID_, scegli _Web application_.
4. In _Authorized redirect URIs_, incolla l'URI mostrata nella scheda Google di Social Connect (formato: `https://tuo-dominio.com/?dfsc_action=callback&dfsc_provider=google`).
5. Per attivare Google One-Tap, aggiungi anche il tuo dominio radice in _Authorized JavaScript origins_.
6. Copia il _Client ID_ e il _Client Secret_ nei campi corrispondenti della scheda Google, attiva l'interruttore del provider e seleziona _Mostra l'invito One-Tap ai visitatori non connessi_ se lo desideri.

One-Tap funziona con verifica completa della firma JWKS e controllo dei claim `aud`, `iss` ed `exp`. La validazione è crittografica, non solo dichiarativa.

### Apple (Sign in with Apple)

1. Su [Apple Developer](https://developer.apple.com/) (richiede account a pagamento), vai in _Certificates, Identifiers & Profiles → Identifiers_.
2. Crea un _App ID_ con la capability _Sign In with Apple_ attivata.
3. Crea poi un _Services ID_ (è questo l'identificativo che userai come «Client ID» in Social Connect). Configura il suo Sign In with Apple: aggiungi il tuo dominio in _Domains_, e l'URI di redirezione mostrata nella scheda Apple in _Return URLs_.
4. Crea una chiave privata (_Keys → +_), con _Sign In with Apple_ selezionato, associata al tuo App ID. Scarica il file `.p8` (puoi scaricarlo una sola volta).
5. Nella scheda Apple, inserisci il _Services ID_, il tuo _Team ID_ (visibile in alto a destra nel portale), il _Key ID_ (mostrato accanto alla chiave creata) e incolla l'intero contenuto del file `.p8` nell'area _Chiave privata_ (incluse le righe `-----BEGIN PRIVATE KEY-----`).

Apple restituisce il nome dell'utente solo al primo consenso, e non restituisce mai una foto del profilo. Se l'utente attiva «Hide My Email», viene fornito un indirizzo di relay Apple — il plugin lo utilizza normalmente. Se rifiuta di condividere qualsiasi indirizzo, viene generata automaticamente un'e-mail tecnica.

### Facebook

1. Su [Meta for Developers](https://developers.facebook.com/), crea un'applicazione di tipo _Consumer_.
2. Nell'applicazione, aggiungi il prodotto _Facebook Login → Web_.
3. Nelle impostazioni di Facebook Login, aggiungi l'URI di redirezione mostrata nella scheda Facebook a _Valid OAuth Redirect URIs_.
4. Recupera l'_App ID_ e l'_App Secret_ da _Settings → Basic_ e incollali nella scheda Facebook.

Il plugin rafforza ogni chiamata alla Graph API con `appsecret_proof` (HMAC-SHA256 del token firmato con il tuo App Secret), secondo le best practice di Meta.

### Microsoft

1. Su [Microsoft Entra (ex Azure AD)](https://entra.microsoft.com/), vai in _App registrations → New registration_.
2. Dai un nome alla tua applicazione. Per _Supported account types_, scegli _Accounts in any organizational directory and personal Microsoft accounts_ se vuoi accettare entrambi (usa il tenant `common`).
3. In _Redirect URI_, scegli _Web_ e incolla l'URI mostrata nella scheda Microsoft.
4. Una volta creata, copia l'_Application (client) ID_ nel campo corrispondente.
5. In _Certificates & secrets_, crea un _New client secret_, copia immediatamente il valore (non sarà più visibile) nel campo _Client Secret_.
6. Lascia il campo _Tenant_ su `common` per accettare sia account personali sia di lavoro/studio, o inserisci il tuo ID di tenant per restringere a un'organizzazione.

### LinkedIn

1. Su [LinkedIn Developers](https://www.linkedin.com/developers/), crea un'applicazione collegata alla tua pagina aziendale.
2. Nella tab _Products_, richiedi l'attivazione di _Sign In with LinkedIn using OpenID Connect_. L'approvazione è automatica.
3. Nella tab _Auth_, aggiungi l'URI di redirezione mostrata nella scheda LinkedIn a _Authorized redirect URLs_.
4. Copia il _Client ID_ e il _Client Secret_ dalla tab _Auth_ in Social Connect.

### X (Twitter)

1. Sul [portale sviluppatori di X](https://developer.x.com/), crea un progetto e poi un'applicazione.
2. In _User authentication settings_, attiva OAuth 2.0, scegli il tipo _Confidential client_ (consigliato), e incolla l'URI di redirezione mostrata nella scheda X in _Callback URI / Redirect URL_.
3. Inserisci il tuo _Website URL_ (homepage del tuo negozio).
4. Copia il _Client ID_ e il _Client Secret_ in Social Connect.

L'API X v2 non restituisce l'indirizzo e-mail. Il plugin genera automaticamente un indirizzo tecnico per creare l'account WordPress corrispondente. Se hai bisogno di un'e-mail reale, l'utente può aggiornarla dalla propria area cliente.

## Posizionamenti e aspetto

Nella tab _Aspetto_, scegli dove mostrare i pulsanti:

- **Modulo di accesso** WooCommerce (pagina Il mio account non connessa).
- **Modulo di registrazione** WooCommerce.
- **Pagina di checkout**, sopra il modulo.
- **Dashboard Il mio account**, con l'elenco degli account collegati e i pulsanti di associazione manuale.

Puoi anche inserire i pulsanti ovunque tramite lo shortcode:

```
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://tuo-sito/destinazione/"]
```

L'aspetto è configurabile su quattro assi:

- **Stile**: pieno (colori del brand), contorno (sfondo bianco, bordo colorato), minimal (sfondo grigio chiaro).
- **Forma**: arrotondato, pillola, quadrato.
- **Disposizione**: impilati o in linea.
- **Etichetta**: «Continua con…», «Accedi con…» o solo icona.

## Dashboard statistiche

La dashboard (menu _Social Connect → Statistiche_) riunisce tutta l'attività di accesso social del tuo negozio.

### KPI e grafici

Selettore di periodo in alto a destra: 7, 30, 90 o 365 giorni. I sei KPI mostrati coprono:

- **Accessi** — totale autenticazioni nel periodo.
- **Registrazioni** — nuovi account creati via accesso social.
- **Account collegati (totale)** — numero cumulativo di identità sociali associate agli utenti.
- **Ordini attribuiti** e **fatturato attribuito** — vedi la sezione successiva.
- **Tasso di conversione** — rapporto ordini / accessi.

Quattro grafici completano i KPI: una curva di evoluzione temporale per provider, un donut di ripartizione per provider, un donut di ripartizione per tipo di dispositivo (computer, mobile, tablet) e una scheda «Paesi principali» alimentata dalla geolocalizzazione.

### Attribuzione degli ordini

Ogni ordine WooCommerce piazzato da un utente arrivato tramite accesso social viene attribuito al suo provider d'origine. L'attribuzione si basa sul meta utente `_dfsc_registered_via` e, come riserva, sulla prima connessione social attiva dell'utente.

Vengono ascoltati gli hook `woocommerce_checkout_order_processed` e `woocommerce_store_api_checkout_order_processed`, coprendo sia il checkout classico sia quello a blocchi.

## Test A/B dei pulsanti

Nella tab _Aspetto_, attiva il blocco _Test A/B dei pulsanti_ e configura la variante B (stile, forma, disposizione, etichetta). Da quel momento, ogni visitatore riceve casualmente la variante A (le tue impostazioni di base) o la variante B (cookie `dfsc_ab`, 50/50, conservato 30 giorni).

Un'impressione è contata una volta per sessione di visitatore (cookie `dfsc_ab_imp`), per non gonfiare il volume. Le conversioni vengono misurate sugli eventi di accesso, registrazione, collegamento e ordine, e riportate sulla scheda _Test A/B_ della dashboard con impressioni, conversioni, ordini attribuiti, tasso per variante e designazione automatica della variante vincente.

Per ottenere un risultato statisticamente significativo, conta almeno 500 impressioni per variante. Sotto 200, le differenze misurate sono essenzialmente rumore.

## Antifrode — velocità di accesso

Nella tab _Privacy_, puoi attivare la limitazione della velocità per indirizzo IP. Tre soglie sono configurabili:

- **Tentativi massimi** — predefinito 8.
- **Finestra (minuti)** — predefinito 5.
- **Durata del blocco (minuti)** — predefinito 15.

Una volta superato il limite, l'IP viene bloccato per la durata configurata. Un evento di tipo `blocked` viene registrato e appare nell'attività recente. La protezione si applica sia alle redirezioni OAuth classiche sia al flusso Google One-Tap.

Indipendentemente, il plugin mantiene un elenco di domini e-mail usa e getta (Mailinator, Yopmail, 10MinuteMail, ecc.) che possono essere bloccati alla registrazione. L'elenco è estensibile tramite il filtro `dfsc_disposable_domains`.

## Geolocalizzazione

Attiva la geolocalizzazione nella tab _Privacy_. Il plugin utilizza il database MaxMind **già incorporato da WooCommerce** — nessuna chiamata a un servizio esterno viene effettuata. Se non hai ancora attivato la geolocalizzazione lato WooCommerce, vai in _WooCommerce → Impostazioni → Generali_ e attiva l'opzione di geolocalizzazione predefinita (WooCommerce scaricherà automaticamente il database).

Una volta attivata, il paese di ogni accesso viene risolto e alimenta la scheda _Paesi principali_ della dashboard e la colonna «Paese» dell'esportazione CSV.

## Esportazione CSV

Il pulsante _Esporta in CSV_ in cima alla dashboard esporta tutti gli eventi del periodo selezionato. Il file include una colonna per ogni campo rilevante (data UTC, evento, provider, contesto, paese, dispositivo, variante A/B, utente, ordine, importo, messaggio). Un BOM UTF-8 viene aggiunto all'inizio affinché Excel e LibreOffice Calc mostrino correttamente gli accenti.

## Collegamento degli account

Tre meccanismi coesistono per collegare un'identità sociale a un account WordPress:

1. **Identità già nota** — l'utente ha già utilizzato questo provider, il suo accesso è immediato.
2. **Collegamento automatico tramite e-mail** — esiste già un utente WordPress con la stessa e-mail di quella restituita dal provider. Se l'e-mail è verificata dal provider (e l'opzione _E-mail verificata richiesta_ è attiva), il collegamento è effettuato automaticamente.
3. **Collegamento manuale** — dalla dashboard _Il mio account_, un cliente con sessione attiva può associare o dissociare ogni provider tramite il pannello _Account collegati_.

## GDPR e privacy

Tre modalità di archiviazione dell'IP sono disponibili nella tab _Privacy_:

- **Hash** (predefinito) — HMAC-SHA256 con `wp_salt`, non reversibile.
- **Completo** — IP in chiaro (da usare solo se la tua policy sulla privacy lo menziona esplicitamente).
- **Nessuno** — l'IP non viene registrato affatto.

Il plugin dichiara un _exporter_ e un _eraser_ al sistema GDPR nativo di WordPress (_Strumenti → Esporta / Cancella dati personali_). Alla cancellazione di un utente, anche i suoi account collegati ed eventi vengono cancellati (o anonimizzati in caso di cancellazione).

## Shortcode e integrazione avanzata

Lo shortcode `[datafirefly_social_connect]` accetta i seguenti attributi:

- `context` — `login`, `register`, `checkout` o `custom`.
- `heading` — `yes` o `no`, per mostrare il titolo «Accesso rapido» sopra i pulsanti.
- `providers` — elenco separato da virgole per limitare la visualizzazione (es. `google,apple`).
- `redirect` — URL assoluto di redirezione dopo l'accesso (prevale sull'impostazione globale).

Puoi anche invocare il rendering direttamente in PHP:

```
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
```

## Hook e filtri per sviluppatori

- `dfsc_disposable_domains` (filtro) — estende o sostituisce l'elenco dei domini di e-mail usa e getta.
- `dfsc_user_registered` (azione) — si attiva subito dopo la creazione di un account tramite accesso social, con l'ID utente e il profilo normalizzato.
- `dfsc_after_login` (azione) — si attiva dopo ogni accesso riuscito.
- `dfsc_welcome_subject` e `dfsc_welcome_body` (filtri) — personalizzano oggetto e corpo dell'e-mail di benvenuto.
- `dfsc_placeholder_email_domain` (filtro) — modifica il dominio usato per le e-mail tecniche (Apple Hide My Email rifiutato, X).

Un'API REST in sola lettura espone le statistiche aggregate su `/wp-json/datafirefly-social-connect/v1/stats?days=30` (capacità `manage_woocommerce` richiesta). Attivala nella tab _Privacy_.

## Compatibilità

- **WooCommerce HPOS** — la compatibilità `custom_order_tables` viene dichiarata all'attivazione; l'archiviazione ad alte prestazioni degli ordini è pienamente supportata.
- **Blocchi di checkout** — l'hook `woocommerce_store_api_checkout_order_processed` viene ascoltato in parallelo a quello classico, l'attribuzione degli ordini funziona su entrambi i checkout.
- **Polylang e WPML** — le stringhe dell'interfaccia sono traducibili tramite il file `.pot` fornito (FR, EN, ES, DE, IT). I contenuti (e-mail di benvenuto, ecc.) sono compatibili con entrambi i plugin multilingua.
- **Multisito** — ogni sito della rete ha tabelle e opzioni proprie. La disinstallazione pulisce ogni sito.

## Disinstallazione

Alla rimozione del plugin da _Plugin_, il file `uninstall.php` viene eseguito automaticamente. Rimuove:

- Le tabelle `wp_dfsc_connections` e `wp_dfsc_events`.
- Le opzioni `dfsc_settings` e `dfsc_db_version`.
- I transient correlati (cache JWKS Google, cache del client secret Apple, token di stato).
- I meta utente (`_dfsc_provider`, `_dfsc_registered_via`, `_dfsc_avatar_id`, ecc.).

I tuoi utenti WordPress e i tuoi ordini WooCommerce non vengono mai toccati. In multisito, la disinstallazione percorre ogni sito della rete.

## FAQ e risoluzione dei problemi

### Il pulsante Google mostra «redirect_uri_mismatch»

L'URI di redirezione incollata in Google Cloud Console non corrisponde esattamente a quella mostrata nella scheda Google di Social Connect. Verifica di aver copiato l'URI completa (con `https://`, lo slash finale e i parametri `?dfsc_action=callback&dfsc_provider=google`).

### Apple restituisce «invalid_client»

Tre possibili cause: il _Services ID_ inserito non è un Services ID ma un App ID, il _Team ID_ è errato, o il contenuto della chiave privata `.p8` è incompleto (righe `-----BEGIN PRIVATE KEY-----` mancanti). Ricontrolla tutti e tre e svuota la cache del client secret Apple salvando nuovamente le impostazioni.

### Facebook restituisce un errore di `appsecret_proof`

L'App Secret inserito è errato o è stato rigenerato lato Meta senza essere aggiornato qui. Vai su Meta for Developers, ricopia il segreto e incollalo nella scheda Facebook.

### X / Twitter restituisce «invalid_request» al ritorno

Il _Callback URI_ non è stato inserito correttamente nel portale sviluppatori X, o il tipo di applicazione non è _Confidential client_ mentre il Client Secret è obbligatorio. Ricontrolla il portale.

### La dashboard è vuota anche se ho avuto accessi

Verifica che il periodo selezionato copra effettivamente i tuoi accessi (predefinito 30 giorni). Se hai appena attivato il plugin, aspetta di avere alcuni eventi prima di vedere i grafici animarsi.

### Il test A/B mostra tassi a 0%

Serve un minimo di impressioni e conversioni affinché i tassi diventino significativi. Conta qualche centinaio di impressioni per variante prima di interpretare i risultati.

### La geolocalizzazione non restituisce alcun paese

Verifica che WooCommerce abbia effettivamente scaricato il database MaxMind. Vai in _WooCommerce → Impostazioni → Generali_, attiva la geolocalizzazione predefinita e attendi qualche minuto. WooCommerce mantiene poi il database aggiornato automaticamente.

### Come forzare la disassociazione di un account dall'amministrazione?

Vai nella tabella `wp_dfsc_connections` ed elimina la riga corrispondente. Al prossimo accesso dell'utente tramite quel provider, sarà trattato come una nuova identità (ricollegata al suo account WordPress per e-mail se il collegamento automatico è attivo).
