feat: add Google Reviews educational guide at /edukacja/opinie-google
Personalized guide with GBP links (write review, view profile, photos) for each member's company. Includes tips on collecting reviews, responding to feedback, Local Guides program, and Google policies. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f960a4cf0d
commit
700382b55d
@ -5,8 +5,8 @@ Education Routes
|
|||||||
Platforma Edukacyjna - materiały szkoleniowe dla członków Norda Biznes.
|
Platforma Edukacyjna - materiały szkoleniowe dla członków Norda Biznes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from flask import render_template
|
from flask import render_template, url_for
|
||||||
from flask_login import login_required
|
from flask_login import login_required, current_user
|
||||||
|
|
||||||
from . import bp
|
from . import bp
|
||||||
|
|
||||||
@ -25,6 +25,15 @@ def index():
|
|||||||
'status': 'available',
|
'status': 'available',
|
||||||
'video_url': 'videos/nordabiz-zajawka-final.mp4'
|
'video_url': 'videos/nordabiz-zajawka-final.mp4'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'id': 2,
|
||||||
|
'title': 'Opinie Google - jak budować reputację firmy',
|
||||||
|
'description': 'Praktyczny poradnik o opiniach w Google. Dowiedz się, jak zachęcać klientów do wystawiania opinii i jak odpowiadać na recenzje.',
|
||||||
|
'type': 'guide',
|
||||||
|
'duration': '12 min czytania',
|
||||||
|
'status': 'available',
|
||||||
|
'url': 'education.google_reviews_guide'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'id': 3,
|
'id': 3,
|
||||||
'title': 'Skuteczny networking w Izbie',
|
'title': 'Skuteczny networking w Izbie',
|
||||||
@ -44,3 +53,40 @@ def index():
|
|||||||
]
|
]
|
||||||
|
|
||||||
return render_template('education/index.html', materials=materials)
|
return render_template('education/index.html', materials=materials)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route('/opinie-google', endpoint='google_reviews_guide')
|
||||||
|
@login_required
|
||||||
|
def google_reviews_guide():
|
||||||
|
"""Poradnik o opiniach Google dla członków Izby."""
|
||||||
|
from database import db, CompanyWebsiteAnalysis, Company
|
||||||
|
|
||||||
|
# Get GBP data for the current user's company
|
||||||
|
gbp_data = None
|
||||||
|
company = None
|
||||||
|
if current_user.company_id:
|
||||||
|
company = db.session.get(Company, current_user.company_id)
|
||||||
|
if company:
|
||||||
|
analysis = (
|
||||||
|
db.session.query(CompanyWebsiteAnalysis)
|
||||||
|
.filter_by(company_id=company.id)
|
||||||
|
.order_by(CompanyWebsiteAnalysis.analyzed_at.desc())
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
if analysis and analysis.google_place_id:
|
||||||
|
links = analysis.google_maps_links or {}
|
||||||
|
gbp_data = {
|
||||||
|
'company_name': company.name,
|
||||||
|
'google_name': analysis.google_name,
|
||||||
|
'rating': float(analysis.google_rating) if analysis.google_rating else None,
|
||||||
|
'reviews_count': analysis.google_reviews_count or 0,
|
||||||
|
'photos_count': analysis.google_photos_count or 0,
|
||||||
|
'write_review_url': links.get('writeAReviewUri'),
|
||||||
|
'reviews_url': links.get('reviewsUri'),
|
||||||
|
'place_url': links.get('placeUri'),
|
||||||
|
'photos_url': links.get('photosUri'),
|
||||||
|
'google_maps_url': analysis.google_maps_url,
|
||||||
|
}
|
||||||
|
|
||||||
|
return render_template('education/google_reviews_guide.html',
|
||||||
|
gbp_data=gbp_data, company=company)
|
||||||
|
|||||||
647
templates/education/google_reviews_guide.html
Normal file
647
templates/education/google_reviews_guide.html
Normal file
@ -0,0 +1,647 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Opinie Google - Poradnik | Norda Biznes Partner{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_css %}
|
||||||
|
<style>
|
||||||
|
.guide-header {
|
||||||
|
margin-bottom: var(--spacing-xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-header h1 {
|
||||||
|
font-size: var(--font-size-3xl);
|
||||||
|
color: var(--text-primary);
|
||||||
|
margin-bottom: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-header .breadcrumb {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-header .breadcrumb a {
|
||||||
|
color: var(--primary);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-header .breadcrumb a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-layout {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 320px;
|
||||||
|
gap: var(--spacing-xl);
|
||||||
|
align-items: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.guide-layout {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content {
|
||||||
|
background: white;
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
padding: var(--spacing-xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content h2 {
|
||||||
|
font-size: var(--font-size-xl);
|
||||||
|
color: var(--text-primary);
|
||||||
|
margin-top: var(--spacing-xl);
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
padding-bottom: var(--spacing-sm);
|
||||||
|
border-bottom: 2px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content h2:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content h3 {
|
||||||
|
font-size: var(--font-size-lg);
|
||||||
|
color: var(--text-primary);
|
||||||
|
margin-top: var(--spacing-lg);
|
||||||
|
margin-bottom: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content p {
|
||||||
|
color: var(--text-secondary);
|
||||||
|
line-height: 1.7;
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content ul, .guide-content ol {
|
||||||
|
color: var(--text-secondary);
|
||||||
|
line-height: 1.7;
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
padding-left: var(--spacing-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guide-content li {
|
||||||
|
margin-bottom: var(--spacing-xs);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip-box {
|
||||||
|
background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 100%);
|
||||||
|
border: 1px solid #93c5fd;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: var(--spacing-md);
|
||||||
|
margin: var(--spacing-md) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip-box strong {
|
||||||
|
color: #1e40af;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip-box p {
|
||||||
|
color: #1e3a5f;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-box {
|
||||||
|
background: linear-gradient(135deg, #fef3c7 0%, #fffbeb 100%);
|
||||||
|
border: 1px solid #fbbf24;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: var(--spacing-md);
|
||||||
|
margin: var(--spacing-md) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-box strong {
|
||||||
|
color: #92400e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-box p {
|
||||||
|
color: #78350f;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-box {
|
||||||
|
background: #f0fdf4;
|
||||||
|
border: 1px solid #86efac;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: var(--spacing-md);
|
||||||
|
margin: var(--spacing-md) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-box strong {
|
||||||
|
color: #166534;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-box p, .example-box em {
|
||||||
|
color: #15803d;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bad-example-box {
|
||||||
|
background: #fef2f2;
|
||||||
|
border: 1px solid #fca5a5;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: var(--spacing-md);
|
||||||
|
margin: var(--spacing-md) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bad-example-box strong {
|
||||||
|
color: #991b1b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bad-example-box p, .bad-example-box em {
|
||||||
|
color: #b91c1c;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sidebar */
|
||||||
|
.guide-sidebar {
|
||||||
|
position: sticky;
|
||||||
|
top: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.company-gbp-card {
|
||||||
|
background: white;
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
padding: var(--spacing-lg);
|
||||||
|
margin-bottom: var(--spacing-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.company-gbp-card h3 {
|
||||||
|
font-size: var(--font-size-md);
|
||||||
|
color: var(--text-primary);
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-stat {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: var(--spacing-sm) 0;
|
||||||
|
border-bottom: 1px solid #f3f4f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-stat:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-stat-label {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-stat-value {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--text-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-stars {
|
||||||
|
color: #f59e0b;
|
||||||
|
font-size: var(--font-size-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-actions {
|
||||||
|
margin-top: var(--spacing-md);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-sm);
|
||||||
|
padding: 10px var(--spacing-md);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
font-weight: 500;
|
||||||
|
transition: all 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn.primary {
|
||||||
|
background: #4285f4;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn.primary:hover {
|
||||||
|
background: #3367d6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn.secondary {
|
||||||
|
background: #f3f4f6;
|
||||||
|
color: var(--text-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn.secondary:hover {
|
||||||
|
background: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gbp-action-btn svg {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc-card {
|
||||||
|
background: white;
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
padding: var(--spacing-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc-card h3 {
|
||||||
|
font-size: var(--font-size-md);
|
||||||
|
color: var(--text-primary);
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc-card a {
|
||||||
|
display: block;
|
||||||
|
color: var(--text-secondary);
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
padding: 6px 0;
|
||||||
|
border-bottom: 1px solid #f9fafb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc-card a:hover {
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-gbp-card {
|
||||||
|
background: linear-gradient(135deg, #fef3c7 0%, #fffbeb 100%);
|
||||||
|
border: 1px solid #fbbf24;
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
padding: var(--spacing-lg);
|
||||||
|
margin-bottom: var(--spacing-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-gbp-card h3 {
|
||||||
|
color: #92400e;
|
||||||
|
margin-bottom: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-gbp-card p {
|
||||||
|
color: #78350f;
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-checklist {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-checklist li {
|
||||||
|
padding: var(--spacing-sm) 0;
|
||||||
|
padding-left: 28px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-checklist li::before {
|
||||||
|
content: '\2713';
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
color: #22c55e;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="guide-header">
|
||||||
|
<div class="breadcrumb">
|
||||||
|
<a href="{{ url_for('education.education_index') }}">Platforma Edukacyjna</a> » Opinie Google
|
||||||
|
</div>
|
||||||
|
<h1>Opinie Google - jak budowac reputacje firmy</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="guide-layout">
|
||||||
|
<div class="guide-content">
|
||||||
|
|
||||||
|
<h2 id="dlaczego">Dlaczego opinie sa wazne?</h2>
|
||||||
|
<p>
|
||||||
|
Opinie w Google to jeden z najwazniejszych czynnikow, ktore wplywaja na to, czy potencjalny klient
|
||||||
|
wybierze Twoja firme. <strong>93% konsumentow</strong> czyta opinie online przed podjeciem decyzji zakupowej,
|
||||||
|
a firmy z ocena powyzej 4.0 generuja nawet <strong>270% wiecej zapytan</strong> niz te z nizsza nota.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Dla czlonkow Izby Norda Biznes opinie sa szczegolnie wazne — buduja zaufanie nie tylko wsrod klientow
|
||||||
|
indywidualnych, ale takze wsrod potencjalnych partnerow biznesowych szukajacych wykonawcow i podwykonawcow
|
||||||
|
w regionie.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Czy wiesz?</strong>
|
||||||
|
<p>
|
||||||
|
Google bierze pod uwage opinie przy ustalaniu pozycji w wynikach wyszukiwania.
|
||||||
|
Firmy z wieksza liczba pozytywnych opinii pojawiaja sie wyzej w Mapach Google
|
||||||
|
i w tzw. „local pack” (3 wyniki z mapa na gorze strony wyszukiwania).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="jak-zbierac">Jak zachecac klientow do wystawiania opinii?</h2>
|
||||||
|
|
||||||
|
<h3>1. Poprosto — po zakonczeniu uslugi</h3>
|
||||||
|
<p>
|
||||||
|
Najlepszy moment na prosbe o opinie to chwila, gdy klient jest zadowolony z uslugi.
|
||||||
|
Wyslij krotka wiadomosc SMS lub e-mail z bezposrednim linkiem do wystawienia opinii.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{% if gbp_data and gbp_data.write_review_url %}
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Twoj link do zbierania opinii:</strong>
|
||||||
|
<p style="margin-top: 8px;">
|
||||||
|
<a href="{{ gbp_data.write_review_url }}" target="_blank" rel="noopener"
|
||||||
|
style="color: #2563eb; word-break: break-all;">{{ gbp_data.write_review_url }}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin-top: 8px;">
|
||||||
|
Skopiuj ten link i wyslij klientom po zakonczeniu uslugi. Klikniecie przeniesie ich
|
||||||
|
bezposrednio do formularza wystawiania opinii.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<h3>2. Ulatw proces</h3>
|
||||||
|
<p>
|
||||||
|
Im mniej krokow, tym wiecej opinii. Kilka sprawdzonych sposobow:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Link na stronie www</strong> — dodaj przycisk „Wystaw opinie” na swojej stronie</li>
|
||||||
|
<li><strong>Kod QR</strong> — wydrukuj kod QR z linkiem i umiesc go w recepcji, na paragonie lub wizytowce</li>
|
||||||
|
<li><strong>Podpis e-mail</strong> — dodaj link do opinii w stopce swoich maili</li>
|
||||||
|
<li><strong>Media spolecznosdciowe</strong> — udostepnij link na Facebooku lub Instagramie</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>3. Nie kupuj opinii</h3>
|
||||||
|
<div class="warning-box">
|
||||||
|
<strong>Uwaga!</strong>
|
||||||
|
<p>
|
||||||
|
Google aktywnie wykrywa i usuwa falszywe opinie. Za kupowanie opinii Twoja wizytowka moze zostac
|
||||||
|
zablokowana lub usuniety z wynikow. Opinie powinny pochodzic od prawdziwych klientow, ktorzy
|
||||||
|
naprawde skorzystali z Twoich uslug.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="dobra-opinia">Jak wyglada dobra opinia?</h2>
|
||||||
|
<p>
|
||||||
|
Nie kazda opinia ma taka sama wartosc. Google i potencjalni klienci szczegolnie cenia opinie, ktore:
|
||||||
|
</p>
|
||||||
|
<ul class="review-checklist">
|
||||||
|
<li>Sa napisane wlasnymi slowami (nie skopiowane)</li>
|
||||||
|
<li>Opisuja konkretne doswiadczenie („Pan Kowalski naprawil dach w 3 dni”)</li>
|
||||||
|
<li>Zawieraja zdjecia wykonanej pracy lub produktu</li>
|
||||||
|
<li>Wymieniaja imie osoby, ktora obslugiwala (jezeli to stosowne)</li>
|
||||||
|
<li>Sa aktualne — Google premiuje swiezsze opinie</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="example-box">
|
||||||
|
<strong>Dobry przyklad opinii:</strong>
|
||||||
|
<p style="margin-top: 8px;"><em>
|
||||||
|
„Zlecilismy firmie XYZ remont dachu na budynku biurowym. Pan Marek i jego ekipa pracowali
|
||||||
|
sprawnie, dotrzymali terminu i dokladnie posprzatali po zakonczeniu pracy. Cena zgodna z oferta,
|
||||||
|
bez niespodzianek. Polecam kazdemu, kto szuka rzetelnego wykonawcy w regionie.”
|
||||||
|
</em></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bad-example-box">
|
||||||
|
<strong>Slaby przyklad opinii:</strong>
|
||||||
|
<p style="margin-top: 8px;"><em>„Polecam”</em> (zbyt krotka, nie wnosi informacji)</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="odpowiadanie">Jak odpowiadac na opinie?</h2>
|
||||||
|
<p>
|
||||||
|
Odpowiadanie na opinie to rownie wazne jak ich zbieranie. Pokazuje, ze cenisz zdanie klientow
|
||||||
|
i aktywnie zarzadzasz swoja reputacja.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Odpowiedz na pozytywna opinie</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Podziekuj z uzyciem imienia klienta</li>
|
||||||
|
<li>Nawiaz do konkretnego elementu opinii</li>
|
||||||
|
<li>Zachec do ponownego skorzystania z uslug</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="example-box">
|
||||||
|
<strong>Przyklad odpowiedzi:</strong>
|
||||||
|
<p style="margin-top: 8px;"><em>
|
||||||
|
„Dziekuje za mile slowa, Panie Andrzeju! Ciesze sie, ze remont dachu przebiegl
|
||||||
|
sprawnie. W razie potrzeby zapraszamy ponownie. Pozdrawiam — Marek, XYZ Dachy”
|
||||||
|
</em></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Odpowiedz na negatywna opinie</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Zachowaj spokoj</strong> — nigdy nie odpowiadaj emocjonalnie</li>
|
||||||
|
<li><strong>Przepros</strong> za bledne doswiadczenie (nawet jezeli sie nie zgadzasz)</li>
|
||||||
|
<li><strong>Zaproponuj rozwiazanie</strong> — przeniesc rozmowe offline (telefon, e-mail)</li>
|
||||||
|
<li><strong>Odpowiedz szybko</strong> — najlepiej w ciagu 24-48 godzin</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="warning-box">
|
||||||
|
<strong>Czego nie robic:</strong>
|
||||||
|
<p>
|
||||||
|
Nie atakuj autora opinii, nie ujawniaj danych osobowych, nie oferuj rabatow za zmiane opinii.
|
||||||
|
Profesjonalna, spokojna odpowiedz buduje wiecej zaufania niz sam fakt negatywnej recenzji.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if gbp_data and gbp_data.reviews_url %}
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Sprawdz i odpowiedz na opinie swojej firmy:</strong>
|
||||||
|
<p style="margin-top: 8px;">
|
||||||
|
<a href="{{ gbp_data.reviews_url }}" target="_blank" rel="noopener"
|
||||||
|
style="color: #2563eb;">Przejdz do opinii {{ gbp_data.google_name or gbp_data.company_name }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<h2 id="zdjecia">Zdjecia w profilu Google</h2>
|
||||||
|
<p>
|
||||||
|
Firmy ze zdjeciami otrzymuja <strong>42% wiecej zapytan o trasie</strong> w Mapach Google
|
||||||
|
i <strong>35% wiecej klikniec</strong> w strone internetowa. Warto zadbac o:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Zdjecie profilowe</strong> — logo firmy w dobrej jakosci</li>
|
||||||
|
<li><strong>Zdjecie w tle</strong> — siedziba, front budynku, zespol</li>
|
||||||
|
<li><strong>Zdjecia uslug/produktow</strong> — efekty pracy, realizacje</li>
|
||||||
|
<li><strong>Zdjecia wnetrza</strong> — biuro, zaklad, salon (jezeli przyjmujesz klientow)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Wskazowka:</strong>
|
||||||
|
<p>
|
||||||
|
Regularnie dodawaj nowe zdjecia (np. raz w miesiacu). Google premiuje aktywne profile.
|
||||||
|
Klienci tez moga dodawac zdjecia — warto ich do tego zachecac.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if gbp_data and gbp_data.photos_url %}
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Zarzadzaj zdjeciami swojej firmy:</strong>
|
||||||
|
<p style="margin-top: 8px;">
|
||||||
|
<a href="{{ gbp_data.photos_url }}" target="_blank" rel="noopener"
|
||||||
|
style="color: #2563eb;">Przejdz do zdjec {{ gbp_data.google_name or gbp_data.company_name }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<h2 id="local-guide">Program Google Local Guides</h2>
|
||||||
|
<p>
|
||||||
|
Google Local Guides to program lojalnoscowy Google. Kazdy uzytkownik Google moze zostac
|
||||||
|
Local Guide — wystarczy wystawiac opinie, dodawac zdjecia i uzupelniac informacje o miejscach.
|
||||||
|
</p>
|
||||||
|
<p>Za aktywnosc zbierasz punkty i awansujesz na kolejne poziomy (1-10):</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Opinia</strong> — 10 pkt (z tekstem ponad 200 znakow: 20 pkt)</li>
|
||||||
|
<li><strong>Ocena (same gwiazdki)</strong> — 1 pkt</li>
|
||||||
|
<li><strong>Zdjecie</strong> — 5 pkt</li>
|
||||||
|
<li><strong>Film</strong> — 7 pkt</li>
|
||||||
|
<li><strong>Odpowiedz na pytanie</strong> — 3 pkt</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Dlaczego to wazne dla Twojej firmy?</strong>
|
||||||
|
<p>
|
||||||
|
Opinie od Local Guides z wyzszym poziomem maja wieksza wiarygodnosc w algorytmie Google.
|
||||||
|
Zachecaj swoich staleych klientow do zalozenia konta Local Guide — ich opinie beda wazniejsze.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="zasady-google">Zasady Google dotyczace opinii</h2>
|
||||||
|
<p>
|
||||||
|
Google ma jasne zasady dotyczace tego, jakie opinie sa dozwolone. Znajomosc tych zasad
|
||||||
|
pomoze Ci zarowno zbierac opinie legalnie, jak i zglaszac te falszywe.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Zabronione tresci</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Spam i falszywe opinie (kupione, wymuszone, od pracownikow)</li>
|
||||||
|
<li>Tresci obraZliwe, nienawistne lub dyskryminujace</li>
|
||||||
|
<li>Reklamy i promocje w opiniach</li>
|
||||||
|
<li>Opinie dotyczace konkurencji (a nie miejsca, ktore sie ocenia)</li>
|
||||||
|
<li>Konflikty interesow (opinie od wlascicieli i pracownikow)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Jak zglosic falszywa opinie?</h3>
|
||||||
|
<ol>
|
||||||
|
<li>Wejdz na swoj profil firmy w Google</li>
|
||||||
|
<li>Znajdz opinie, ktora chcesz zglosic</li>
|
||||||
|
<li>Kliknij trzy kropki (…) obok opinii</li>
|
||||||
|
<li>Wybierz „Zglos jako nieodpowiednia”</li>
|
||||||
|
<li>Wypelnij formularz zgloszenia</li>
|
||||||
|
</ol>
|
||||||
|
<p>
|
||||||
|
Google rozpatruje zgloszenia w ciagu kilku dni. Nie wszystkie zgloszenia skutkuja usunieciem
|
||||||
|
— Google usunie opinie tylko jezeli naruszy zasady.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="podsumowanie">Podsumowanie — plan dzialania</h2>
|
||||||
|
<ol>
|
||||||
|
<li>Sprawdz swoj profil firmy w Google (link w panelu po prawej)</li>
|
||||||
|
<li>Odpowiedz na wszystkie opinie, na ktore jeszcze nie odpowiedziales</li>
|
||||||
|
<li>Dodaj aktualne zdjecia firmy, uslug i realizacji</li>
|
||||||
|
<li>Przygotuj link do wystawiania opinii i zacznij go wysylac klientom</li>
|
||||||
|
<li>Wyznacz osobe odpowiedzialna za monitorowanie opinii (np. raz w tygodniu)</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="guide-sidebar">
|
||||||
|
{% if gbp_data %}
|
||||||
|
<div class="company-gbp-card">
|
||||||
|
<h3>
|
||||||
|
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" style="color: #4285f4;">
|
||||||
|
<path d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/>
|
||||||
|
<path d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/>
|
||||||
|
</svg>
|
||||||
|
{{ gbp_data.google_name or gbp_data.company_name }}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
{% if gbp_data.rating %}
|
||||||
|
<div class="gbp-stat">
|
||||||
|
<span class="gbp-stat-label">Ocena</span>
|
||||||
|
<span class="gbp-stat-value">
|
||||||
|
<span class="gbp-stars">{{ '★' * (gbp_data.rating | int) }}{{ '☆' * (5 - gbp_data.rating | int) }}</span>
|
||||||
|
{{ gbp_data.rating }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="gbp-stat">
|
||||||
|
<span class="gbp-stat-label">Liczba opinii</span>
|
||||||
|
<span class="gbp-stat-value">{{ gbp_data.reviews_count }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="gbp-stat">
|
||||||
|
<span class="gbp-stat-label">Zdjecia</span>
|
||||||
|
<span class="gbp-stat-value">{{ gbp_data.photos_count }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="gbp-actions">
|
||||||
|
{% if gbp_data.write_review_url %}
|
||||||
|
<a href="{{ gbp_data.write_review_url }}" target="_blank" rel="noopener" class="gbp-action-btn primary">
|
||||||
|
<svg fill="currentColor" viewBox="0 0 24 24"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
|
||||||
|
Wystaw opinie
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if gbp_data.place_url %}
|
||||||
|
<a href="{{ gbp_data.place_url }}" target="_blank" rel="noopener" class="gbp-action-btn secondary">
|
||||||
|
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg>
|
||||||
|
Zobacz profil w Google
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if gbp_data.reviews_url %}
|
||||||
|
<a href="{{ gbp_data.reviews_url }}" target="_blank" rel="noopener" class="gbp-action-btn secondary">
|
||||||
|
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"/></svg>
|
||||||
|
Przeczytaj opinie
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if gbp_data.google_maps_url %}
|
||||||
|
<a href="{{ gbp_data.google_maps_url }}" target="_blank" rel="noopener" class="gbp-action-btn secondary">
|
||||||
|
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l5.447 2.724A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7"/></svg>
|
||||||
|
Otworz w Mapach
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="no-gbp-card">
|
||||||
|
<h3>Brak danych z Google</h3>
|
||||||
|
<p>
|
||||||
|
{% if company %}
|
||||||
|
Nie znalezlismy wizytowki Google Business Profile dla firmy {{ company.name }}.
|
||||||
|
Jezeli Twoja firma ma profil w Google, skontaktuj sie z administratorem portalu.
|
||||||
|
{% else %}
|
||||||
|
Nie jestes przypisany do zadnej firmy. Skontaktuj sie z administratorem portalu,
|
||||||
|
aby przypisac Ci firme.
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="toc-card">
|
||||||
|
<h3>Spis tresci</h3>
|
||||||
|
<a href="#dlaczego">Dlaczego opinie sa wazne?</a>
|
||||||
|
<a href="#jak-zbierac">Jak zachecac do opinii?</a>
|
||||||
|
<a href="#dobra-opinia">Jak wyglada dobra opinia?</a>
|
||||||
|
<a href="#odpowiadanie">Jak odpowiadac na opinie?</a>
|
||||||
|
<a href="#zdjecia">Zdjecia w profilu Google</a>
|
||||||
|
<a href="#local-guide">Program Local Guides</a>
|
||||||
|
<a href="#zasady-google">Zasady Google</a>
|
||||||
|
<a href="#podsumowanie">Plan dzialania</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@ -329,6 +329,8 @@
|
|||||||
<div class="material-card {% if material.status == 'coming_soon' %}coming-soon{% else %}available{% endif %}"
|
<div class="material-card {% if material.status == 'coming_soon' %}coming-soon{% else %}available{% endif %}"
|
||||||
{% if material.status == 'available' and material.video_url %}
|
{% if material.status == 'available' and material.video_url %}
|
||||||
onclick="openVideo('{{ url_for('static', filename=material.video_url) }}', '{{ material.title }}')"
|
onclick="openVideo('{{ url_for('static', filename=material.video_url) }}', '{{ material.title }}')"
|
||||||
|
{% elif material.status == 'available' and material.url %}
|
||||||
|
onclick="window.location.href='{{ url_for(material.url) }}'"
|
||||||
{% endif %}>
|
{% endif %}>
|
||||||
|
|
||||||
{% if material.status == 'available' and material.type == 'video' %}
|
{% if material.status == 'available' and material.type == 'video' %}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user