Skip to main content

WP Full Picture Integration

Tier: Basic — Plugin-gated toggle. Turning it on does two things: (1) makes WP Full Picture the consent authority for Lead Attribution — the tracker follows Full Picture's consent choices before recording any lead — and (2) adds a conditional entry to the SyteOps REST allowlist so Full Picture's data-sender endpoint keeps working when REST API restriction is enabled.

What the toggle does

  • Consent (Lead Attribution): when enabled, the Lead Attribution tracker reads Full Picture's consent state and only records a lead — and only sets its cookies / stores first-touch attribution — once the visitor grants Statistics consent. See Consent gating below.
  • Adds /wp-json/fupi/v1/sender to the SyteOps REST restriction allowlist.
  • Hides the toggle and shows "Not Installed" when neither the free WP Full Picture nor WP Full Picture Premium plugin is detected.
  • Removes the allowlist carve-out when toggled off, so your restriction policy applies to the endpoint again.

When this integration is on and you use Lead Attribution, Full Picture becomes the consent authority: SyteOps reads Full Picture's consent choices directly — no per-site code. SyteOps maps Full Picture's Statistics consent to its own analytics category, so:

A lead is recorded — and syteops_vid / syteops_sid are set, and first-touch attribution is stored — only after the visitor grants Statistics consent in Full Picture. A later change or withdrawal is honored. If Full Picture hasn't resolved a choice yet, SyteOps stores and sends nothing (fail-closed).

Global Privacy Control (GPC) is always honored, whether or not Full Picture is active — a visitor whose browser sends GPC has no lead recorded and no cookie set, in every region. (Full Picture 10.1.1 does not honor GPC itself; SyteOps does.)

These are the settings running live on a production site (Full Picture Pro 10.1.1).

Geolocation — Analytics → Geolocation → "Cloudflare (for registered users)" (cf_default). A same-origin /cdn-cgi/trace lookup: reliable, free, no third party, no rate limit. It determines whether a visitor is in an opt-in (EU/EEA/UK) or opt-out region.

Consent banner — set to Manual mode:

SettingValueWhy
How should the banner work?ManualGives you the country lists below. Avoid Auto/strict (see the note).
Which mode if geolocation fails?Opt-inFail closed — an unknown visitor is treated as GDPR.
Track after visitors agreeIn specific countries → EU/EEA/UK + your opt-in listThese visitors must Accept before anything is stored.
Track from the start but let visitors declineIn all other countriesOpt-out regions (e.g. US) are tracked by default; the banner offers a decline.
Privacy policy pageyour policy pageRequired for a compliant banner.
"Do not ask visitors for consent again"OffLeaving it on breaks GDPR re-consent.

Keep consent records on (Full Picture → ConsentsDB) — GDPR requires producible proof of consent.

:::warning Don't use Auto/strict mode (Full Picture 10.1.1) auto_strict sets the opt-out region to US (CA), which needs a region, and no working Full Picture geo method supplies one in 10.1.1 (the geo Worker and ipdata paths are dead code; ipapi.co rate-limits). Opt-out never matches and US visitors silently fall back to opt-in. Manual mode with a bare-country opt-out list (e.g. US) works and is what's verified in production. :::

Register SyteOps's cookies with Full Picture

Add these to Full Picture's cookie list under the Statistics category, so its scanner keeps them instead of auto-filing them into a denied bucket and deleting them (an undeclared cookie getting auto-deleted is the #1 cause of "attribution stopped working"):

CookieLifetimePurposeCategory
syteops_vid1 yearAnonymous first-party visitor id (random UUID, no personal data) linking a visitor's conversionsStatistics
syteops_sid30 minutesSession id grouping conversions within a visitStatistics

Verify it works

Use a real Chrome browser with a normal user agent (a headless UA can trip internal-traffic filters and look like a failure for the wrong reason).

  1. EU, no consent: load from an EU IP (or force loc=DE). Full Picture shows its opt-in banner. Click a phone number → confirm no lead is recorded and no syteops_vid cookie is set.
  2. EU, after Accept: accept Statistics in the banner → a conversion is now recorded.
  3. US: load from a US IP → tracked by default (opt-out).
  4. GPC: enable Global Privacy Control → no lead, no cookie, in every region.

If Full Picture is off, Lead Attribution still honors GPC and can gate on a generic consent signal — a consent cookie/value (Leads → Settings → Consent), a window.syteopsLeadsConsent flag, or a syteops_consent_update DOM event — plus a By location mode that opt-ins EU/EEA/UK visitors automatically. See Lead Attribution → Consent & privacy.

Setup

  1. Install and activate the WP Full Picture plugin (free or premium) if you haven't already.
  2. Navigate to SyteOps → Integrations.
  3. Find WP Full Picture in the Analytics & SEO category.
  4. Toggle it ON and click Save Changes.

When SyteOps REST API restriction is off, the allowlist entry has no practical effect — WP Full Picture's endpoint is reachable either way. The integration matters when restriction is on.

Common use-cases

  • Keep analytics data flowing from WP Full Picture while SyteOps REST restriction is active.
  • Toggle access cleanly when debugging restriction-related issues.
  • Document in your operational record that WP Full Picture is a sanctioned REST caller.

Resources

Works with Lead Attribution

If you use the Lead Attribution module, enable its Mirror to WP Full Picture option and each captured conversion (phone-call click, reveal-number click, or form submit) is also recorded as a WP Full Picture event — so your existing analytics dashboards reflect the same leads. This is optional; Lead Attribution works on its own when WP Full Picture isn't installed.