Calculadora de reseñas para Google Maps | Actualizado Julio 2024

por | Jul 7, 2024 | Google Maps, Reseñas, SEO Local, Tutorial | 0 Comentarios

En este post, te mostraré cómo utilizar mi nueva calculadora de reseñas, un bookmarklet para contar y analizar las reseñas de un negocio en Google Maps. Este bookmarklet te permitirá obtener un desglose del número de reseñas por estrellas y calcular cuántas reseñas de 5 estrellas necesitas para alcanzar una puntuación objetivo.

Antes que nada, pásate por mi ficha para dejar una reseña, visita YinYangSEO y si quieres que te ayude o escríbeme por Telegram.

Cómo Utilizar un Bookmarklet para Contar y Analizar Reseñas de Google Maps

En este post, te mostraré cómo utilizar un bookmarklet para contar y analizar las reseñas de un negocio en Google Maps. Este bookmarklet no solo te permitirá obtener un desglose del número de reseñas por estrellas, sino que también calculará cuántas reseñas de 5 estrellas necesitas para alcanzar una puntuación objetivo.

¿Qué es un Bookmarklet?

Un bookmarklet es un pequeño programa almacenado como un enlace en los marcadores de tu navegador. Al hacer clic en el bookmarklet, se ejecuta el código JavaScript contenido en él, permitiendo realizar diversas tareas directamente desde tu navegador sin necesidad de instalar software adicional.

Cómo Funciona la Calculadora de Reseñas

Copiar el Código del Bookmarklet:

  • Haz clic en el botón de «Copiar Código».

Abrir Chrome:

  • Ve a ajustes en los tres puntitos de arriba a la derecha.
  • Selecciona «Marcadores» y luego «Lista de Marcadores».
  • Añade una nueva pestaña a marcadores.

Editar el Marcador:

  • Asigna el nombre «Calculadora de Reviews».
  • En la URL, pega el código copiado usando Ctrl + V.
  • Guarda los cambios.

Guía para Utilizar la Calculadora de Reseñas

Abre Google Maps:

  • Busca y abre una ficha cualquiera.

Pulsa en la Opción «Reseñas»:

  • Dirígete a la sección de reseñas de la ficha.

Abre la Calculadora de Reseñas:

  • Haz clic en el marcador creado previamente.

Visualiza las Reseñas:

  • Se abrirá una ventana mostrando la distribución de reseñas por estrellas.

Nota: Este proceso te permitirá analizar de manera rápida y eficaz la distribución de las reseñas en tu ficha de Google Maps.

Configuración del Objetivo de Rating

Abre la Calculadora de Reviews:

  • Sigue los pasos anteriores para abrir la calculadora.

Introduce el Objetivo de Rating:

  • Ejemplo: La ficha actual tiene un rating de 4.2 y buscas alcanzar un 4.3.

Calcular Reseñas Necesarias:

  • Introduce el objetivo de rating en el campo correspondiente.
  • Pulsa el botón de «Calcular».

Resultado:

  • La calculadora mostrará cuántas reseñas adicionales de 5 estrellas necesitas para alcanzar el rating deseado.
panojito calculadora de reseñas
Copiar Código Calculadora de reviews

Copiar Código Calculadora de reviews

Recuerda: Este proceso te ayudará a planificar y orientar tus estrategias de mejora de reseñas para alcanzar tus objetivos de rating o sentimiento en Google Maps.

Código de la Calculadora de Reseñas

javascript:(function() {
    function countReviews() {
        const counts = [0, 0, 0, 0, 0];
        document.querySelectorAll('tr.BHOKXe').forEach(row => {
            const ratingInfo = row.getAttribute('aria-label');
            const starCount = parseInt(ratingInfo.match(/(\d+) estrellas?/)[1]);
            const reviewCount = parseInt(ratingInfo.match(/(\d+[.,]?\d*)\sreseñas?/)[1].replace(/[.,]/g, ''));
            if (starCount >= 1 && starCount <= 5) {
                counts[starCount - 1] = reviewCount;
            }
        });
        const totalReviewsElement = document.querySelector('.fontBodySmall[jslog*="metadata"]').textContent;
        const totalReviews = parseInt(totalReviewsElement.match(/(\d+[.,]?\d*)/)[1].replace(/[.,]/g, ''));
        const currentRating = parseFloat(document.querySelector('.fontDisplayLarge').textContent.replace(',', '.'));
        const starEmojis = ['⭐', '⭐⭐', '⭐⭐⭐', '⭐⭐⭐⭐', '⭐⭐⭐⭐⭐'];
        const reviewSummary = counts.map((count, index) =>
            `<div class="review-row">
                <span class="stars">${starEmojis[index]}</span>
                <span class="count">${count}</span>
            </div>`
        ).join('');

        const popupWindow = window.open('', 'ReviewSummary', 'width=400,height=700');
        popupWindow.document.write(`
            <html>
            <head>
                <title>Resumen de Reseñas</title>
                <style>
                    body { 
                        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
                        padding: 20px; 
                        background-color: #f0f5f9; 
                        color: #333; 
                        line-height: 1.6; 
                    }
                    h1 { 
                        color: #2c3e50; 
                        text-align: center; 
                        margin-bottom: 20px; 
                    }
                    .logo, .graciosa-imagen { 
                        display: block; 
                        margin: 0 auto 20px; 
                        width: 150px; 
                        height: auto; 
                    }
                    .graciosa-imagen { 
                        width: 250px; 
                    }
                    .summary { 
                        background-color: #ffffff; 
                        padding: 20px; 
                        border-radius: 10px; 
                        box-shadow: 0 4px 6px rgba(0,0,0,0.1); 
                    }
                    .review-row { 
                        display: flex; 
                        justify-content: space-between; 
                        align-items: center; 
                        margin-bottom: 10px; 
                    }
                    .stars { 
                        font-size: 1.2em; 
                    }
                    .count { 
                        font-weight: bold; 
                        color: #3498db; 
                    }
                    .total, .current-rating { 
                        text-align: center; 
                        font-size: 1.1em; 
                        margin-top: 15px; 
                    }
                    .action { 
                        margin-top: 20px; 
                        text-align: center; 
                    }
                    input, button { 
                        margin: 10px 0; 
                        padding: 10px; 
                        width: 100%; 
                        border-radius: 5px; 
                        border: 1px solid #bdc3c7; 
                    }
                    button { 
                        background-color: #2ecc71; 
                        color: white; 
                        border: none; 
                        cursor: pointer; 
                        transition: background-color 0.3s; 
                    }
                    button:hover { 
                        background-color: #27ae60; 
                    }
                    #result { 
                        margin-top: 20px; 
                        font-weight: bold; 
                        text-align: center; 
                        color: #e74c3c; 
                    }
                    .footer { 
                        margin-top: 20px; 
                        text-align: center; 
                        font-size: 0.9em; 
                        color: #7f8c8d; 
                    }
                    .footer a { 
                        color: #3498db; 
                        text-decoration: none; 
                    }
                    .footer a:hover { 
                        text-decoration: underline; 
                    }
                    .notice {
                        background-color: #e74c3c;
                        padding: 10px;
                        border-radius: 5px;
                        text-align: center;
                        margin-bottom: 20px;
                        position: relative;
                        color: white;
                    }
                    .notice button {
                        position: absolute;
                        top: 50%;
                        right: 10px;
                        background: none;
                        border: none;
                        font-size: 1.2em;
                        cursor: pointer;
                        color: black;
                        transform: translateY(-50%);
                    }
                    .notice a {
                        color: white;
                        background-color: black;
                        padding: 5px 10px;
                        border-radius: 5px;
                        text-decoration: none;
                        display: inline-block;
                        margin-top: 10px;
                    }
                    .notice a:hover {
                        background-color: red;
                    }
                </style>
            </head>
            <body>
                <div class="notice">
                    <p>Oye! Antes de usar la calculadora, pásate por mi ficha y deja una reseña, ¿no?</p>
                    <button onclick="this.parentElement.style.display='none'">✖</button>
                    <a href="https://www.google.com/maps?cid=1749169878578667520" target="_blank">Dejar Reseña</a>
                </div>
                <img src="https://edulaborda.com/wp-content/uploads/2024/06/logo-transparente-Edu-Laborda-1.webp" alt="Logo Edu Laborda" class="logo">
                <h1>🌟 Resumen de Reseñas 🌟</h1>
                <div class="summary">
                    ${reviewSummary}
                    <p class="total">📊 Total de reseñas: ${totalReviews}</p>
                    <p class="current-rating">📈 Sentimiento actual: ${currentRating}</p>
                </div>
                <div class="action">
                    <input type="number" id="targetRating" step="0.1" min="${currentRating}" max="5" placeholder="🎯 Introduce la puntuación objetivo (ej. 4.9)">
                    <button onclick="calculateNeededReviews()">🚀 Calcular</button>
                </div>
                <div id="result"></div>
                <script>
                    function calculateNeededReviews() {
                        const targetRating = parseFloat(document.getElementById('targetRating').value);
                        if (isNaN(targetRating) || targetRating <= ${currentRating} || targetRating > 5) {
                            alert("🚫 Por favor, introduce una puntuación válida que sea mayor que la puntuación actual y menor o igual a 5.");
                            return;
                        }
                        const additionalReviewsNeeded = Math.ceil((targetRating * ${totalReviews} - ${currentRating} * ${totalReviews}) / (5 - targetRating));
                        document.getElementById('result').innerHTML = \`🎉 Necesitas aproximadamente <strong>\${additionalReviewsNeeded}</strong> reseñas de 5 estrellas para alcanzar una puntuación de <strong>\${targetRating}</strong>.\`;
                    }
                </script>
                <img src="https://edulaborda.com/wp-content/uploads/2024/07/EO75UY6XSXWgSzFnB5l-5g-400x250.webp" alt="Graciosa imagen" class="graciosa-imagen">
                <div class="footer">
                    <p>🙏 ¡Gracias por usar mi herramienta! Si te ha sido útil, te agradecería mucho que dejaras una reseña en mi ficha de Google.</p>
                    <p>🌐 <a href="https://edulaborda.com/" target="_blank">Visita mi sitio web personal</a></p>
                    <p>📍 <a href="https://www.google.com/maps?cid=1749169878578667520" target="_blank">Consulta mi ficha en Google Maps</a></p>
                    <p>🏫 <a href="https://yinyangseo.com/" target="_blank">Descubre mi academia y agencia</a></p>
                    <p>💬 ¿Quieres mejorar tus reseñas? Contáctame en Telegram: @Edu_Yinyangseo</p>
                </div>
            </body>
            </html>
        `);
        popupWindow.document.close();
    }
    countReviews();
})();

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *