About
Resources
Blog
Games
Visuals
Podcast
Professional Development
Resources
Guides
Courses
Membership
Events
#PEChat
Speaking
Workshops
Contact
Join #PhysEdU!
Cart
0
Your Cart
$ 0 USD
:
Remove
Nothing in your cart
Go to Visuals
Product is not available in this quantity.
Join #PhysEdU!
The #PhysEd Blog
Latest posts and updates.
Curriculum
July 3, 2025
A Curriculum of Their Own: How I Designed Bespoke PE Outcomes for My School
I designed a bespoke set of P-5 outcomes for my school. Here's how.
Joey Feith
Author
More posts
All
Teacher Wellness
Advocacy
Reflections
Curriculum
Assessment
Teaching
Resources
Teaching
#PEChat Radio Hour: Adventure Education
Read more
Teaching
Creating A Culture Of Thinking And Learning In Physical Education
Read more
Teaching
Teaching With A Challenging Colleague
Read more
Resources
Top 10 Learning Visuals for Physical Education
Read more
Resources
Using RULER As A Framework For Intentional Social and Emotional Learning
Read more
Teaching
Teaching Through An Emotional Lens
Read more
Resources
Creating A Digital Physical Literacy Mural
Read more
Curriculum
The Interplanetary Games: A Field Day Guide
Read more
Resources
Introducing The Adventure Badges
Read more
Resources
Health Month: Sleep Week
Read more
Resources
Health Month: Nutrition Week
Read more
Reflections
The #PhysEd Show Podcast: Listener Q&A!
Read more
Reflections
Begin Again
Read more
Resources
My 2020 Stack: Apps & Tools I Use The Most
Read more
Advocacy
Rescuing Recess: Helping Recess Thrive In A Global Pandemic
Read more
Curriculum
The Striking & Fielding Games Teacher Pack
Read more
Advocacy
The Dragon Run: Planning A Virtual Community Running Event
Read more
Resources
Google Classroom Physical Activity Journals
Read more
Resources
Seesaw Mix & Match Activities for Physical Education
Read more
Resources
Language Learning TREK Adventure Packs
Read more
Resources
Wacky Ways To Move
Read more
Resources
Teach Me How To Juggle!
Read more
Resources
Distance Learning For Physical Education
Read more
Teaching
Jigsaw Learning In Physical Education
Read more
Teaching
The SAMR Model: Technology In Physical Education
Read more
Previous
Next
Newsletter
Sign up and never miss a blog post again.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
// Blog CTA Click Tracking for GA4 // Add this script to your Webflow site's custom code section // Function to track CTA clicks function trackBlogCTA(ctaLocation, ctaText, destinationUrl) { // Send event to GA4 if (typeof gtag !== 'undefined') { gtag('event', 'blog_cta_click', { 'event_category': 'Blog CTA', 'event_label': ctaText, 'cta_location': ctaLocation, // 'top', 'middle', 'bottom', 'inline' 'blog_post': window.location.pathname, 'destination_url': destinationUrl }); console.log('Blog CTA tracked:', { location: ctaLocation, text: ctaText, post: window.location.pathname }); } } // Automatically track all CTA clicks on blog posts document.addEventListener('DOMContentLoaded', function() { // Only run on blog post pages if (!window.location.pathname.includes('/blog/')) return; // Find all CTA links (adjust selectors based on your site structure) const ctaSelectors = [ 'a[href*="/membership"]', 'a[href*="/join"]', 'a[href*="physedu"]', 'a.cta-button', // If you have a specific class 'a.button-primary' // Adjust to match your button classes ]; // Combine all selectors const allCTALinks = document.querySelectorAll(ctaSelectors.join(', ')); allCTALinks.forEach(function(link) { link.addEventListener('click', function(e) { // Determine CTA location based on position on page const rect = link.getBoundingClientRect(); const scrollPos = window.scrollY + rect.top; const pageHeight = document.body.scrollHeight; const relativePos = scrollPos / pageHeight; let ctaLocation = 'middle'; if (relativePos < 0.25) ctaLocation = 'top'; else if (relativePos > 0.75) ctaLocation = 'bottom'; // Get CTA text const ctaText = link.textContent.trim() || link.getAttribute('aria-label') || 'Unknown'; // Get destination URL const destinationUrl = link.getAttribute('href'); // Track the click trackBlogCTA(ctaLocation, ctaText, destinationUrl); }); }); console.log('Blog CTA tracking initialized. Found ' + allCTALinks.length + ' CTA links.'); }); // Alternative: Manual tracking function you can call from specific CTAs // Usage:
window.trackBlogCTA = trackBlogCTA; // #PhysEdU Membership Conversion Tracking // Add this to Webflow Project Settings > Custom Code > Footer Code // Track when someone clicks to join #PhysEdU (starts checkout) document.addEventListener('DOMContentLoaded', function() { // Find all links to Circle checkout pages const checkoutLinks = document.querySelectorAll('a[href*="physedu.circle.so/checkout"]'); checkoutLinks.forEach(function(link) { link.addEventListener('click', function(e) { // Determine which tier based on URL let tier = 'unknown'; let value = 0; if (link.href.includes('/checkout/community')) { tier = 'community'; value = 10; } else if (link.href.includes('/checkout/plus')) { tier = 'plus'; value = 49; } else if (link.href.includes('/checkout/pro')) { tier = 'pro'; value = 99; } // Track the checkout initiation if (typeof gtag !== 'undefined') { gtag('event', 'begin_checkout', { 'event_category': 'PhysEdU Membership', 'event_label': tier, 'value': value, 'currency': 'USD', 'items': [{ 'item_id': 'physedu_' + tier, 'item_name': '#PhysEdU ' + tier.charAt(0).toUpperCase() + tier.slice(1), 'price': value, 'quantity': 1 }] }); console.log('Tracked: Begin checkout for #PhysEdU ' + tier); } }); }); console.log('PhysEdU checkout tracking initialized. Found ' + checkoutLinks.length + ' checkout links.'); }); // Track successful membership signup (when they return from Circle) // This checks if they're landing on a page after successful Circle checkout window.addEventListener('load', function() { // Check if URL contains success parameters // Circle typically adds parameters like ?success=true or redirects to a specific page const urlParams = new URLSearchParams(window.location.search); // Check for common success indicators const hasSuccess = urlParams.get('success') === 'true' || urlParams.get('checkout') === 'success' || urlParams.get('member') === 'new' || document.referrer.includes('circle.so/checkout'); // Also check if landing on a "welcome" or "success" page const isWelcomePage = window.location.pathname.includes('/welcome') || window.location.pathname.includes('/success') || window.location.pathname.includes('/getting-started'); if (hasSuccess || (isWelcomePage && document.referrer.includes('circle.so'))) { // Try to determine tier from URL or page content let tier = 'community'; // default assumption let value = 10; // Check URL for tier indicators if (urlParams.get('tier') === 'plus' || window.location.href.includes('plus')) { tier = 'plus'; value = 49; } else if (urlParams.get('tier') === 'pro' || window.location.href.includes('pro')) { tier = 'pro'; value = 99; } // Fire the conversion event if (typeof gtag !== 'undefined') { gtag('event', 'physedu_signup', { 'event_category': 'PhysEdU Membership', 'event_label': tier, 'value': value, 'currency': 'USD', 'transaction_id': 'physedu_' + Date.now(), // Simple unique ID 'items': [{ 'item_id': 'physedu_' + tier, 'item_name': '#PhysEdU ' + tier.charAt(0).toUpperCase() + tier.slice(1), 'price': value, 'quantity': 1 }] }); // Also fire a generic conversion event gtag('event', 'conversion', { 'send_to': 'AW-CONVERSION-ID/physedu_signup', // Update with your conversion ID if using Google Ads 'value': value, 'currency': 'USD', 'transaction_id': 'physedu_' + Date.now() }); console.log('Tracked: PhysEdU signup conversion - ' + tier + ' tier ($' + value + ')'); // Set a flag so we don't track this twice if they refresh sessionStorage.setItem('physedu_signup_tracked', 'true'); } } });