# Instalare pe WordPress

> Pluginul Survelium pentru WordPress — instalare, cache, WP-Cron și verificare.

Pluginul vede boții AI pe server și oamenii veniți din asistenți, și ne trimite datele din WP-Cron, la 5 minute.

**Cerințe:** PHP 8.1 sau mai nou, WordPress 6.0 sau mai nou.

## Instalare

1. **Creează o cheie** în Survelium → **Setări brand → Integrări → Creează cheia**. Începe cu `svk_` și apare o singură
   dată; copiaz-o.
2. **Descarcă pluginul**: fișierul `survelium-agent-analytics-x.y.z.zip` din
   [ultima versiune](https://github.com/survelium/agent-analytics-wordpress/releases/latest). **Nu** „Source code”:
   acela nu are folderul `vendor` și nu merge.
3. În WordPress: **Modules → Adaugă → Încarcă modul** (Plugins → Add New → Upload Plugin), alege zip-ul și activează-l.
4. **Setări → Survelium**: lipește cheia, salvează, apoi apasă **Send now**. „Sent.” înseamnă că am primit datele.

Cheia poate sta și în `wp-config.php`, unde are prioritate față de pagina de setări:

```php
define('SURVELIUM_INGEST_KEY', 'svk_...');
```

## Înainte să-l lași să ruleze, verifică

- **Cache-ul de pagini.** Paginile servite din cache nu rulează PHP, deci pluginul nu vede boții care le citesc.
  - **LiteSpeed** (pluginul LiteSpeed Cache, majoritatea hostingurilor partajate): rezolvat. Pluginul scrie un bloc la
    începutul `.htaccess` prin care boții AI și vizitatorii din asistenți ocolesc cache-ul. În tabelul de status apare
    „Active”. Blocul se scoate la dezactivare.
  - **WP Rocket, W3 Total Cache, Cloudflare „cache everything”, Varnish**: exclude manual din cache user agent-ii
    boților AI ([lista](https://survelium.ro/docs/ai-traffic/crawlers.md#lista-botilor)). Altfel apar doar paginile necacheuite.
- **WP-Cron rulează.** Dacă ai `DISABLE_WP_CRON`, cheamă `wp-cron.php` dintr-un cron real. Tabelul de status arată
  „overdue” când trimiterea s-a oprit.
- **În spatele Cloudflare sau al unui proxy**, IP-urile boților sunt ale proxy-ului și nu pot fi
  [verificate](https://survelium.ro/docs/ai-traffic/crawlers.md#verificarea), decât dacă numești antetul cu IP-ul real:

  ```php
  define('SURVELIUM_IP_HEADER', 'HTTP_CF_CONNECTING_IP');
  ```

  Pune-l doar dacă proxy-ul setează mereu antetul acela.

## Cum numără

- La fiecare afișare de pagină din front-end (nu admin, AJAX, REST sau cron), după ce pagina a plecat, pluginul
  verifică boții AI și asistenții. Ce se potrivește intră într-un tabel din baza ta de date (cel mult 20 000 de rânduri).
- **Totalul zilnic**: oamenii văd des pagini din cache, așa că îi numără un script de o linie din subsolul paginii, care
  doar adaugă 1 (nu trimite nimic despre vizitator). Boții AI se adaugă din PHP. Dacă oprești scriptul, PHP numără tot,
  dar paginile din cache lipsesc din total.
- Dacă nu ne poate trimite datele, le păstrează și reîncearcă. O cheie revocată sau un plan fără Trafic AI oprește
  trimiterea fără să piardă date; salvarea setărilor o repornește.

## Setări

| Setare | Implicit | |
|---|---|---|
| Cheia | — | Fără cheie nu se înregistrează nimic. |
| Ce raportează | boții AI și vizitatorii din asistenți | Sau doar boții AI. |
| Afișări de pagină | pornit | Scriptul din subsol pentru totalul zilnic. |
| Cache de pagini | pornit | Blocul LiteSpeed din `.htaccess`. |
| Căi ignorate | `/wp-admin`, `/wp-login.php`, `/wp-cron.php`, `/xmlrpc.php`, `/wp-json` | Nici raportate, nici numărate. |

## Verificare

- **Setări brand → Integrări** arată „Conectat · ultimele date …” la câteva minute după **Send now**.
- Boții apar în **Trafic AI → Boți AI** pe măsură ce vin; pe un site mic poate dura o zi.

## Dezinstalare

**Module → Dezactivează → Șterge** scoate tabelele, setările și blocul din `.htaccess`.
