WebSite X5Help Center

 
Alessandro R.
Alessandro R.
User

Ai potrebbe sostituire i classici motori di ricerca - impostazioni parametri  it

Autor: Alessandro R.
Besucht 229, Followers 3, Geteilt 0  

Ciao a tutti, oggi affronto un tema discusso molte volte ma mai risolto: le recensioni dei clienti su Google.

Premessa

Sembra che l’AI e i suoi consigli stiano progressivamente sostituendo i classici motori di ricerca. Questa tecnologia si basa su diversi parametri, e uno dei più importanti sarà proprio quello delle recensioni.

Incomedia vende migliaia di copie in tutto il mondo e numerosi siti e-commerce vengono creati grazie ai suoi strumenti. Tuttavia, nel forum non esiste ancora una risposta chiara e definitiva su come configurare correttamente il codice delle recensioni Google compatibile con X5 Pro.

Il codice delle recensioni Google è esterno, proprio come lo è Google Analytics, che però viene preso in considerazione dal software e integrato facilmente impostando una chiave API. Vista l’attenzione di Incomedia per la SEO e il posizionamento, sarebbe fondamentale includere anche il codice delle recensioni: senza di esso, i siti web creati con X5 rischiano di essere penalizzati.

Codice standard fornito da Google

Ecco il codice base per l'integrazione delle recensioni:

<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
window.renderOptIn = function() {
window.gapi.load('surveyoptin', function() {
window.gapi.surveyoptin.render(
{
// REQUIRED FIELDS
"merchant_id": 123456789,
"order_id": "ORDER_ID",
"email": "CUSTOMER_EMAIL",
"delivery_country": "COUNTRY_CODE",
"estimated_delivery_date": "YYYY-MM-DD",

// OPTIONAL FIELDS
"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]
});
});
}
</script>

> Nota: il valore merchant_id": 123456789 è fittizio e deve essere sostituito con quello reale.

Codice modificato con l’aiuto di KolAsim

Il codice seguente include la gestione della casella di controllo:

<!-- recensioni Google piu codice casella di controllo -->
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>
<script>
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result.toISOString().split('T')[0];
}

$(document).ready(function() {
ritardoK = 5;
setTimeout(function() {
$(".field-row:last").hide();
textK = " Nesouhlasím se zasláním dotazníku spokojenosti v rámci programu Google - Heureka / recenze.";
k = '<br><input type="checkbox" id="check_K">&ensp;<span style="color:lightslategrey">' + textK + ' </span><br><br><hr color="LightGray" /> <br>';
checkedK = "Nesouhlasím se zasláním dotazníku spokojenosti v rámci programu Google - recenze.";
uncheckedK = "Zaslání dotazníku.";
$(".user-form").append(k);

$("#check_K").click(function() {
if ($("#check_K").is(":checked")) {
$("#000000008").val(checkedK);
} else {
$("#000000008").val(uncheckedK);
}
});
}, ritardoK * 1000);

window.renderOptIn = function() {
var orderDate = new Date();
var estimatedDeliveryDate = addDays(orderDate, 3); // Aggiungi 3 giorni alla data dell'ordine

if ($("#check_K").is(":checked")) { // Controllo se la casella è selezionata
window.gapi.load('surveyoptin', function() {
window.gapi.surveyoptin.render({
"merchant_id": 123456789,
"order_id": "[ORDER_ID]", // Variabile di X5 per ID ordine
"email": "[MAIL]", // Variabile di X5 per email del cliente
"delivery_country": "CS", // Codice paese fisso per Repubblica Ceca
"estimated_delivery_date": estimatedDeliveryDate // Data di consegna stimata calcolata
});
});
}
};
});
</script>

Problemi e possibili soluzioni

Il codice dovrebbe permettere a Google di inviare il questionario di valutazione dell’e-shop dopo un certo periodo dall’ordine. Tuttavia, sembra non funzionare correttamente. Ecco alcune possibili cause:

  1. Variabile email ("email": "[MAIL]") → [MAIL] potrebbe non essere riconosciuto correttamente. Verifica se X5 ha una variabile che restituisce l'email corretta.

  2. Codice del paese ("delivery_country": "CS") → Se Google indica "CS" come codice per la Repubblica Ceca, dovrebbe essere corretto. Tuttavia, prova anche "CZ".

  3. Order ID ("order_id": "[ORDER_ID]") → Verifica che [ORDER_ID] venga correttamente sostituito con il valore dell’ordine generato da X5. Se rimane come stringa statica, potrebbe non funzionare.

Una domanda interessante da porsi: perché, in tutti questi anni, nessuno nel forum ha mai impostato correttamente il sistema di recensioni Google? Potrebbe essere per la mancanza di documentazione chiara o per difficoltà tecniche non ancora risolte.

Gepostet am
7 ANTWORTEN - 1 NüTZLICH
Alessandro R.
Alessandro R.
User
Autor

Sarebbe utile avere almeno una risposta da qualche esperto di codice delle 3 variabili, per avere la conferma che l errore sia in quella posizione.

1- Variabile email ("email": "[MAIL]") → [MAIL] 

2- Codice del paese ("delivery_country": "CS")  CS o CZ per la Rep. Ceca?

3- Order ID ("order_id": "[ORDER_ID]")

ad esempio MAIL puo anche essere in minuscolo, fa differenza?

1- Variabile email ("email": "[MAIL]")

1- Variabile email ("email": "[mail]")

non vorrei perdermi per una virgola.

Credo che non siamo lontani dalla soluzione... mi dispiace solamente che forse non si comprende che il problema del posizionamento del web riguarda (o riguarderá ...) tutti e quando cambiano gli algoritmi o i sistemi di ricerca ad esempio da google a Ai sará troppo tardi correre ai ripari, perché acquisire recensioni sará un processo lungo (per chi non usa altri sw) ... nel frattempo probabilmente i web di Incomedia senza un setting sulle recensioni avranno una penalizzazione enorme sul posizionamento. 

Possibile che su migliaia di utenti nessuno configura la recensioni di google?

Mehr lesen
Gepostet am von Alessandro R.
Roberto M.
Roberto M.
User

Ciao. Da quello che vedo analizzando il codice La funzione addDays è corretta e calcola bene la data stimata di consegna. La casella di controllo (checkbox) viene aggiunta con un delay di 5 secondi, e funziona correttamente per modificare il valore di un campo nascosto (#000000008). Il caricamento asincrono del file platform.js di Google è corretto.

Quello che non mi convince e che tu hai già evidenziato e approfondisco sono le Variabili placeholder [ORDER_ID] e [MAIL] che sono lasciate come stringhe letterali. Di conseguenza Google non può inviare il questionario perché mancano dati essenziali se in WSX5 non si sostituisce correttamente questi placeholder. La soluzione potrebbe essere uella di sostituire Soluzione: sostituire con variabili JavaScript reali o server-side, esempio: var orderId = document.querySelector("#orderId").value; var email = document.querySelector("#email").value;

Non mi convince neanche il controllo if ($("#check_K").is(":checked")) all’interno della funzione renderOptIn. Se ci fai caso la funzione renderOptIn viene eseguita da Google appena carica platform.js, prima che la checkbox venga visualizzata (5 secondi dopo). Di Conseguenza: il controllo $("#check_K").is(":checked") potrebbe fallire perché #check_K non esiste ancora nel DOM. In parole più semplici potrebbe trattarsi di un ordine sbagliato sull'esecuzione degli script. Una soluzione possibile potrebbe essere quella di ritardare la chiamata window.renderOptIn() dopo la creazione del checkbox o legarla a un evento, ad esempio al submit dell’ordine.

Confermo che va corretto il codice pase da CS in CZ.

Infine in JavaScript/HTML le chiavi come "email" (usate nel codice per l’invio a Google) sono case-sensitive, quindi "email" è diverso da "EMAIL". Per sicurezza, devi sempre usare la forma richiesta esattamente come indicata nella documentazione di Google. Nel caso delle Google Customer Reviews, le chiavi accettate sono:"email": "***".

Mehr lesen
Gepostet am von Roberto M.
Alessandro R.
Alessandro R.
User
Autor

Ciao Roberto, la tua analisi puo aiutare molti utenti e non solo loro...

non ho le conoscenze che hai tu, considera che il codice é un mix di google, KolAsim, Ai e una parte piccolissima mia :)

di sicuro bisogna fare delle prove e le tue indicazioni ci avvicinano all obiettivo, perché si puo affermare che le recensioni google (o di altri) non sono piu un opzione ma sembrerebbero un obbligo.

Le variabili  le ho prelevate a intuito al passo 1, lingua dei contenuti.

Provo con alcuni miglioramenti suggeriti ma non é detto che riesca a eseguire al 100% quanto mi dici perché ho dei grossi limiti con i vari codici :)

ci aggiorniamo... tu (come molti altri), 6 una risorsa importante in questo forum, la crescita personale puo essere importante, come anche il tempo impegnato (che non tutti hanno...) per migliorare x5 alle esigenze attuali... pero resta il fatto che 14 anni fa avevo ordinato il sw per non dover mettere mano al codice e invece in tutti questi anni ho inserito codici su codici :) 

Mehr lesen
Gepostet am von Alessandro R.
Roberto M.
Roberto M.
User

Ciao Alessandro. Non entro mai nel merito come modifiche per listati prodotti da altri. Do solo indicazioni su cosa non mi convince ma non è detto che io abbia ragione. Vanno fatte delle prove. Ad esempio sulla tua pagina ove è inserito il listato originario prova questa funzione:

<!-- Google Customer Reviews + Checkbox Consenso -->
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
// Aggiunge giorni alla data (per stimare la consegna)
function addDays(date, days) {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result.toISOString().split('T')[0];
}

document.addEventListener("DOMContentLoaded", function () {
// Inserisci dinamicamente il checkbox
const checkboxHTML = `
<div style="margin: 20px 0; padding: 10px; border: 1px solid #ccc; border-radius: 6px; background: #f9f9f9;">
<label style="display:flex; align-items:flex-start; gap: 8px;">
<input type="checkbox" id="googleConsent" style="margin-top: 4px;">
<span>Acconsento a ricevere un questionario di soddisfazione da parte di Google in merito a questo acquisto.</span>
</label>
</div>
`;
document.body.insertAdjacentHTML("beforeend", checkboxHTML);

// Funzione di Google: viene richiamata dal platform.js SOLO se c’è consenso
window.renderOptIn = function () {
const consent = document.getElementById("googleConsent");
if (!consent || !consent.checked) return;

const estimatedDeliveryDate = addDays(new Date(), 3);

//  SOSTITUISCI CON LE TUE VARIABILI DI WebSite X5
const orderID = "[ORDER_ID]"; // Es. codice ordine generato da X5
const customerEmail = "[email]"; // Es. email cliente dalla conferma ordine
const countryCode = "IT"; // Modifica se vendi in altri paesi

// Esegui il rendering della richiesta opt-in
window.gapi.load('surveyoptin', function () {
window.gapi.surveyoptin.render({
"merchant_id": 123456789, // Inserisci il tuo vero ID da Google Merchant Center
"order_id": orderID,
"email": customerEmail,
"delivery_country": countryCode,
"estimated_delivery_date": estimatedDeliveryDate
});
});
};
});
</script>

Il codice gestisce l'aggiunta dinamica del checkbox per il consenso. Utilizza la funzione addDays() per calcolare la data di consegna stimata. La funzione renderOptIn() si attiva solo se il checkbox è selezionato, evitando invii non autorizzati.

Il checkbox viene inserito dinamicamente, quindi potrebbe essere utile verificare che esista prima di utilizzarlo in renderOptIn(). Un controllo come: if(!document.getElementById("googleConsent")) return;

Se vendi in più paesi, potrebbe essere utile dinamicamente impostare il valore in base alla posizione del cliente.

Prova il codice su un ambiente di sviluppo e verifica il comportamento in tempo reale. 

Mehr lesen
Gepostet am von Roberto M.
Alessandro R.
Alessandro R.
User
Autor

Ciao Roberto, purtroppo devo interrompere per un momento questo importante discorso perché il software continua a bloccarsi.

Sono sempre molto attivo nella creazione di nuove pagine, carrelli con sconti che trasformano automaticamente le pagine da HTML a PHP, vari codici come quello delle recensioni, e così via. Alla fine, tra i miei esperimenti e i limiti di X5, qualche problema salta sempre fuori.

Anche i backup stanno andando in crash, e mi ritrovo a dover ripercorrere a ritroso tutte le procedure, comprese quelle di disinstallazione e reinstallazione.

Non penso che i problemi dipendano da te; stavo sperimentando l'effetto onde nel footer e ho incontrato difficoltà con la responsività, dato che volevo estenderlo su tutta la larghezza della pagina. Avevo ottenuto discreti risultati allargando l'oggetto HTML oltre i limiti visibili nelle diverse visualizzazioni, ma forse proprio il superamento di certi limiti imposti da X5 ha generato un grande conflitto.

In conclusione, sto cercando di recuperare un po' di stabilità nel lavoro sul progetto, perché vedere il programma andare continuamente in crash (probabilmente a causa di codici extra) non è affatto piacevole. Ti ringrazio per tutto il supporto.

Per ora metto in pausa questo post… Speriamo che qualche altro utente abbia tempo di continuare il codice e trovare una versione definitiva. Nel frattempo, AI ha già avviato il conto alla rovescia per la penalizzazione degli e-shop senza recensioni...

Mehr lesen
Gepostet am von Alessandro R.
Roberto M.
Roberto M.
User
Alessandro R.
Ciao Roberto,.. Non penso che i problemi dipendano da te; stavo sperimentando l'effetto onde nel footer e ho incontrato difficoltà con la responsività, dato che volevo estenderlo su tutta la larghezza della pagina. Avevo ottenuto discreti risultati allargando l'oggetto HTML oltre i limiti visibili nelle diverse visualizzazioni, ma forse proprio il superamento di certi limiti imposti da X5 ha generato un grande conflitto.

A me funziona regolarmente e naturalmente in RESPONSIVE

Se lo leghi sotto un content slider deve essere responsive pure quello. Ci risentiamo.

Mehr lesen
Gepostet am von Roberto M.
Alessandro R.
Alessandro R.
User
Autor

l effetto onde funziona bene in responsive, nella griglia della pagina dove inserisci i vari oggetti...avevo dei dubbi nel footer, li non puoi usare la funzione estendi...quindi se inserisci l oggetto html nello spazio adibito al footer, resta scoperta la parte destra e sinistra di alcuni centrimetri... per ovviare a questo problema devi allargare l oggetto html oltre i limiti consentiti dalla visualizzazione che vedi quando apri il footer...parlo di 1200 px (circa).

x5 ti permette di allargare il tuo oggetto oltre il grande rettangolo di visualizzazione del footer, non é facile da spiegare ma se provi ti accorgerai che puoi inserire un oggetto oltre la zona non visibile

questo discorso andrebbe fatto su un altro post... ti ho scritto solo perché non volevo lasciare il post senza risposta per 7-10 giorni.

ciao 

Mehr lesen
Gepostet am von Alessandro R.