How to Track Quiz Performance with Google Analytics¶
Google Analytics offers a powerful way to gain insights into user engagement with your quizzes. Linking your quiz with Google Analytics can provide valuable data on user interaction, pinpoint engagement issues, and help minimize abandonment rates.
The 💎 Built for Shopify version of RevenueHunt app includes native GA4 integration for comprehensive event tracking.
This article will guide you through the process of connecting your quiz to Google Analytics and tracking quiz events.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
To track quiz performance with Google Analytics in Shopify (legacy), you'll need to implement custom JavaScript tracking. This allows you to monitor specific quiz events and user interactions.
This article explains how to track quiz events and performance in Google Analytics.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
To track quiz performance with Google Analytics in WooCommerce, you'll need to implement custom JavaScript tracking. This allows you to monitor specific quiz events and user interactions.
This article explains how to track quiz events and performance in Google Analytics.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
To track quiz performance with Google Analytics in Magento, you'll need to implement custom JavaScript tracking. This allows you to monitor specific quiz events and user interactions.
This article explains how to track quiz events and performance in Google Analytics.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
To track quiz performance with Google Analytics in BigCommerce, you'll need to implement custom JavaScript tracking. This allows you to monitor specific quiz events and user interactions.
This article explains how to track quiz events and performance in Google Analytics.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
To track quiz performance with Google Analytics in a Standalone version of RevenueHunt app, you'll need to implement custom JavaScript tracking. This allows you to monitor specific quiz events and user interactions.
This article explains how to track quiz events and performance in Google Analytics.
GA4 Event Tracking Reliability
Since Google transitioned from Universal Analytics to GA4, event tracking reliability has significantly decreased.
The implementation code may be correct and events may fire as expected, but GA4 can still fail to read, process, or report them accurately.
If this occurs, we recommend contacting Google Support, as the issue is likely on their end.
Connect Quiz to Google Analytics¶
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
-
Make sure you have set up the GA4 tracking on your website.
Tip
Don't know how to connect your website to Google Analytics or find your GA tracking code? Check this link.
-
Head to your quiz and click on the Integrations tab.
- Click on the
Activatebutton in the Google Analytics section.
- Click
Saveto confirm the changes. - Once activated the quiz will connect to the GA4 tracking code already present on your website. It can take up to 72 hours for the data to start appearing in your Meta portal.
Optional: Add Custom Trackers
The native integration above already sends the standard events (quiz started, question viewed, choice answered, results viewed, product clicked, add to cart, and so on). To track custom events on top of those, use the quiz's built-in Custom JS section. It runs plain JavaScript (no <script> tags) and gives you a global window.quiz object.
Warning
The legacy prqQuizCallback / prqSlideCallback callbacks do not exist in the 💎 Built for Shopify version. Use window.quiz instead, as shown below. Custom JS only runs in the preview or live quiz, not inside the builder.
Prerequisite: GA4 (gtag.js) must already be installed on your store, the same requirement as the native integration above.
Track every answer. Open the first question in the quiz builder, expand its Custom JS section, and assign a handler to window.quiz.onChange. It fires after every answer and stays registered for the rest of the quiz:
// Fires after every answer the customer gives
window.quiz.onChange = function (event) {
gtag('event', 'quiz_question_answered', {
event_category: 'quiz',
question_ref: event.questionRef,
// selectedLabel is the readable choice text - no choice-ID mapping needed
answer: event.selectedLabel || event.value
});
};
The event object contains: questionRef, blockRef, type, choicesRefs, value, isValid, selectedIndex and selectedLabel.
Track quiz completion. Open the results page Custom JS section and call gtag() directly. It runs when the results page renders:
Monitor and adjust. Check Reports → Engagement → Events (or Realtime) in GA4 to confirm your custom events are coming through.
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
To track quiz events and performance in Google Analytics, you'll need to implement custom JavaScript tracking to your website, preferably the page where the quiz is embeded.
To implement custom event tracking for your quiz, follow these steps:
-
Understand the Callback Function: Visit the FAQ page to learn how our callback function works and how it can be used for tracking custom events.
-
Embed the Custom Script: Add the following script to the page where the quiz is embedded (or sitewide in your theme's main template file). Make sure your GA4
gtag.jssnippet loads before RevenueHunt'sembed.js: -
Customize Event Tracking: The example above fires once on completion. To track each answer as the customer makes it, add
prqSlideCallback, which fires every time a question is answered. The snippet below also maps the selected choice IDs to their human-readable labels (both the choices and the selected values live in the slide object):<script> // Fires each time a customer answers a question function prqSlideCallback(event) { var slide = event && event.slide; if (!slide || !slide.attributes) return; var choices = (slide.attributes.choices && slide.attributes.choices.data) || []; var selected = slide.attributes.values || []; // Turn selected choice IDs into readable labels // (text/number questions have no choices, so the raw value passes through) var labels = selected.map(function (val) { var match = choices.filter(function (c) { return c.id === val; })[0]; return match ? match.attributes.label : val; }); gtag('event', 'quiz_question_answered', { event_category: 'quiz', quiz_name: event.quiz.attributes.name, question_title: slide.attributes.title, answer: labels.join(', ') }); } </script> -
Monitor and Adjust: Once implemented, regularly check your Google Analytics dashboard to ensure events are being tracked correctly. Adjust the tracking code as needed based on your specific requirements.
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
To track quiz events and performance in Google Analytics, you'll need to implement custom JavaScript tracking to your website, preferably the page where the quiz is embeded.
To implement custom event tracking for your quiz, follow these steps:
-
Understand the Callback Function: Visit the FAQ page to learn how our callback function works and how it can be used for tracking custom events.
-
Embed the Custom Script: Add the following script to the page where the quiz is embedded (or sitewide in your theme's main template file). Make sure your GA4
gtag.jssnippet loads before RevenueHunt'sembed.js: -
Customize Event Tracking: The example above fires once on completion. To track each answer as the customer makes it, add
prqSlideCallback, which fires every time a question is answered. The snippet below also maps the selected choice IDs to their human-readable labels (both the choices and the selected values live in the slide object):<script> // Fires each time a customer answers a question function prqSlideCallback(event) { var slide = event && event.slide; if (!slide || !slide.attributes) return; var choices = (slide.attributes.choices && slide.attributes.choices.data) || []; var selected = slide.attributes.values || []; // Turn selected choice IDs into readable labels // (text/number questions have no choices, so the raw value passes through) var labels = selected.map(function (val) { var match = choices.filter(function (c) { return c.id === val; })[0]; return match ? match.attributes.label : val; }); gtag('event', 'quiz_question_answered', { event_category: 'quiz', quiz_name: event.quiz.attributes.name, question_title: slide.attributes.title, answer: labels.join(', ') }); } </script> -
Monitor and Adjust: Once implemented, regularly check your Google Analytics dashboard to ensure events are being tracked correctly. Adjust the tracking code as needed based on your specific requirements.
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
To track quiz events and performance in Google Analytics, you'll need to implement custom JavaScript tracking to your website, preferably the page where the quiz is embeded.
To implement custom event tracking for your quiz, follow these steps:
-
Understand the Callback Function: Visit the FAQ page to learn how our callback function works and how it can be used for tracking custom events.
-
Embed the Custom Script: Add the following script to the page where the quiz is embedded (or sitewide in your theme's main template file). Make sure your GA4
gtag.jssnippet loads before RevenueHunt'sembed.js: -
Customize Event Tracking: The example above fires once on completion. To track each answer as the customer makes it, add
prqSlideCallback, which fires every time a question is answered. The snippet below also maps the selected choice IDs to their human-readable labels (both the choices and the selected values live in the slide object):<script> // Fires each time a customer answers a question function prqSlideCallback(event) { var slide = event && event.slide; if (!slide || !slide.attributes) return; var choices = (slide.attributes.choices && slide.attributes.choices.data) || []; var selected = slide.attributes.values || []; // Turn selected choice IDs into readable labels // (text/number questions have no choices, so the raw value passes through) var labels = selected.map(function (val) { var match = choices.filter(function (c) { return c.id === val; })[0]; return match ? match.attributes.label : val; }); gtag('event', 'quiz_question_answered', { event_category: 'quiz', quiz_name: event.quiz.attributes.name, question_title: slide.attributes.title, answer: labels.join(', ') }); } </script> -
Monitor and Adjust: Once implemented, regularly check your Google Analytics dashboard to ensure events are being tracked correctly. Adjust the tracking code as needed based on your specific requirements.
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
To track quiz events and performance in Google Analytics, you'll need to implement custom JavaScript tracking to your website, preferably the page where the quiz is embeded.
To implement custom event tracking for your quiz, follow these steps:
-
Understand the Callback Function: Visit the FAQ page to learn how our callback function works and how it can be used for tracking custom events.
-
Embed the Custom Script: Add the following script to the page where the quiz is embedded (or sitewide in your theme's main template file). Make sure your GA4
gtag.jssnippet loads before RevenueHunt'sembed.js: -
Customize Event Tracking: The example above fires once on completion. To track each answer as the customer makes it, add
prqSlideCallback, which fires every time a question is answered. The snippet below also maps the selected choice IDs to their human-readable labels (both the choices and the selected values live in the slide object):<script> // Fires each time a customer answers a question function prqSlideCallback(event) { var slide = event && event.slide; if (!slide || !slide.attributes) return; var choices = (slide.attributes.choices && slide.attributes.choices.data) || []; var selected = slide.attributes.values || []; // Turn selected choice IDs into readable labels // (text/number questions have no choices, so the raw value passes through) var labels = selected.map(function (val) { var match = choices.filter(function (c) { return c.id === val; })[0]; return match ? match.attributes.label : val; }); gtag('event', 'quiz_question_answered', { event_category: 'quiz', quiz_name: event.quiz.attributes.name, question_title: slide.attributes.title, answer: labels.join(', ') }); } </script> -
Monitor and Adjust: Once implemented, regularly check your Google Analytics dashboard to ensure events are being tracked correctly. Adjust the tracking code as needed based on your specific requirements.
Note
Google Analytics GA4 tracking works best if you embed your quiz on a new page in your online store. Follow the instuctions in this article to set this up.
To track quiz events and performance in Google Analytics, you'll need to implement custom JavaScript tracking to your website, preferably the page where the quiz is embeded.
To implement custom event tracking for your quiz, follow these steps:
-
Understand the Callback Function: Visit the FAQ page to learn how our callback function works and how it can be used for tracking custom events.
-
Embed the Custom Script: Add the following script to the page where the quiz is embedded (or sitewide in your theme's main template file). Make sure your GA4
gtag.jssnippet loads before RevenueHunt'sembed.js: -
Customize Event Tracking: The example above fires once on completion. To track each answer as the customer makes it, add
prqSlideCallback, which fires every time a question is answered. The snippet below also maps the selected choice IDs to their human-readable labels (both the choices and the selected values live in the slide object):<script> // Fires each time a customer answers a question function prqSlideCallback(event) { var slide = event && event.slide; if (!slide || !slide.attributes) return; var choices = (slide.attributes.choices && slide.attributes.choices.data) || []; var selected = slide.attributes.values || []; // Turn selected choice IDs into readable labels // (text/number questions have no choices, so the raw value passes through) var labels = selected.map(function (val) { var match = choices.filter(function (c) { return c.id === val; })[0]; return match ? match.attributes.label : val; }); gtag('event', 'quiz_question_answered', { event_category: 'quiz', quiz_name: event.quiz.attributes.name, question_title: slide.attributes.title, answer: labels.join(', ') }); } </script> -
Monitor and Adjust: Once implemented, regularly check your Google Analytics dashboard to ensure events are being tracked correctly. Adjust the tracking code as needed based on your specific requirements.
Complete Custom Tracking Script (GA4)¶
For the Shopify (Legacy), WooCommerce, Magento, BigCommerce and Standalone versions
This script uses the callback functions. The 💎 Built for Shopify quiz doesn't use callbacks; use its results page Custom JS / window.quiz object instead.
If you'd rather send your own cleanly-named GA4 events than rely on the built-in view / click events, the script below is a complete, working reference. It tracks quiz start, every answer (question + chosen labels), the results page, each recommended product, and add to cart, each as its own GA4 event with descriptive parameters.
Before you start:
- Your GA4
gtag.jssnippet must load before RevenueHunt'sembed.js. - Place the script on the page where the quiz is embedded (or sitewide in your theme).
- The built-in tracking and this script both fire if your GA Measurement ID is saved in the quiz backend. To avoid double-counting, either leave the Measurement ID out of the quiz backend and rely solely on this script, or remove the events you don't want below.
<script>
(function () {
var quizStarted = false;
var productsBySku = {}; // captured on the results page, used to enrich add-to-cart
// Fires every time a customer answers a question.
// The first time it runs, it doubles as the "quiz started" signal.
window.prqSlideCallback = function (event) {
var slide = event && event.slide;
if (!slide || !slide.attributes) return;
if (!quizStarted) {
quizStarted = true;
gtag('event', 'quiz_start', { quiz_name: event.quiz.attributes.name });
}
var choices = (slide.attributes.choices && slide.attributes.choices.data) || [];
var selected = slide.attributes.values || [];
// Map selected choice IDs to readable labels (raw value passes through for text/number questions)
var labels = selected.map(function (val) {
var match = choices.filter(function (c) { return c.id === val; })[0];
return match ? match.attributes.label : val;
});
gtag('event', 'quiz_question_answered', {
quiz_name: event.quiz.attributes.name,
// strip any unresolved recall token like {{slide:x1i0d83}} from the title
question_title: (slide.attributes.title || '').replace(/\{\{slide:\w+\}\}/g, '').trim(),
answer: labels.join(', ')
});
};
// Fires once, when the customer reaches the results page.
window.prqQuizCallback = function (response) {
var quizName = response.quiz.attributes.name;
var result = response.response.attributes.selected_result;
var resultName = (result && result.data) ? result.data.attributes.name : '';
var products = response.response.attributes.recommended_products || [];
// One event for reaching the results page
gtag('event', 'quiz_results', {
quiz_name: quizName,
result_name: resultName,
product_count: products.length
});
// One event per recommended product (see the note below on why these are separate)
products.forEach(function (p) {
productsBySku[p.sku] = p; // stash for add-to-cart enrichment
gtag('event', 'quiz_product_recommended', {
quiz_name: quizName,
result_name: resultName,
product_name: p.name,
product_sku: p.sku,
product_price: p.price,
product_id: p.origin_id,
variant_id: p.variant_id
});
});
};
// Fires when a customer adds a recommended product to the cart from the results page.
// The add-to-cart event carries sku / origin_id / variant_id; name & price are
// enriched from the products captured above.
window.prqAddOneToCartCallback = function (event) {
var p = productsBySku[event.sku] || {};
gtag('event', 'quiz_add_to_cart', {
product_name: p.name || '',
product_sku: event.sku,
product_price: p.price || '',
product_id: event.originId,
variant_id: event.variantId
});
};
})();
</script>
Why quiz_results and quiz_product_recommended are separate
A results page can recommend more than one product. Firing the results event once (with result_name) and a separate per-product event keeps your "reached results" count accurate. If you instead fire a single combined event per product, your results count multiplies by the number of products shown.
The parameters above (quiz_name, question_title, answer, product_name, and so on) are standard GA4 event parameters. To use them in GA4 reports and Explorations, register the ones you need as custom dimensions under Admin → Custom definitions.
Track Customer Behavior (Events)¶
You'll be able to see quiz usage and customer behavior in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Data may take up to 72 hours to appear
If you don't see the events, check the View realtime tab in GA4 or wait a day or two for the data to appear. Google Analytics can take up to 72 hours to process the data.
Events are triggered every time a customer starts a quiz, views a question, picks a choice, gets to the results page, adds a product to the cart, and proceeds to the cart/checkout. You can check more data about unique events by clicking on the specific Event name.
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks on the button of the first question or the welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks on a choice or selects an option from a dropdown | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User responds to the email question | email_lead_{quiz_name} | quiz_name |
| User responds to the phone question | phone_lead_{quiz_name} | quiz_name |
| User gets to results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks on product (view product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart (via "add to cart" or "add all to cart" buttons) | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart/checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Once set up, you'll be able to see customer events in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Built-in events (no script required). Click Activate in your quiz's Connect → Google Analytics section, and the quiz automatically sends GA4-native events to whichever GA4 property your store's gtag.js is configured with. (No Measurement ID needed — just make sure your gtag.js snippet loads before RevenueHunt's embed.js.) Each event name is built from its main parameter, so the value shows up directly in GA4's Event name report. To use the other parameters (like question_title or question_ref) as report columns, register them as custom dimensions under Admin → Custom definitions:
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks the button on the first / welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks a choice or selects a dropdown option | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User answers the email question | email_lead_{quiz_name} | quiz_name |
| User answers the phone question | phone_lead_{quiz_name} | quiz_name |
| User reaches the results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks a product (view-product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart ("add to cart" / "add all to cart") | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart / checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes the quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Same events as the Built for Shopify version
This is the exact GA4 event catalog the 💎 Built for Shopify quiz sends (see the Shopify tab above). The older view / click / submit / recommendation events (with event_category / event_label) are no longer sent.
generate_lead is a standard GA4 conversion event
Unlike the others, generate_lead keeps its plain name (no _{…} suffix) so GA4 can treat it as a conversion. Mark it as a key event under Admin → Events if you want it counted as a conversion.
Question titles may contain a recall token
The question_title parameter (and the question_viewed_{question_title} event name) use the raw question title. If a question pipes in a previous answer, the title holds an unresolved recall token like {{slide:x1i0d83}}, and the token (not the answer) is what reaches GA4. The token is stable, it never changes per visitor or when you edit the quiz, so it's safe as a grouping key, but it isn't human-readable. The same applies if you read slide.attributes.title in a custom callback; strip it with slide.attributes.title.replace(/\{\{slide:\w+\}\}/g, '').trim().
If you're not seeing the events, make sure your GA4 gtag.js snippet loads before RevenueHunt's embed.js.
Once set up, you'll be able to see customer events in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Built-in events (no script required). Click Activate in your quiz's Connect → Google Analytics section, and the quiz automatically sends GA4-native events to whichever GA4 property your store's gtag.js is configured with. (No Measurement ID needed — just make sure your gtag.js snippet loads before RevenueHunt's embed.js.) Each event name is built from its main parameter, so the value shows up directly in GA4's Event name report. To use the other parameters (like question_title or question_ref) as report columns, register them as custom dimensions under Admin → Custom definitions:
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks the button on the first / welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks a choice or selects a dropdown option | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User answers the email question | email_lead_{quiz_name} | quiz_name |
| User answers the phone question | phone_lead_{quiz_name} | quiz_name |
| User reaches the results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks a product (view-product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart ("add to cart" / "add all to cart") | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart / checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes the quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Same events as the Built for Shopify version
This is the exact GA4 event catalog the 💎 Built for Shopify quiz sends (see the Shopify tab above). The older view / click / submit / recommendation events (with event_category / event_label) are no longer sent.
generate_lead is a standard GA4 conversion event
Unlike the others, generate_lead keeps its plain name (no _{…} suffix) so GA4 can treat it as a conversion. Mark it as a key event under Admin → Events if you want it counted as a conversion.
Question titles may contain a recall token
The question_title parameter (and the question_viewed_{question_title} event name) use the raw question title. If a question pipes in a previous answer, the title holds an unresolved recall token like {{slide:x1i0d83}}, and the token (not the answer) is what reaches GA4. The token is stable, it never changes per visitor or when you edit the quiz, so it's safe as a grouping key, but it isn't human-readable. The same applies if you read slide.attributes.title in a custom callback; strip it with slide.attributes.title.replace(/\{\{slide:\w+\}\}/g, '').trim().
If you're not seeing the events, make sure your GA4 gtag.js snippet loads before RevenueHunt's embed.js.
Once set up, you'll be able to see customer events in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Built-in events (no script required). Click Activate in your quiz's Connect → Google Analytics section, and the quiz automatically sends GA4-native events to whichever GA4 property your store's gtag.js is configured with. (No Measurement ID needed — just make sure your gtag.js snippet loads before RevenueHunt's embed.js.) Each event name is built from its main parameter, so the value shows up directly in GA4's Event name report. To use the other parameters (like question_title or question_ref) as report columns, register them as custom dimensions under Admin → Custom definitions:
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks the button on the first / welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks a choice or selects a dropdown option | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User answers the email question | email_lead_{quiz_name} | quiz_name |
| User answers the phone question | phone_lead_{quiz_name} | quiz_name |
| User reaches the results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks a product (view-product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart ("add to cart" / "add all to cart") | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart / checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes the quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Same events as the Built for Shopify version
This is the exact GA4 event catalog the 💎 Built for Shopify quiz sends (see the Shopify tab above). The older view / click / submit / recommendation events (with event_category / event_label) are no longer sent.
generate_lead is a standard GA4 conversion event
Unlike the others, generate_lead keeps its plain name (no _{…} suffix) so GA4 can treat it as a conversion. Mark it as a key event under Admin → Events if you want it counted as a conversion.
Question titles may contain a recall token
The question_title parameter (and the question_viewed_{question_title} event name) use the raw question title. If a question pipes in a previous answer, the title holds an unresolved recall token like {{slide:x1i0d83}}, and the token (not the answer) is what reaches GA4. The token is stable, it never changes per visitor or when you edit the quiz, so it's safe as a grouping key, but it isn't human-readable. The same applies if you read slide.attributes.title in a custom callback; strip it with slide.attributes.title.replace(/\{\{slide:\w+\}\}/g, '').trim().
If you're not seeing the events, make sure your GA4 gtag.js snippet loads before RevenueHunt's embed.js.
Once set up, you'll be able to see customer events in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Built-in events (no script required). Click Activate in your quiz's Connect → Google Analytics section, and the quiz automatically sends GA4-native events to whichever GA4 property your store's gtag.js is configured with. (No Measurement ID needed — just make sure your gtag.js snippet loads before RevenueHunt's embed.js.) Each event name is built from its main parameter, so the value shows up directly in GA4's Event name report. To use the other parameters (like question_title or question_ref) as report columns, register them as custom dimensions under Admin → Custom definitions:
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks the button on the first / welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks a choice or selects a dropdown option | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User answers the email question | email_lead_{quiz_name} | quiz_name |
| User answers the phone question | phone_lead_{quiz_name} | quiz_name |
| User reaches the results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks a product (view-product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart ("add to cart" / "add all to cart") | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart / checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes the quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Same events as the Built for Shopify version
This is the exact GA4 event catalog the 💎 Built for Shopify quiz sends (see the Shopify tab above). The older view / click / submit / recommendation events (with event_category / event_label) are no longer sent.
generate_lead is a standard GA4 conversion event
Unlike the others, generate_lead keeps its plain name (no _{…} suffix) so GA4 can treat it as a conversion. Mark it as a key event under Admin → Events if you want it counted as a conversion.
Question titles may contain a recall token
The question_title parameter (and the question_viewed_{question_title} event name) use the raw question title. If a question pipes in a previous answer, the title holds an unresolved recall token like {{slide:x1i0d83}}, and the token (not the answer) is what reaches GA4. The token is stable, it never changes per visitor or when you edit the quiz, so it's safe as a grouping key, but it isn't human-readable. The same applies if you read slide.attributes.title in a custom callback; strip it with slide.attributes.title.replace(/\{\{slide:\w+\}\}/g, '').trim().
If you're not seeing the events, make sure your GA4 gtag.js snippet loads before RevenueHunt's embed.js.
Once set up, you'll be able to see customer events in your Google Analytics dashboard, under Reports > View user engagement and retention > Events.

Built-in events (no script required). Click Activate in your quiz's Connect → Google Analytics section, and the quiz automatically sends GA4-native events to whichever GA4 property your store's gtag.js is configured with. (No Measurement ID needed — just make sure your gtag.js snippet loads before RevenueHunt's embed.js.) Each event name is built from its main parameter, so the value shows up directly in GA4's Event name report. To use the other parameters (like question_title or question_ref) as report columns, register them as custom dimensions under Admin → Custom definitions:
| Trigger | Event Name | Event Parameters |
|---|---|---|
| User starts a quiz (clicks the button on the first / welcome question) | quiz_started_{quiz_name} | quiz_name |
| User views a question | question_viewed_{question_title} | question_title |
| User clicks a choice or selects a dropdown option | block_answered_{choice_text} | choice_text, question_title, question_ref |
| User answers the email question | email_lead_{quiz_name} | quiz_name |
| User answers the phone question | phone_lead_{quiz_name} | quiz_name |
| User reaches the results page | results_page_viewed_{results_page_title} | results_page_title |
| User completes the quiz (conversion event) | generate_lead | quiz_name |
| Customer clicks a product (view-product button or image) | product_clicked_{product_name} | product_name |
| Customer adds a product to cart ("add to cart" / "add all to cart") | product_added_to_cart_{product_name} | product_name |
| Customer proceeds to cart / checkout | proceed_to_checkout_{quiz_name} | quiz_name |
| Customer retakes the quiz | quiz_retake_quiz_{quiz_name} | quiz_name |
Same events as the Built for Shopify version
This is the exact GA4 event catalog the 💎 Built for Shopify quiz sends (see the Shopify tab above). The older view / click / submit / recommendation events (with event_category / event_label) are no longer sent.
generate_lead is a standard GA4 conversion event
Unlike the others, generate_lead keeps its plain name (no _{…} suffix) so GA4 can treat it as a conversion. Mark it as a key event under Admin → Events if you want it counted as a conversion.
Question titles may contain a recall token
The question_title parameter (and the question_viewed_{question_title} event name) use the raw question title. If a question pipes in a previous answer, the title holds an unresolved recall token like {{slide:x1i0d83}}, and the token (not the answer) is what reaches GA4. The token is stable, it never changes per visitor or when you edit the quiz, so it's safe as a grouping key, but it isn't human-readable. The same applies if you read slide.attributes.title in a custom callback; strip it with slide.attributes.title.replace(/\{\{slide:\w+\}\}/g, '').trim().
If you're not seeing the events, make sure your GA4 gtag.js snippet loads before RevenueHunt's embed.js.
Track Quiz Revenue¶
GA4 doesn’t “automatically” tie custom events to purchases. But you can segment/filter by those events and then look at purchase revenue.
Here are some options:
Option 1 - Create Free Form Exploration¶
You can measure how much revenue your quiz generates directly in GA4 using an Exploration. This walkthrough shows how to build a Free form table comparing quiz users with all users.

- Go to
Explore → + → Free form. -
Create the “Quiz Users” segment. In the Variables panel, under Segments, click +. Choose User segment. Set the condition: Include users where
Event name→contains→quiz_started(or usematches regex→^quiz_started_.*$). Name itQuiz Users→Save and apply. Also add the defaultAll Userssegment for comparison. -
Add Dimensions and Metrics. In the Variables panel:
Dimensions→+→ add:Event nameMetrics→+→ add:Event count,Purchases,Total revenue
-
Configure the Tab Settings. In the Tab Settings panel:
-
Segments: selectAll UsersandQuiz Users -
Rows:Event name -
Columns: leave empty, or set toSegmentfor side-by-side comparison -
Values:Event count,Purchases,Total revenue -
Filters:Event name contains quiz_started -
Visualization:Table(or Bar chart) -
Date range: e.g.Last 28 days
You’ll now see a table showing revenue and purchases from quiz users (people who triggered a quiz_started event) compared to all users.
-
-
Save and Reuse. Rename your exploration (e.g.
Quiz Revenue). Use the star or share option so teammates can find it easily.Optional Variations
-
Compare specific quizzes: Use
Filters→Event namecontains your quiz ID/text
(e.g.,quiz_started_skincare_quiz_usa). -
If your quiz is on a dedicated page: Create a Session/User segment: include users where Page location contains
/pages/skin-quiz. This shows revenue for anyone visiting that quiz page.
-
Option 2 – Attribution via Source/Medium¶
If you’re tagging quiz entry points with UTM parameters (like utm_source=quiz or utm_campaign=quiz_name), GA4’s Advertising → Attribution → Model comparison will show revenue attributed to those.
You'll see revenue attributed to the quiz in Engagement > Conversions > Event name > purchase. Click on the purchase event.

Add a Source column next to the default channel grouping and look for the rows which include the revenuehunt source.

Depending on the custom events that you've programed in the first step, you may be able to see quiz revenue in your Google Analytics.
Refer to the Google Analytics documentation for more information on how to track revenue from custom events or expolre the GA4 Explorations.
Depending on the custom events that you've programed in the first step, you may be able to see quiz revenue in your Google Analytics.
Refer to the Google Analytics documentation for more information on how to track revenue from custom events or expolre the GA4 Explorations.
Depending on the custom events that you've programed in the first step, you may be able to see quiz revenue in your Google Analytics.
Refer to the Google Analytics documentation for more information on how to track revenue from custom events or expolre the GA4 Explorations.
Depending on the custom events that you've programed in the first step, you may be able to see quiz revenue in your Google Analytics.
Refer to the Google Analytics documentation for more information on how to track revenue from custom events or expolre the GA4 Explorations.
Depending on the custom events that you've programed in the first step, you may be able to see quiz revenue in your Google Analytics.
Refer to the Google Analytics documentation for more information on how to track revenue from custom events or expolre the GA4 Explorations.
Use GA4 Explorations¶
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
Example 1: Most Clicked Choices¶
You can build an exploration to see which choices are most popular.

- Go to
Explore → + → Free form. -
Add Dimensions and Metrics. In the Variables panel:
Dimensions→+→ add:Event nameMetrics→+→ add:Event count
-
Configure the Tab Settings. In the Tab Settings panel:
Segments: selectAll Users(or addQuiz Usersif you want to limit results to quiz participants)Rows:Event nameColumns: leave emptyValues:Event countFilters:Event name contains block_answeredVisualization:Table(or Bar chart)Date range: e.g.Last 28 days
You’ll now see a table showing which quiz answers (
block_answeredevents) were clicked most often, giving you a clear view of the most popular choices. -
Save and Reuse. Rename your exploration (e.g.
Most Clicked Choices). Use the star or share option so teammates can find it easily.
Example 2: Track Revenue from Quizzes¶
You can measure how much revenue your quiz generates directly in GA4 using an Exploration. This walkthrough shows how to build a Free form table comparing quiz users with all users.

- Go to
Explore → + → Free form. -
Create the “Quiz Users” segment. In the Variables panel, under Segments, click +. Choose User segment. Set the condition: Include users where
Event name→contains→quiz_started(or usematches regex→^quiz_started_.*$). Name itQuiz Users→Save and apply. Also add the defaultAll Userssegment for comparison. -
Add Dimensions and Metrics. In the Variables panel:
Dimensions→+→ add:Event nameMetrics→+→ add:Event count,Purchases,Total revenue
-
Configure the Tab Settings. In the Tab Settings panel:
-
Segments: selectAll UsersandQuiz Users -
Rows:Event name -
Columns: leave empty, or set toSegmentfor side-by-side comparison -
Values:Event count,Purchases,Total revenue -
Filters:Event name contains quiz_started -
Visualization:Table(or Bar chart) -
Date range: e.g.Last 28 days
You’ll now see a table showing revenue and purchases from quiz users (people who triggered a quiz_started event) compared to all users.
-
-
Save and Reuse. Rename your exploration (e.g.
Quiz Revenue). Use the star or share option so teammates can find it easily.Optional Variations
-
Compare specific quizzes: Use
Filters→Event namecontains your quiz ID/text
(e.g.,quiz_started_skincare_quiz_usa). -
If your quiz is on a dedicated page: Create a Session/User segment: include users where Page location contains
/pages/skin-quiz. This shows revenue for anyone visiting that quiz page.
-
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
Google Analytics 4 (GA4) offers Explorations, a powerful tool for digging deeper into your quiz data. Standard reports show you high-level trends, but Explorations let you ask more specific questions about how customers interact with your quiz and how it impacts revenue.
With Explorations, you can:
-
Compare quiz users vs. all users. See how much revenue is generated by customers who start a quiz compared to those who don’t.
-
Break down results by quiz. If you run multiple quizzes, use Explorations to see which quiz names bring in the most purchases and revenue.
-
Build funnels. Visualize the full journey from quiz_started → results_page_viewed → product_added_to_cart → purchase, and spot where users drop off.
-
Analyze user paths. Discover what customers do after completing your quiz—do they view recommended products, add to cart, or head straight to checkout?
-
Create segments and audiences. Build an audience of “Quiz Users” for ongoing analysis or remarketing in Google Ads.
Refer to the Google Analytics documentation for more information on how to use GA4 Explorations.
This article explains how to connect the quiz to Google Analytics and track quiz performance in GA4.