Home Tracking
πŸͺ

Tracking

Collect data to improve conversions and responses.
Yago Ferreira
By Yago Ferreira
β€’ 7 articles

How to Add UTM Parameters Dynamically in Meta Ads

This support article teaches how to set up native UTM tracking in Yay! Forms, making it possible to identify which campaign, ad set, or ad generated each form response. If you want, we have a video tutorial explaining step by step how to do this configuration: Watch video 1 - Enabling UTMs in Yay! Forms First, you must access the form sharing area and enable the "UTM Parameters" option, as shown below: Next, copy the form link, as shown below: 2 - Configuring UTMs in the Meta Ad First, access Meta Ads Manager and open the ad editor. In the destination link field, paste the Yay! Forms form link (without UTMs), as shown below: Right after that, click the Parameter Builder option to add the UTMs. Configure the parameters using dynamic variables suggested by Facebook, as shown in the example below: 3 - Viewing UTMs in Responses - Go to the Results menu of your form in Yay! Forms. - The columns corresponding to the UTM parameters (utm_source, utm_medium, etc.) will be displayed automatically. - The values will be filled dynamically based on the information received from the Meta ad. 4 - Best Practices - Do not use fixed UTMs directly in the link copied from Yay! Forms. - Always use Meta's parameter builder for automation. - Create a reference spreadsheet to identify campaigns based on IDs. - Verify that the final link is correct and working before publishing the ad. Conclusion This setup ensures that each response received in Yay! Forms is correctly associated with the ad source, enabling a complete analysis of your campaign performance.

Last updated on Dec 20, 2025

How to Track Yay! Forms Events with Google Tag Manager on Embedded Forms

This tutorial will help you capture events triggered by a Yay! Forms embedded (β€œembedded”) form on your website using Google Tag Manager (GTM). You’ll learn how to listen for form events from the Yay! Forms iframe, push those events into the GTM dataLayer, and then use variables and triggers to send the captured data to tools like Google Analytics 4 (GA4) and Meta Pixel. Tracking Yay! Forms embedded forms with GTM Use embedded (β€œembedded”) Yay! Forms forms for audience engagement and lead generation. You can easily track form views, starts, answers, and submissions as conversions and interactions using Google Tag Manager (GTM) and this Yay! Forms event listener code. Example GTM Data Layer object Example Data Layer object for GTM Here is an example of an object sent to the GTM dataLayer when a question is answered: { "event": "YFAnswer", "gtm": { "uniqueEventId": 1026, "start": 1718243777463 }, "data": { "responseId": "666a4f5ad3d586edd79fee54", "fieldId": "661071840811e305370cadb7", "fieldTitle": "<p>Name</p>", "content": "Rafael", "variables": {score: 6}, "hiddenFields": {src: "lp01"}, "tracking": { utm_source: "facebook", utm_medium: "cpc", utm_campaign: "summer_sale", utm_content: "beachwear", utm_term: "ad1" }, "questionList": [ { "fieldId": "661071840811e305370cadb7", "fieldTitle": "<p>Name</p>", "content": "Rafael" }, { "fieldId": "661071860811e305370cadb8", "fieldTitle": "<p>Email</p>", "content": "[email protected]" }, { "fieldId": "661071860811e305370cadb9", "fieldTitle": "<p>Phone</p>", "content": "+5511988888888" } ] } } Step-by-step guide Step 1: Create a Custom HTML Tag in GTM Start by creating a custom HTML tag in GTM where you can conveniently paste the listener code. This tag will listen for events from the Yay! Forms iframe and send them to the dataLayer on the main page. Step 2: Implement the Event Listener Code Paste the following event listener code into the custom HTML tag you created: <script> var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; eventer(messageEvent, function(e) { var key = e.message ? "message" : "data"; var data = e[key]; var validEventTypes = ["YFView", "YFStart", "YFAnswer", "YFSubmit"]; if (validEventTypes.includes(data.type)) { window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': data.type, 'data': data.eventData }); } }, false); </script> This code listens for messages from the Yay! Forms iframe and sends relevant events to the dataLayer. Step 3: Configure Data Layer Variables To capture form details such as response ID, field ID, field title, content, and question list, you need to configure dataLayer variables in GTM. 1. Go to Variables in GTM: In your GTM workspace, navigate to the "Variables" section. 2. Click New: Click the "New" button to create a new variable. 3. Choose the Data Layer Variable Type: Select "Data Layer Variable" as the variable type. 4. Configure Each Variable: Create the following variables with their respective Data Layer Variable Names: Variable name | Data Layer Variable Name | ---- | ---- | responseId | data.responseId | fieldId | data.fieldId | fieldTitle | data.fieldTitle | content | data.content | questionList | data.questionList | Step 4: Configure Custom Variables Using Custom JavaScript To capture specific user data, such as name, email, and phone, use custom JavaScript variables that iterate over the questionList array to find the correct values. Example custom JavaScript code: function() { var questionList = {{questionList}}; var filtered = questionList.filter(function(question) { return question.fieldId === '**field_id**'; }); return filtered.length > 0 ? filtered[0].content : ''; } ☝️ You can find a question ID on the form edit screen by opening the field settings. Simply select the desired field and locate the ID in the settings section, as shown in the image below. ID da questΓ£o Detailed configuration in GTM Detailed Configuration in GTM 1. Create a Data Layer Variable for questionList: - Variable Name: questionList - Data Layer Variable Name: data.questionList 2. Go to Variables in GTM: In your GTM workspace, navigate to the "Variables" section. 3. Click New: Click the "New" button to create a new variable. 4. Choose the Variable Type: Select "Custom JavaScript". 5. Configure the Custom JavaScript Variable for Each Field. See the examples below: Variable name: - Variable Name: name - Variable Type: Custom JavaScript - Variable Code: function() { var questionList = {{questionList}}; var filtered = questionList.filter(function(question) { return question.fieldId === '661071860811e305370cadb7'; }); return filtered.length > 0 ? filtered[0].content : ''; } Variable email: - Variable Name: email - Variable Type: Custom JavaScript - Variable Code: function() { var questionList = {{questionList}}; var filtered = questionList.filter(function(question) { return question.fieldId === '661071860811e305370cadb8'; }); return filtered.length > 0 ? filtered[0].content : ''; } Variable phone: - Variable Name: phone - Variable Type: Custom JavaScript - Variable Code: function() { var questionList = {{questionList}}; var filtered = questionList.filter(function(question) { return question.fieldId === '661071860811e305370cadb9'; }); return filtered.length > 0 ? filtered[0].content : ''; } ☝️ Make sure to use the corresponding Field ID in the JavaScript code. Step 5: Create Custom Event Triggers To enable your marketing tags/pixels to fire, you need to create custom event triggers using the event names: - YFView: For when the form is viewed. - YFStart: For when the form is started. - YFAnswer: For when a question is answered. - YFSubmit: For successful form submissions. 1. Go to Triggers in GTM: In your GTM workspace, navigate to the "Triggers" section. 2. Click New: Click the "New" button to create a new trigger. 3. Choose the Trigger Type: Select "Custom Event" as the trigger type. 4. Configure Each Trigger: Create the following triggers with their respective event names: Trigger Name | Event Name | ---- | ---- | YFStart | YFStart | YFView | YFView | YFAnswer | YFAnswer | YFSubmit | YFSubmit | Step 6: Include Triggers and Parameters in Your Event Tags You can now include triggers and parameters in your event tags for Google Analytics 4 (GA4) and Meta Pixel. Example for Google Analytics 4 (GA4) Create a new tag: Choose "Tag Configuration" > "Google Analytics: GA4 Event". Configure event parameters: Event Name: {{event}} Event Parameters: - response_id: {{responseId}} - name: {{name}} - email: {{email}} - phone: {{phone}} Add a trigger: Select the custom event triggers you created for YFView, YFStart, YFAnswer, and YFSubmit. Example for Meta Pixel 1. Create a new tag: Choose "Tag Configuration" > "Custom HTML". 2. Paste the Meta Pixel event code: <script> fbq('trackCustom', '{{event}}', { response_id: '{{responseId}}', name: '{{name}}', email: '{{email}}', phone: '{{phone}}' }); </script> 3. Add a trigger: Select the custom event triggers you created for YFView, YFStart, YFAnswer, and YFSubmit. We recommend using the YFAnswer event since the user may not always complete the form. ☝️ Make sure the questionList variable is configured correctly to access the full array in the dataLayer. Conclusion This guide explained how to listen for Yay! Forms embedded-form events, push them into the GTM dataLayer, and then use GTM variables, custom events, and triggers to send consistent event names and form data into your analytics and marketing tags.

Last updated on Dec 20, 2025

How to Inherit URL Parameters in Your Embedded Form

This tutorial will show you how to inherit parameters directly from the URL into your form, so that values like UTMs and other fields can be captured automatically when someone visits your page with query parameters. Capturing URL parameters in your form 1. Add the desired parameters to your form. First, you need to add the parameters you want to capture from the URL to your form. For example, we will use parameters such as utm_source, utm_medium, utm_campaign, utm_content, utm_term, email, name, etc. ☝️ Don’t forget to enable UTM tracking and add the hidden fields (such as name and email in the previous example) before passing the parameters in the URL. 2. Choose how to embed the form on your site. There are several ways to embed a form on your site, such as direct embed, pop-up, modal, etc. In this example, we will use the pop-up option. 3. Copy the provided code. After choosing the embed option (pop-up), you will receive some code. This code will be responsible for displaying the form on your site. 4. Replace the parameters in the code In the provided code, you will find a section where the parameters are specified. Typically, this is done using attributes such as data-yf-hidden or data-yf-tracking. Replace these attributes with the following: data-yf-transitive-search-params="your parameters". Make sure to replace the parameters as needed to reflect the ones you want to capture, and apply it in your site’s code as shown in the example below using Elementor: 5. Add the parameters to your site URL. Now, when you embed the form on your site and someone accesses it with parameters in the URL, those parameters will be automatically inherited by the form. For example, if your site URL is www.yoursite.com/form?utm_source=google&utm_medium=cpc&utm_campaign=product, those parameters will be automatically captured by the form, as shown in an example below: Conclusion You learned how to configure a form to automatically inherit URL parameters by adding the right fields, embedding the form, adjusting the embed code to capture transitive search parameters, and validating the behavior by visiting a URL containing those parameters.

Last updated on Dec 20, 2025

How to Fix Meta Pixel Events Not Appearing in Facebook Events Manager

Introduction In this article, you will learn how to resolve one of the most common issues when integrating Yay! Forms with Meta Ads: your form submissions are being tracked successfully (the YFSubmit event shows a "success" status in Yay! Forms logs), but the Lead event simply does not appear in Facebook Events Manager β€” which means your ad campaigns optimized for Lead conversions are not receiving any data. The good news is that this is usually not a technical problem with your pixel installation. In most cases, Meta is automatically blocking your custom events because they haven't been reviewed and approved yet. This article will walk you through the exact steps to unblock these events and get your Lead tracking working properly. Why This Happens When a new custom event is sent to Meta for the first time (such as YFSubmit, YFStart, YFView, or YFAnswer), Meta does not activate it automatically. Instead, it places the event in a "Blocked by Meta" status until the pixel owner manually reviews and confirms each event. This is a security and compliance measure by Meta to ensure that advertisers are aware of and consent to the data being collected through their pixel. Until you approve the events, they will not appear in your event activity, and they cannot be used for ad optimization, custom audiences, or conversion tracking. Step-by-Step Guide Step 1 β€” Open Facebook Events Manager Go to the Events Manager by navigating to the following URL in your browser: https://eventsmanager.facebook.com Once there, select the Pixel / Data Source that is connected to your Yay! Forms integration. You can identify it by the name you assigned when creating the pixel, or by checking the Pixel ID configured in your Yay! Forms settings. Step 2 β€” Navigate to the Settings Tab With your pixel selected, click on the "Settings" tab in the top navigation bar of your data source panel. Scroll down the settings page until you find the section called "Manage Event Blocking". Step 3 β€” Click "Review" (Analisar) Click the "Review" button next to the Manage Event Blocking section. A confirmation pop-up will appear explaining Meta's Business Tools data sharing terms. This pop-up informs you that you should not share data containing sensitive information (financial, health, consumer reports, etc.) and that by confirming, you agree to only send events that comply with Meta's terms. Read the terms and click "I Confirm" ("Eu confirmo") to proceed. Step 4 β€” Review the Event Status List After confirming, you will see a list of all custom events associated with your pixel and their current statuses. These events will show as "Inactive" and "Blocked by Meta" with the source listed as "Site." Step 5 β€” Confirm Each Event For each event you want to activate (especially YFSubmit, which is your Lead event): 1. Click on the event name to open its detail panel. 2. In the detail panel, you will see two options: - "Confirm the custom event" β€” This allows the event to be used with your ad resources (campaigns, custom audiences, conversion tracking). - "Block the custom event" β€” This permanently blocks the event from being used. 3. Select "Confirm the custom event". 4. Click the "Confirm" button at the bottom of the panel. 5. Repeat this process for every event you wish to approve. Step 6 β€” Verify Events Are Active After confirming all desired events, return to the Events Manager overview (main tab). You should now see: - The events listed as "Active" instead of "Blocked by Meta." - Event activity starting to appear in the graph as new form submissions come in. To validate everything is working, submit a test form and check if the event appears in the event activity graph within a few minutes. Important Notes - Processing delay: After approving events, it may take up to 20 minutes for them to start appearing in Events Manager. Don't panic if they don't show up immediately. - Event quality: Once active, monitor the Event Quality Score in Events Manager. A higher score means better data matching and more effective ad optimization. - No campaign changes needed: If your campaigns were already set to optimize for the Lead event, they will automatically start receiving conversion data once the event is unblocked. - Future events: Any new custom events sent by Yay! Forms in the future will also need to be approved through this same process. Still Not Working? Additional Troubleshooting If the events are confirmed but still not appearing after 30 minutes, check the following: 1. Verify your Pixel ID β€” Make sure the Pixel ID configured in your Yay! Forms settings matches the one shown in Events Manager. 2. Use Meta Pixel Helper β€” Install the Meta Pixel Helper browser extension (available for Chrome) and visit your form page. The extension will show you in real-time which events are firing and if there are any errors. 3. Test Events tab β€” In Events Manager, go to the "Test Events" tab, enter your form URL, and open it in a new browser tab. Any events triggered will appear in real-time, allowing you to debug the integration. 4. Contact support β€” If the issue persists after all these checks, reach out to Yay! Forms support with your Pixel ID and form URL for further assistance. Conclusion In this article, you learned how to diagnose and fix the most common reason why Meta Pixel Lead events do not appear in Facebook Events Manager when using Yay! Forms. Let's recap what was covered: 1. The root cause: Meta automatically blocks new custom events until they are manually reviewed and confirmed by the pixel owner. 2. How to access the settings: Navigate to Events Manager, select your pixel, and go to the Settings tab. 3. How to unblock events: Use the "Manage Event Blocking" section to review, and then individually confirm each Yay! Forms event (YFSubmit, YFStart, YFView, YFAnswer). 4. How to verify: After confirmation, check that events appear as "Active" and test with a form submission. 5. Additional debugging: Use Meta Pixel Helper and the Test Events tab if issues persist. Once your events are confirmed, your ad campaigns will start receiving Lead conversion data automatically, and you can fully leverage Meta's optimization algorithms to improve your campaign performance.

Last updated on Mar 13, 2026

How to Configure Traffic Permissions for Your Meta Pixel to Allow Events from Yay! Forms

Introduction In this article, you will learn how to configure Traffic Permissions in Facebook Events Manager to ensure your Meta Pixel correctly receives events from your Yay! Forms domain. Traffic Permissions control which websites are allowed to send event data to your pixel β€” if your domain is not on the allow list, Facebook will silently block all events, even if your pixel is properly installed and firing. This is a common cause of "missing events" that is easy to overlook: your pixel installation is correct, your events are confirmed and unblocked, but Facebook still isn't receiving data because the domain sending the events hasn't been granted permission. This guide will walk you through setting up an Allow List or Block List so your Yay! Forms events flow through without issues. Why This Matters Facebook's Traffic Permissions feature lets you control exactly which domains can send event data to your pixel dataset. There are two modes: - Allow List: Only domains explicitly added to the list can send events. All other domains are blocked β€” even if they have your pixel code installed. - Block List: Only domains added to the list are blocked. All other domains are allowed to send events. If you (or someone on your team) have created an Allow List but forgot to include your Yay! Forms domain, all form submission events (YFSubmit, YFStart, YFView, YFAnswer) will be silently rejected by Facebook. No error will appear in your Yay! Forms logs β€” the pixel fires successfully on your end, but Facebook discards the data on their side. Step-by-Step Guide Step 1 β€” Open Facebook Events Manager Settings Navigate to the Events Manager in your browser: https://eventsmanager.facebook.com Select the Pixel / Data Source connected to your Yay! Forms integration, then click on the "Settings" tab in the top navigation bar. Step 2 β€” Locate Traffic Permissions Scroll down the Settings page until you find the "Traffic Permissions – Websites" section. This section allows you to set permissions to allow or block events Facebook receives from a website. You will see two options: Mode How It Works Allow List Only domains on this list can send events. Everything else is blocked. Block List Only domains on this list are blocked. Everything else is allowed. Step 3 β€” Choose Your Permission Mode Click the "Create allow list" dropdown button. You have two choices: - Create allow list β€” Use this if you want to explicitly control which domains can send events. Only listed domains will work; all others will be blocked. - Create block list β€” Use this if you want to allow all domains by default and only block specific ones. Recommended for most Yay! Forms users: If you only want events from your own domains, choose Allow List and add each domain you use. If you're unsure, choose Block List and leave it empty β€” this allows all domains to send events. Step 4 β€” Add Your Yay! Forms Domain After selecting your permission mode (Allow List is most common), the "Manage traffic permissions" dialog will appear. In the "Enter a domain" field, type your Yay! Forms domain. Depending on your setup, this could be: Domain Type Example Default Yay! Forms domain yayforms.link Custom domain forms.yourcompany.com Client subdomain yourname.yayforms.link Type the domain and click "Next" to add it to the list. Step 5 β€” Add Additional Domains (If Needed) If your forms are embedded on multiple websites or you use both a custom domain and the default Yay! Forms domain, repeat the process to add each one. Common domains to include: - Your main Yay! Forms domain (e.g., yayforms.link) - Your custom domain (e.g., forms.yourcompany.com) - Any website where your forms are embedded (e.g., yourcompany.com) Each domain must be added individually. After adding all domains, you should see them listed in the "Top domain traffic" table with their permissions status. Step 6 β€” Save and Verify Click "Close" to save your traffic permissions configuration. Then verify that events are flowing correctly: 1. Go back to the Overview tab in Events Manager. 2. Submit a test form on your Yay! Forms page. 3. Check the "Test Events" tab or wait a few minutes for the event to appear in the activity graph. If events were previously being blocked due to traffic permissions, they should now start appearing within minutes. Important Notes - Allow List is strict: If you create an Allow List, only the exact domains listed will be able to send events. If you forget a domain, its events will be silently dropped with no error message. - Subdomains matter: yayforms.link and app.yayforms.link may be treated as different domains. Add both if needed. - Changes take effect quickly: Unlike event blocking, traffic permission changes typically take effect within a few minutes. - No retroactive data: Events that were blocked before you configured permissions are lost. Only future events will be captured. - Embedded forms: If your Yay! Forms are embedded via iframe on another website, add both the Yay! Forms domain and the parent website domain to be safe. Common Scenarios Scenario A β€” "I use only the default Yay! Forms link" Add yayforms.link to your Allow List. That's all you need. Scenario B β€” "I use a custom domain for my forms" Add your custom domain (e.g., forms.yourcompany.com) to the Allow List. If you also use the default Yay! Forms link, add yayforms.link too. Scenario C β€” "I embed forms on my website" Add both your website domain (e.g., yourcompany.com) and the Yay! Forms domain (yayforms.link or your custom domain) to the Allow List. Scenario D β€” "I don't want to manage domains at all" Choose Block List and leave it empty. This allows all domains to send events to your pixel, which is the default behavior. Still Not Working? Additional Troubleshooting If you've configured traffic permissions correctly but events still aren't appearing: 1. Check event blocking β€” Events may also be blocked by Meta's event review system. See our guide on [How to Fix Meta Pixel Lead Events Not Appearing in Facebook Events Manager] for instructions on unblocking custom events. 2. Verify your Pixel ID β€” Make sure the Pixel ID in your Yay! Forms settings matches the one in Events Manager. 3. Use Meta Pixel Helper β€” Install the browser extension to confirm events are firing on your form page. 4. Check the Test Events tab β€” Use real-time event testing in Events Manager to debug the integration. 5. Contact support β€” If the issue persists, reach out to Yay! Forms support with your Pixel ID and domain for further assistance. Conclusion In this article, you learned how to configure Meta Pixel Traffic Permissions to ensure your Yay! Forms events are received by Facebook Events Manager. Let's recap what was covered: 1. What Traffic Permissions do: They control which domains are allowed to send event data to your pixel, using either an Allow List or a Block List. 2. Why events may be missing: If an Allow List is active and your Yay! Forms domain isn't included, all events are silently blocked by Facebook. 3. How to configure permissions: Navigate to Events Manager Settings, find the Traffic Permissions section, and add your Yay! Forms domain to the Allow List. 4. Which domains to add: Include your default Yay! Forms domain, any custom domains, and any websites where forms are embedded. 5. How to verify: Submit a test form and check the Events Manager for incoming event data. Once your domain is properly listed in the traffic permissions, your pixel will receive all form events as expected, and your ad campaigns will have the conversion data they need to optimize effectively.

Last updated on Feb 26, 2026