Abuja Digital Studio · Est. 2018
Start a Project
Troubleshooting

FAQ

OConvertorravo.com/docs/oconvert/faq

FAQ

Does OConvert work with page caches?

Yes. The injected <script id="oconvert-cfg"> block is stable across visitors - it carries no per-user data. The visitor ID is read from the ocv_vid cookie at runtime, so the same HTML can be served to everyone and the cookie disambiguates them client-side.

Where does the visitor cookie live?

It is set on init as ocv_vid, valid for 365 days, SameSite=Lax, secure when on HTTPS. It is not HttpOnly because the runtime JavaScript needs to read it.

Can I share an A/B test count with another plugin?

Yes. Call oconvert_active_test_count() or OConvert_Tests::count_active(). Both return the number of rows in wp_oconvert_tests with status='running'. This is the canonical source of truth used by the Orravo dashboard cards.

Is the event ingest endpoint authenticated?

No. POST /wp-json/oconvert/v1/event is intentionally public so anonymous traffic can record clicks, exposures, and conversions. It is rate-limited at 600 events per IP per minute via a transient bucket.

How does OConvert avoid blocking the FPM worker?

In ingest_event(), the DB insert is deferred to a shutdown action. The REST response is flushed first; when fastcgi_finish_request() is available, the worker is released before the insert runs. With sendBeacon on the client side, the round-trip never blocks the user.

How is the heatmap sample rate set?

Default is 0.25 (one in four clicks). Override with add_filter('oconvert_heatmap_sample_rate', fn() => 1.0) to capture everything, or a lower value to reduce write volume.

Where do test winners get announced?

When a test concludes, OConvert_Events::fire_test_winner() dispatches oconvert:test_winner on the canonical Orravo event bus with { test_key, variant, confidence }. OMailer and OIntel listen for it.

FAQ · OConvert Docs | Orravo