More and more businesses are now focused on precise and effective tracking in their digital marketing strategies. The ability to accurately assess the performance of campaigns is crucial for maximizing return on ad spend (ROAS). But another important metric is Profit Over Ad Spend, which offers a more holistic view of a campaign's effectiveness.
While ROAS focuses primarily on the revenue generated per dollar spent on advertising, it doesn't account for the cost of goods sold or other expenses related to the product or service being advertised. This is where Profit Over Ad Spend steps in, providing a more comprehensive perspective.
Profit Over Ad Spend takes into account the actual profit generated after subtracting these additional costs. By considering not just the revenue, but the profit, Profit Over Ad Spend offers a deeper insight into the true financial return of advertising campaigns.
In practice, this means that a campaign with a high ROAS might not necessarily be as profitable as it appears if the associated costs are high. Many businesses want to hide the real numbers from the competitors, or they just want to keep this sensitive data away from others.
So in this blog post we will describe how to set up Profit Over Ad Spend based tracking for Google Ads and Google Analytics and how to use server Google Tag Manager with Firestore, to pull in sensitive profit data (or other sensitive data) and report it to the Google Ads products in place of revenue as the conversion value. This enables profit bidding, with real time conversion uploads, in a way that protects the sensitive profit data from a determined user.
1. Set up your GA4 configuration to actively send events to the server container.
2. Set each Firestore document ID to the product ID, this way it's easy to fetch the right document by a single lookup.
Create a product collection. For each product, add a corresponding document to this collection. Ensure that each document includes a field specifying the profit value.
When configuring the variable in server GTM, specify the Firestore collection name and the document field.
3. Download gPS Soteria on GitHub -> Open templates sections in the server Google Tag Manager container -> Click New.
4. Click three dots in the top right corner -> Click Import -> Select the template you’ve recently downloaded from GitHub -> Click save.
Go to the permission tab and set the permissions for Firestore, ensuring you update the project ID.
5. In the HTML data layer, there’s a revenue value. This value is then exchanged for the profit value within the server-side container. The profit value is retrieved from Firestore using a custom profit variable template that you just set up:
6. Attach a Google Cloud service account to the deployment.
We have a detailed article on how to connect Google Service Account to stape. Don’t forget to grant access for the Firestore Project.
7. Go to variables -> new user defined variable and create a “profit” variable from the profit variable template.
8. Go to tags and click on new.
Select an GA4 tag. In the “Parameters to add / edit” replace value with the profit variable.
Select a Google Ads Conversion Tracking tag. In the configuration add the profit variable to the 'Conversion Value' field.
9. The trigger should be a custom event for purchase events.
10. Save and deploy the code.
gPS Phoebe allows obtaining real-time predictions from a Vertex AI model. These predicted values can then be employed as confidential conversion values for value-based bidding strategies.
1. Download gPS Phoebe on GitHub -> Open templates sections in the server Google Tag Manager container -> Click New.
2. Click three dots in the top right corner -> Click Import -> Select the template you’ve recently downloaded from GitHub -> Click save.
3. Now in the Variables section click on New and add Vertex AI Prediction.
Complete the configuration by filling in the details of your environment. In addition to the mandatory fields, it's necessary to include the request data that is to be dispatched to the Vertex AI endpoint. The nature of this data is contingent on the specific requirements of your AI Model.
4. Navigate to the appropriate Tag associated with the purchase or conversion event. Here, replace the conversion value (or a similar field) with the variable you have newly created, which contains the predicted value from Vertex AI.For example:
You add to the Data Layer a real Profit and Margin, but these numbers are hidden by some secret formula that only knows your backend and you.
profitinDL = 4861
real profit = (4861-100)/69
Basically you send 4861 from web to server GTM. Then, in your server container, you can add a custom variable that does: (4861-100)/69 - and add this field using transformation.
Please notice that the backend always knows the correct profit, so it can write the correct profit to Data Layer. You need to have only one formula for hiding real profit.
This formula is used only for hiding data and not for actual profit calculation from price.
So, this formula is always static. You can use it for all numbers you want to secretly pass to the sGTM from Data Layer.
Example
real profit = 69
on backend = 69*90+100 = 6310, and put in Data Layer 6310
on sGTM = (6310-100)/90 = 69 which is real profit that we send to gAds.
Profit Over Ad Spend provides a more realistic view of the financial impact of advertising campaigns, accounting for underlying costs. We hope that with this article you will manage to keep sensitive data protected while still benefiting from Google's advanced ad targeting and optimization capabilities. With real-time conversion uploads and profit bidding, you are now empowered to maximize return on investment, fine-tune your marketing strategies, and gain a competitive edge.
Remember, successful implementation requires a careful setup. Once in place, this Profit Over Ad Spend-based tracking system offers a more transparent, effective, and secure way of measuring and enhancing the profitability of online advertising efforts.
Don't worry, we've got you covered! Click on Get help and we will send you a free quote.