Projekt fapi-signals má dodat jednoduchý způsob, jak do všech stránek WordPressu vložit tracking pixely do hlavičky a FAPI konverzní kódy do hlavičky. Konverze se mají odesílat přes FAPI SDK dle nápovědy: https://napoveda.fapi.cz/article/144-konverzni-kody
Vytvořit plugin, který:
- Vkládá vybrané pixely do
wp_head. - Vkládá FAPI konverzní kódy do
wp_head. - Vkládá
https://web.fapi.cz/js/sdk/fapi.jsvždy až za konverzní kódy. - Umožňuje v administraci zapnout/vypnout inicializaci pixelů a samostatně zapnout/vypnout odesílání konverzí pro každý nástroj.
- Pro každý aktivní pixel vyžaduje zadání příslušného ID.
- Server-side měření řeší pouze nástroje, které mají oficiální server-side API.
- Plugin nenahrazuje právní nastavení CMP, pouze se na něj napojuje.
- Neřeší se vlastní děkovací stránka, plugin pouze injektuje kód do stránky.
Pro každý aktivní nástroj se do wp_head vloží jeho základní pixel kód s příslušným ID.
Podporované nástroje a požadovaná ID:
- Meta Pixel:
meta_pixel_id - TikTok Pixel:
tiktok_pixel_id - Pinterest Tag:
pinterest_tag_id - LinkedIn Insight Tag:
linkedin_partner_id - Google Analytics 4:
ga4_measurement_id - Google Tag Manager:
gtm_container_id - Google Ads:
google_ads_id - FAPI Rewards script: vložený kód z administrace FAPI Rewards
Poznámka: Konkrétní startovací kódy se berou z oficiálních dokumentací jednotlivých platforem. V zadání stačí požadavek, aby se použily aktuální oficiální snippet kódy s vložením ID.
Do wp_head se vloží konverzní skripty dle aktivních přepínačů. fapi.js se vkládá samostatně do wp_footer a vždy až za konverzními kódy.
V patičce se vloží:
<script src="https://web.fapi.cz/js/sdk/fapi.js"></script>
Konverzní kódy se vkládají před fapi.js a využívají událost FapiSdkLoaded.
<script>
document.addEventListener('FapiSdkLoaded', function () {
FAPI_CONVERSION.runConversion(function (fapiOrderData) {
// konkrétní volání pro nástroj
});
});
</script>
Pro každý nástroj musí být možné zapnout:
- Standardní odeslání konverze
Konverze se odesílají standardně při zobrazení děkovací stránky.
Konkrétní volání:
- Meta (standard):
FAPI_CONVERSION.simpleFacebookPixelTransaction(fapiOrderData); - GA4 (standard):
FAPI_CONVERSION.simpleGA4Transaction(fapiOrderData); - GTM (standard):
FAPI_CONVERSION.simpleGoogleTagManagerTransaction(fapiOrderData); - Google Ads (standard):
FAPI_CONVERSION.simpleGoogleAdsTransaction(fapiOrderData, 'AW-XXXX'); - TikTok (standard):
FAPI_CONVERSION.simpleTikTokPixelTransaction(fapiOrderData); - Pinterest (standard):
FAPI_CONVERSION.simplePinterestTransaction(fapiOrderData); - Affilbox (standard):
FAPI_CONVERSION.simpleAffilboxTransaction(fapiOrderData, 'demo.affilbox.cz', '1'); - CJ (standard):
FAPI_CONVERSION.simpleCJTransaction(fapiOrderData, 'enterpriseId', 'actionTrackerId', 'cjeventOrder'); - Sklik (standard):
FAPI_CONVERSION.simpleSklikTransaction(fapiOrderData, sklikId, zboziId);
- Konverze a pixely jsou v UI nezávislé, není vynucený vztah pixel -> konverze.
- Pokud je potřeba vynucení závislostí, je nutné ho doplnit v admin UI a při ukládání nastavení.
- Plugin nesmí vkládat duplicitní kód při více hookech nebo cachování.
- Kódy se vždy generují pouze jednou na výstup stránky.
- Konverze se mají deduplikovat pomocí
event_id, pokud platforma podporuje deduplikaci.
Integrace CMP je implementovaná v klientském JS, ale je aktuálně vypnutá:
- v UI není viditelná sekce Consent manager
- skripty se injektují okamžitě bez ohledu na souhlas
- konfigurační klíče zůstaly v nastavení pro budoucí znovuzapnutí
Přidat konfiguraci "Consent manager" a podporovat tyto varianty:
| Nástroj | Kategorie souhlasu |
|---|---|
| GA4 | analytics |
| GTM (bez marketing tagů) | analytics |
| Meta Pixel | marketing |
| TikTok Pixel | marketing |
| marketing | |
| marketing | |
| Google Ads | marketing |
| Server-side PageView (Meta, TikTok, Pinterest, LinkedIn) | marketing |
| Affilbox / CJ / Sklik | marketing |
- Integrace přes eventy
cookieyes_banner_loadacookieyes_consent_updatenebo přesgetCkyConsent(). - Souhlas pro marketing/analytics vyčíst z vrácených kategorií.
- Zdroj: https://www.cookieyes.com/documentation/events-on-cookie-banner-load/ , https://cookieyes.com/documentation/retrieving-consent-data-using-api-getckyconsent
- Integrace přes WP Consent API (Complianz podporuje WP Consent API).
- Souhlas a kategorie se čtou přes API a podle nich se uvolní skripty.
- Zdroj: https://complianz.io/wp-consent-api/
- Integrace přes
window.CookiebotaCookiebot.consent. - Pro marketing použít
Cookiebot.consent.marketing, pro analyticsCookiebot.consent.statistics. - Zdroj: https://cookiebot.com/en/developer
- Kontrola cookie
cookie_notice_acceptedpro základní souhlas. - Při přítomnosti cookie uvolnit měření.
- Zdroj: https://wordpress.org/plugins/cookie-notice
- Tento režim je momentálně neaktivní.
fapi.js, pixely i konverze se vkládají vždy okamžitě.
- Aktuálně se nevyhodnocuje, protože CMP logika je vypnutá.
- V současnosti je to jediný aktivní režim.
- Server-side měření je pouze pro
PageView. Konverze se odesílají přes FAPI. - Aktivace je volitelná v administraci pro každou podporovanou platformu.
- Eventy se odesílají, pokud je daný server-side přepínač zapnutý.
- Doporučená deduplikace: sdílený
event_ids client-side pixel eventem (Meta Pixel + Meta CAPI). - Pokud je uzivatel prihlaseny, do Meta CAPI se doplnuje
user_data(hashovane identifikatory + IP/UA) pro lepsi match.
Podporované platformy a povinné vstupy:
- Meta CAPI:
meta_pixel_id,meta_capi_access_token→ eventPageView - GA4 Measurement Protocol:
ga4_measurement_id,ga4_api_secret→ eventpage_view - TikTok Events API:
tiktok_pixel_id,tiktok_access_token→ eventPageView - Pinterest Conversions API:
pinterest_tag_id,pinterest_access_token→ eventpage_visit - LinkedIn CAPI:
linkedin_partner_id,linkedin_access_token→ eventPageView
Poznámka: názvy eventů se řídí oficiální dokumentací jednotlivých platforem.
- Přepínač v administraci: "Debug mode".
- Pokud je zapnutý, zapisovat do konzole:
- detekovaný CMP
- stav souhlasu (analytics/marketing)
- které pixely byly injektovány
- které konverze byly odeslány
- Volba "Neodesílat produkční konverze" (volitelné):
- pokud zapnuto, konverze se pouze logují a neodesílají.
Admin stránka v WordPressu:
- Menu: Nastavení → FAPI Signals
- Každý nástroj má vlastní sekci s kompletním nastavením
- Sekce je aktuálně skrytá v UI.
- Logika je zachovaná v kódu pro budoucí opětovné zapnutí.
- Přepínač "Debug mode"
- Přepínač "Neodesílat produkční konverze"
- V horní části adminu zobrazit "traffic light" stav:
- CMP detekováno / nedetekováno
- Pixel aktivní / žádný pixel aktivní
- Konverze zapnuté / konverze vypnuté
- Celkový stav: "měření aktivní" nebo "měření neaktivní"
- Aktivovat Meta Pixel
- Pole pro Meta Pixel ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do Meta
- Aktivovat GA4
- Pole pro GA4 Measurement ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do GA4
- Aktivovat GTM
- Pole pro GTM Container ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do GTM
- Aktivovat Google Ads pixel
- Pole pro Google Ads ID (povinné, pokud aktivní, musí začínat
AW-) - Aktivovat odesílání konverzí do Google Ads
- Aktivovat TikTok Pixel
- Pole pro TikTok Pixel ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do TikTok
- Aktivovat Pinterest Tag
- Pole pro Pinterest Tag ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do Pinterest
- Aktivovat LinkedIn Insight Tag
- Pole pro LinkedIn Partner ID (povinné, pokud aktivní)
- Aktivovat odesílání konverzí do Affilbox
- Pole pro
affilbox_url(bez protokolu) - Pole pro
affilbox_campaign_id
- Aktivovat odesílání konverzí do CJ
- Pole pro
cj_enterprise_id - Pole pro
cj_action_tracker_id - Pole pro
cj_cjevent_order
- Aktivovat odesílání konverzí do Sklik
- Pole pro
sklik_id - Pole pro
sklik_zbozi_id
- Informace:
fapi.jsse vkládá automaticky na všechny stránky a vždy až za konverzními kódy. - Přepínač "Vkládat fapi.js" (default zapnuto) pro případ testování.
- Přepínač "Vkládat FAPI Rewards script" (výchozí zapnuto)
- Používaný skript:
<script src="https://form.fapi.cz/js/order-conversion/fapi-rewards-tracking.js"></script> - Script se vkládá vždy bez ohledu na CMP.
- Aktivovat server-side pageview (pro každý nástroj zvlášť).
- Pole pro povinné tokeny/klíče:
- Meta CAPI Access Token
- GA4 API Secret
- TikTok Access Token
- Pinterest Access Token
- LinkedIn Access Token
- Informace: odesílá se jen
PageViewa jen po souhlasu (marketing/analytics dle nástroje).
Doporučený způsob:
- Jedno pole v
wp_optionsjako asociativní pole, např.fapi_signals_settings. - Při čtení se provádí migrace z legacy klíče
fapi_conversion_plugin_settings. - Struktura klíčů:
meta_pixel_enabled,meta_pixel_id,meta_conversion_enabledtiktok_pixel_enabled,tiktok_pixel_id,tiktok_conversion_enabledpinterest_pixel_enabled,pinterest_tag_id,pinterest_conversion_enabledlinkedin_pixel_enabled,linkedin_partner_idga4_pixel_enabled,ga4_measurement_id,ga4_conversion_enabledgtm_pixel_enabled,gtm_container_id,gtm_conversion_enabledgoogle_ads_pixel_enabled,google_ads_id,google_ads_conversion_enabledaffilbox_conversion_enabled,affilbox_url,affilbox_campaign_idcj_conversion_enabled,cj_enterprise_id,cj_action_tracker_id,cj_cjevent_ordersklik_conversion_enabled,sklik_id,sklik_zbozi_idfapi_js_enabledmeta_capi_pageview_enabled,meta_capi_access_tokenga4_ss_pageview_enabled,ga4_api_secrettiktok_ss_pageview_enabled,tiktok_access_tokenpinterest_ss_pageview_enabled,pinterest_access_tokenlinkedin_ss_pageview_enabled,linkedin_access_tokendebug_enableddebug_disable_production_conversions
- ID pole jsou povinná při aktivaci pixelu.
- Formátové kontroly:
- GA4:
G-+ alfanumerické znaky - GTM:
GTM-+ alfanumerické znaky - Google Ads:
AW-+ čísla - LinkedIn Partner ID: pouze čísla
- GA4:
- API secret/token pole jsou povinná při aktivaci server-side pageview.
- Affilbox URL nesmí obsahovat protokol, má být ve tvaru
demo.affilbox.cz. - Sklik ID a Zbozi ID pouze čísla.
- CJ parametry jsou povinné, pokud je zapnutá konverze CJ.
wp_head: vložit pixel kódy všech aktivních nástrojů.wp_head: vložit konverzní kódy podle přepínačů.wp_footer: vložitfapi.jsaž za konverzními kódy.
Příklad pořadí v hlavičce:
<script>
document.addEventListener('FapiSdkLoaded', function () {
FAPI_CONVERSION.runConversion(function (fapiOrderData) {
FAPI_CONVERSION.simpleFacebookPixelTransaction(fapiOrderData);
FAPI_CONVERSION.simpleGA4Transaction(fapiOrderData);
});
});
</script>
Příklad pořadí v patičce:
<script src="https://web.fapi.cz/js/sdk/fapi.js"></script>
- Primární barva: #1E4FFF (moderní modrá)
- Sekundární barva: #00C2A8 (tyrkysová)
- Neutrální text: #1F2937
- Pozadí karet: #F5F7FB
- Radius karet: 12px, stíny jemné
- Typografie: systémový font stack, důraz na čitelnost
- Rozložení:
- Každý nástroj ve vlastní kartě
- Přepínače vlevo, pole pro ID vpravo pod názvem
- Stavové texty a popisy drobným šedým textem
- CTA tlačítka: primární modrá, sekundární obrys
- Uživatel zapne pixel (např. Meta).
- Zobrazí se pole pro ID, povinné k uložení.
- Zobrazí se přepínač pro konverze.
- Po uložení plugin automaticky vloží kódy.
- Zapnout každý pixel a ověřit, že se jeho kód objeví v
wp_head. - Zapnout konverzi a ověřit kód v
wp_head. - Ověřit, že
fapi.jsje vždy poslední skript v patičce. - Ověřit, že konverze lze zapnout i bez pixelu (aktuální chování).
- Ověřit validace ID polí.
- Zapnout server-side pageview a ověřit, že se event odesílá po aktivaci přepínače.
- Pixely se vkládají do hlavičky podle nastavení.
- Konverze se vkládají do hlavičky podle nastavení.
fapi.jsse vkládá vždy až za konverzní kódy.- Konverze nejsou vázané na aktivní pixel.
- Nastavení je přehledné a odpovídá modernímu FAPI stylu.