Before getting started, be sure to activate our Inbox Widget as well as the Google Tag Manager (GTM) integration here (also be sure to add your container ID).
Tracking events in Google Analytics and Google Tag Manager
Make sure you have your Google Analytics 4 property set up and configured correctly. If you need assistance with this, refer to the official GA4 Setup Guide.
Step 1: Import and setup the GTM Container
To simplify the setup, we’ve prepared a pre-configured GTM container that you can import directly into your GTM account.
How to Import the Container:
Download the Container File:
Download the Proposales Tracking Container and have it ready for the next step.
Go to Google Tag Manager:
Log in to your GTM account and select the workspace where you want to set up Proposales tracking.
Import the Container:
Update the Measurement ID:
That's it! 🥳 You are ready to receive events.
Configure requestID
as userID
(Optional)
If you wish to track unique users across sessions, you can set requestID
as a userID
in GA4:
Go to GA4 Admin and under Data Streams, select your web stream.
Click on Configure Tag Settings > Configure Your Domains and ensure that the cookie settings allow tracking across subdomains if your Proposales widget is embedded in multiple places.
Edit the GA4 Configuration Tag in GTM and add a Field to Set:
Field Name:
user_id
Value:
{{Proposales - Request ID}}
This will tie the requestID to the user_id field, enabling better cross-session tracking.
Step 2: Verify Your Setup
Preview Mode in GTM:
Click the Preview-button in GTM and enter https://secure.proposales.com/inbox/ as the URL.
Create a Proposal from a request (tip: create a test-request before this step)
Verify that events are captured in the Preview mode and are pushing the appropriate data to the dataLayer.
Understanding the Variables
The container includes several user-defined variables that extract specific data from the events. Here’s a breakdown of what each variable captures:
Variable Name | Description |
| The company identifier to track which company the proposal is associated with. |
| The unique ID assigned to the Request for Proposal (RFP). |
| A UUID specific to each proposal created within Proposales. |
| The total transaction value (including tax) for proposals. |
| The amount of tax included in the proposal value. |
| The currency used in the transaction (e.g., "SEK," "USD"). |
| Used to group events under the "Proposales" category for easier tracking and analysis. |
| Describes the action of the event, such as "Proposal Accepted," "Proposal Viewed," etc. |
| Captures transaction_id, value, tax and currency |
UTMs |
|
| Captures UTM param from RFP (optional) |
| Captures UTM param from RFP (optional) |
| Captures UTM param from RFP (optional) |
| Captures UTM param from RFP (optional) |
| Captures UTM param from RFP (optional) |
GAD/FB |
|
| Captures Facebook click id from RFP (optional) |
| Captures Google Adwords common custom param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Gad extra param from RFP (optional) |
| Captures Google click id from RFP (optional) |
Example of an Event
Here’s an example of a dataLayer push for a proposal accepted event. This is what the event will send:
{
event: "proposales_proposal_accepted",
eventCategory: "Proposales",
eventAction: "Proposal Accepted",
requestID: 69750,
proposalID: "103a6ee4-3c5a-4ead-9259-6320dbf229cd",
companyID: 44213434334,
ecommerce: {
transaction_id: "103a6ee4-3c5a-4ead-9259-6320dbf229cd",
value: 500.5,
tax: 81.53,
currency: "SEK"
}
utm_source: "Source", // All UTM params are retrieved from Proposal data
utm_medium: "Medium",
utm_campaign: "Campaign"
utm_content: "Content",
utm_term: "Term",
}
FAQs & Troubleshooting
Q: Why aren’t events showing up in GA4?
Ensure your GTM tags are set up correctly, and use Preview Mode to confirm that the tags fire without errors.
Double-check that your GA4 Measurement ID is correctly set in the GA4 Configuration Tag.
Q: Do I need to update my cookie policy or consent management?
Yes, if you are adding new tracking variables or events to your website via Proposales’ integration with Google Tag Manager or Google Analytics, it’s important to review and update your cookie policy and consent management system. For compliance, consult local regulations (e.g., GDPR, CCPA) or seek legal advice to ensure your policies align with the latest requirements.
Final Notes
By following this guide, you can easily set up event tracking for Proposales in Google Analytics using Google Tag Manager. The pre-configured container simplifies the process, but feel free to customize further as needed for your specific setup.