Canine Genetics For Puppy Shoppers: Making Science Simple

Canine Genetics for Puppy Shoppers: Making Science Simple is a collaborative project between Paction and Orivet Paw Print Genetics! The tool is intended to help you differentiate your breeding program by sharing with your prospective buyers how important it is to test breeding pairs and, because you are doing so, to choose you as a responsible breeder.

Paction has created this tool to function as a "widget". You can embed this widget on your own website to help get your prospective customers more engaged in your breeding program and to get them to spend more time on your website. Digital marketing research shows that you're 50% more likely to convert a lead if that lead engages on your site for 5 minutes or more. Plus, you're contributing to Paction's overall effort to better educate the current wave of Canadian dog owners!

Preview the widget below and see the instructions to follow.

Live Widget Preview

This is exactly what visitors will see after you embed the widget. Test it out to explore the full course experience.

Mini Course in Canine Genetics for Puppy Shoppers

Paction canine genetics mini course cover image
IN COLLABORATION WITH ORIVET PAW PRINT GENETICS
Step 1 of 6Powered byPaction

No-Code Friendly Setup

The embed takes less than five minutes. If you can paste text on your site, you can add this widget. Choose the option that matches how you manage your website:

  • Squarespace / Wix / Weebly / Showit: add a new Embed, Code, or HTML block, paste the code, and publish. The widget resizes itself.
  • WordPress (Gutenberg): insert a Custom HTML block, paste the code, and preview. No plugin needed.
  • WordPress (Elementor / Divi / other builders): drop in the HTML widget and paste the code.

Embedding Instructions

  1. Pick where the widget should appear on your page (for example, under a blog post or before your contact form).
  2. Click the button below to copy the embed code. It already includes the script, so you only need to paste once.
  3. Paste it into your site using an Embed/HTML block (or hand it to your web helper if you have one).
  4. Publish or refresh your page. The widget loads itself automatically and keeps the height consistent.

Vanilla JavaScript Snippet

Use this option for any CMS, static site, or website builder that lets you add custom HTML. It's the easiest choice if you do not work inside a React app.

<div data-paction-canine-genetics></div>
<script>
  (function (w, d, scriptId, scriptUrl) {
    function initWidget() {
      if (w.PactionCanineGeneticsWidget && typeof w.PactionCanineGeneticsWidget.init === 'function') {
        w.PactionCanineGeneticsWidget.init();
      }
    }

    if (w.PactionCanineGeneticsWidget && typeof w.PactionCanineGeneticsWidget.init === 'function') {
      initWidget();
      return;
    }

    var existingScript = d.getElementById(scriptId);
    if (existingScript) {
      existingScript.addEventListener('load', initWidget);
      return;
    }

    var scriptElement = d.createElement('script');
    scriptElement.id = scriptId;
    scriptElement.src = scriptUrl;
    scriptElement.async = true;
    scriptElement.addEventListener('load', initWidget);

    var target = d.head || d.body || d.documentElement;
    if (target) {
      target.appendChild(scriptElement);
    }
  })(window, document, 'paction-canine-genetics-embed-script', 'https://paction.ca/widgets/canine-genetics.js');
</script>

React Component Snippet

Working inside a React codebase? Drop this component into your project and mount it anywhere in your layout. It reuses the same script and keeps initialization logic tidy.

import { useEffect } from 'react';

const SCRIPT_ID = 'paction-canine-genetics-embed-script';
const SCRIPT_URL = 'https://paction.ca/widgets/canine-genetics.js';

export function PactionCanineGeneticsWidget() {
  useEffect(() => {
    const initWidget = () => {
      window.PactionCanineGeneticsWidget?.init?.();
    };

    if (window.PactionCanineGeneticsWidget?.init) {
      initWidget();
      return undefined;
    }

    const handleLoad = () => initWidget();
    let scriptElement = document.getElementById(SCRIPT_ID);

    if (scriptElement) {
      scriptElement.addEventListener('load', handleLoad);
      return () => scriptElement.removeEventListener('load', handleLoad);
    }

    scriptElement = document.createElement('script');
    scriptElement.id = SCRIPT_ID;
    scriptElement.src = SCRIPT_URL;
    scriptElement.async = true;
    scriptElement.addEventListener('load', handleLoad);

    const target = document.head || document.body || document.documentElement;
    if (target) {
      target.appendChild(scriptElement);
    }

    return () => {
      scriptElement.removeEventListener('load', handleLoad);
    };
  }, []);

  return <div data-paction-canine-genetics />;
}

Want to learn more about Paction?