Kartra
Kartra’s exact injection points vary by page type and legacy vs new builders. Prefer global script injection once per page, then place embeds only in HTML-capable regions.
Where to paste code
- Global tracking code or site-wide custom code settings.
- Page-level custom HTML blocks or JavaScript sections.
- Thank-you / upsell pages that allow third-party embeds.
Setup guide
- Add the SDK script once per document.
- Initialize after DOM ready with your ReactionSaaS credentials and allowed origins for your Kartra domain.
- Paste reaction-video (overlays) or Reactify custom elements (recorded reactions); avoid duplicate loaders on split-test variants.
- Validate on the winning variant’s live URL.
Example snippet
<script src="https://reactify-cdn.s3.us-east-2.amazonaws.com/sdk.js" defer></script>
<script>
window.addEventListener('DOMContentLoaded', function () {
if (!window.Reactify) return;
Reactify.init({
apiKey: 'YOUR_API_KEY',
accountId: 'YOUR_ACCOUNT_ID',
baseUrl: 'https://api.reactionsaas.com',
mode: 'production',
allowedOrigins: [window.location.origin]
});
});
</script>
<reaction-video
src="https://cdn.example.com/hero.mp4"
overlays="tap,poll,rating,slider,cta"
poll-question="Ready to continue?"
cta-text="Continue"
interaction-type="tap"
></reaction-video>ReactionSDK here means overlays on reaction-video (tap, poll, rating, slider, and CTA). For ReactifySDK—recorded video reactions and threads—load reactify.js and use reactify-video / reactify-thread per ReactifySDK HTML install.
Verification
- Publish to a live URL; open in a clean session and confirm the SDK loads without CSP errors.
- Trigger first render and first interaction; check ReactionSaaS analytics.
- Use the SDK playground with Kartra selected to mirror overlay settings.
Template platform_config
Marketplace templates can declare a Kartra block inside platform_config:
{
"kartra": {
"embed_type": "funnel_custom_script",
"host": "kartra",
"placements": [
"landing_page",
"funnel_step",
"opt_in_page",
"sales_page"
],
"script_surface": "page_custom_code_or_footer"
}
}UI presets (reference)
- Fullscreen / CTA — Single primary conversion path; respects reduced motion. Events: install_completed, first_render, first_interaction, template_used, platform_used, verification_heartbeat.
- Inline conversion block — Lazy-load; threads reactions to the same campaign as the page. Events: first_render, first_interaction, install_handoff_started, install_handoff_completed.
- Lead-gen overlay — Does not block native form submit. Events: first_render, first_interaction, template_used.
Troubleshooting
- Script does not run — Use a raw HTML or global script area; rich-text-only fields often strip JavaScript.
- 403 from API — Add the exact published origin (including www) to allowed domains.
- Duplicate events — Ensure only one SDK init per page when combining global and section-level code.
FAQ
Split tests? Install the embed on each variant that should collect reactions; keep a single init per page load.

