Adobe Marketo Measure, AMM for short, unifies behavioral and ad data with sales outcomes and machine learning so you can make the right marketing decisions.
AMM defines a touchpoint as: Touchpoints refer to the interactions a prospect/lead has with your online or offline marketing efforts.
They capture a multitude of information about the interaction such as utm parameters, date/time of the interaction, and type of interaction (form submission, campaign response, etc.).
In Salesforce, the abbreviations for the various touchpoints are as follows (see more in the diagrams below to see how these work in the different models):
To note: by default, Adobe Marketo Measure would also create a touchpoint for pageviews (only if it’s the anonymous first touch or the last thing before a milestone stage change, like Opportunity Created for example). This has been discussed in this issue, where it was shown that web visit TPs (not generally connected with a marketing activity) skew the data considerably.
Here is AMM's breakdown of how Touchpoints are generated and mapped:
The touchpoint generation process answers the question, “How is AMM going to know that this occurred?” Depending on your feature set and the types of interactions your prospective customers can have, there are up to three ways AMM can pick up on an interaction and create a touchpoint to represent it.
Type of Interaction | Example | Touchpoint Generation Method |
---|---|---|
Online, on your site(s) | Form fill | AMM JavaScript |
Offline; Online not on your site(s) | Tradeshows; BrightTalk Webcasts (for Attended status TPs); Content syndication partner delivers a list of leads who engaged with your content; | CRM Campaign membership by adjusting the Enable Bizible Touchpoint setting directly on the campaign or by setting up campaign sync rules in the admin area in AMM. For the Brighttalk Webcasts it's done by the Marketo Programs Integration, through Marketo Program Rules |
Sales activity | Outbound call by SDR | CRM Activity (Task or Event) record synced to AMM, through logic on the Activities page in AMM |
The touchpoint mapping process answers the question, “Once this touchpoint’s been created, how is AMM going to know what channel and subchannel it belongs to?” Each method of touchpoint generation has its own method of touchpoint mapping.
Type of Interaction | Generation Method | Mapping Method | |
---|---|---|---|
Online, on your site(s) | AMM JavaScript | Through the Online Channels page in AMM, by referencing UTM values, landing page, and referring page information | |
Offline; Online, not on your site(s) | CRM Campaign membership sync or through the Marketo Programs Integration, through Marketo Program Rules | Through the Offline Channels page in AMM, by referencing Campaign Type or the Marketo Program Channel Mapping | |
Sales activity | CRM Activity sync | Through the Online Channels page in AMM, by referencing the Campaign Name assigned on the Activities page |
There are two types of AMM Touchpoints as explained below.
Buyer Touchpoint (BT) | Buyer Attribution Touchpoint (BAT) |
---|---|
Relates to the Lead, Contact, and Case Objects | Relates to the Contact, Account, and Opportunity Objects |
Does not relate to the Opportunity Object | Does not relate to the Lead Object |
Revenue is not associated to a Buyer Touchpoint | Since a Buyer Attribution Touchpoint is associated to an Opportunity, all BATs have revenue associated to them |
AMM looks at two key fields on a Task/Event to determine if a BT/BAT should be created for it, Disposition
and Type
.
Type
will become what system/activity category (IQM for example) created the touchpoint.
Disposition
is used by AMM to determine when a touchpoint should be created.
In an ideal scenario, all systems will use one of two options for the Disposition
. Either meaningful engagement/move to SAO
or meaningful engagement
to tell AMM when to create a touchpoint. This will reduce the manual effort on the backend and simplify both reporting and system administration.
meaningful engagement/move to SAO
will be used when there was a quality engagement with the prospect and this lead to the creation of a SAO whereas meaningful engagement
will be used when there was a quality engagement that did not lead directly to a SAO (such as a meeting that was useful, but didn't indicate the prospect was ready for a sales accepted opportunity).
Example: Initial Qualifying Meetings (IQMs)
When an IQM is had, the Type
is set to IQM
and the disposition currently is set to Quality Meeting
to indicate that the meeting/IQM should be counted as a touchpoint and was useful to the sales/marketing process.
Ideally, Quality Meeting
would be changed to the more generic, menaingful engagement
, so that we have parity between the tools and can use a tool-agnostic approach to touchpoint generation.
Online channels are any channels that would be directly associated with your website or any integrated site – any display advertising, paid search, paid social, organic search, organic social, email, chatbots, etc.
Buyer touchpoints are automatically created when a form is submitted on one of the GitLab.com domains for these online channels, therefore we do not need to create SFDC campaigns to track these.
Offline channels are associated with initiatives like direct mail, trade shows or hospitality events, marketing or sales research, and pretty much any other channel where a person’s engagement cannot be tracked digitally or where they physically attend. A quick rule of thumb: if there is a list uploaded and the person took an action, they are offline buyer touchpoints.
Offline buyer touchpoints are created either by:
Enable Bizible Touchpoints
field on the Salesforce Campaign object to either Include only "Responded" Campaign Members
or Include All Campaign Members
At Gitlab, as of Jan 2023, we are creating these offline touchpoints through the campaign sync rule approach, as this results in increased automation when it comes to the offline touchpoint creation and less manual setup needed.
The current campaign sync rules in place can be found in this spreadsheet and are based mostly on values found in field like Campaign Type
, Campaign Member Status
, Campaign Name
, Campaign Member Created Date
. As long as the SFDC campaign is created correctly, has the correct naming and campaign type, the AMM touchpoints will be created automatically.
Marketing attribution is the process of assigning revenue credit to a marketing touchpoint. This is done by tracking a prospect’s entire customer journey, starting from their very first interaction with your company to when the deal closes. The revenue generated from the deal gets attributed back to the marketing touchpoints that drove the sale. The amount of revenue credit given to a touchpoint depends on how much that touchpoint influenced the customer’s purchasing decision.
Here is AMM's breakdown of the major attribution models.
Note: GitLab uses a blended approach when it comes to attribution models. The Custom Attribution Model (Based on AMM Machine Learning) is going to be used side-by-side the other attribution models in order to get us closer to the "true" attribution answer.
Below are the major attribution models that GitLab marketing uses of that list:
U-Shaped attribution is a great lead generation focused attribution model. It tracks every single touchpoint up to the point of lead creation. It emphasizes the importance of two touchpoints: the first touch that brought the lead to us (while anonymous) - First Touch
and the touchpoint that converted the lead to a known prospect - Lead Creation
. These two touches get 40% of the attribution each and the remaining touches equally share the remaining 20%.
W-Shaped attribution takes U-Shaped and expands it to opportunity creation. It emphasizes the importance of three touchpoints: the first touch that brought the lead to us (while anonymous) - First Touch
, the touchpoint that converted the lead to a known prospect - Lead Creation
, and the touchpoint that converted that prospect to an opportunity - Opportunity Creation
. These three touches get 30% of the attribution each and the remaining touches equally share the remaining 10%.
Full Path attribution (or the Z-Shaped model) tracks the entire lifecycle of the record from First Touch
through the point of becoming a customer - Customer Close
. Full Path expands on the W-Shaped model by adding a 4th important touchpoint of Customer Close
, adding it to the 3 important touches of W-Shaped. Each of these 4 touches get 22.5% of the attribution and all of the other touches equally share the remaining 10%.
Linear Attribution is the simplest and most all-encompassing of the multi-touch attribution models and is the model that GitLab is focused on for longterm attribution modeling. In this model every touchpoint from First Touch
through to Customer Close
and beyond share equal credit as shown below.
Custom Attribution based on the AMM machine learning attribution model uses our touchpoint data to calculate how much attribution weighting should be assigned to each stage. This is determined by how important each stage was in driving deals to close.
How is the Machine Learning model Calculated?
AMM calculates the importance of each custom stage by using the touchpoint data from our account. The criteria used to determine the importance of each stage are:
Model Percentage = Model Accuracy x Conversion Rate x Touchpoint Uniqueness Weight
At the end, all the custom stage weights are normalized and converted to % as shown below.
The Custom Attribution Model, based on the Machine Learning Algorithm is a living model. It constantly improves based on the new data coming in.
To allow for the most up to date weights, the Marketing Operations team does constant refreshes of the Custom Attribution Model. As to have proper documentation, here in the handbook you can see the weight changes made, and when they occured.
Currently, the custom machine learning model has the following weights for each stage (updated July 15th 2022):
The custom model weights, is scheduled to be updated on a yearly basis, at the end of the FY (first week into the new FY). The previous weights can be seen here.
Here is an example of how we calculate linear IACV:
There are two opportunities, Opportunity A and Opportunity B.
Opportunity A has an IACV of $10,000. There are a total of 100 touchpoints (attribution touchpoints) associated with that opportunity. Each touchpoint is valued at $100 ($10,000 / 100 touchpoints). We call that the Weighted Linear IACV
Opportunity B has an IACV of $15,000. There are a total of 100 touchpoints (attribution touchpoints) associated with that opportunity. Each touchpoint is valued at $150 ($15,000 / 100 touchpoints). We call that the Weighted Linear IACV
Of the Touchpoints on Opportunity A, they are split among 2 different campaigns - 60 touches in Campaign Y and 40 in Campaign Z.
Of the Touchpoints on Opportunity B, they are split among 2 different campaigns - 40 touches in Campaign Y and 60 in Campaign Z.
To calculate the linear attribution IACV in each of those two campaigns we use the following calculation:
Campaign Y : 60 touches (from Opp A) at a Weighted Linear IACV
of $100/touch = $6,000 + 40 touches (from Opp B) at a Weighted Linear IACV
of $150/touch = $6,000. Total: $12,000 linear IACV.
Campaign Z : 40 touches (from Opp A) at a Weighted Linear IACV
of $100/touch = $4,000 + 60 touches (from Opp B) at a Weighted Linear IACV
of $150/touch = $9,000. Total: $13,000 linear IACV.
The Checksum is to combine the IACV of both opportunites ($10,000+$15,000=$25,000) and compare it to the sum of the linear IACV of all campaigns those opportunities are a part of: ($12,000+$13,000=$25,000). The results of the sums are equivalent - we are good.
Note: If the IACV of the opportunity/opportunities is/are negative, then the resulting Weighted Linear IACV
and final linear IACV of the campaign(s) could be negative.
The channels and sub-hannels are mapped based on 5 attributes:
utm_campaign
value on the form URL the form submission occurs on.utm_medium
value on the form URL the form submission occurs on.utm_source
value on the form URL the form submission occurs on.These rules are hierarchical and will operate in a top-down fashion, so the first rule is checked and then the second, and so on.
Note: AMM reprocesses your data when you edit the mapping logic, so you won’t be able to change these rules more than once every 7 days.
Channel | Sub Channel | Campaign | Medium | Source | Landing Page | Referring Website |
---|---|---|---|---|---|---|
Paid Search | cpc | |||||
Paid Search | [AdWords Paid Search] | |||||
Paid Search | Bing | cpc | bing_yahoo | |||
Paid Search | Bing | [Bing Paid Search] | ||||
Paid Search | Yahoo | [Yahoo Paid Search] | ||||
Paid Search | Other | cpc | ||||
Paid Search | Other | [Other Paid Search] | ||||
Display | DoubleClick | [DoubleClick] | ||||
Display | display | |||||
Display | [AdWords Display] | |||||
Display | Demandbase | ddbase;demandbase | ||||
Display | Other | display | ||||
Display | Other | display | ||||
Paid Social | paidsocial | |||||
Paid Social | [Facebook Paid] | |||||
Paid Social | paidsocial | |||||
Paid Social | [LinkedIn Paid] | |||||
Paid Social | paidsocial | |||||
Paid Social | Other | paidsocial | ||||
Paid Social | Other | [Other Paid Search] | ||||
Organic Search | [Google Organic Search] | |||||
Organic Search | Bing | [Bing Organic Search] | ||||
Organic Search | Yahoo | [Yahoo Organic Search] | ||||
Organic Search | Other | [Other Organic Search] | ||||
Social | ||||||
Social | ||||||
Social | [Facebook] | |||||
Social | ||||||
Social | ||||||
Social | [LinkedIn] | |||||
Social | ||||||
Social | ||||||
Social | [Twitter] | |||||
Social | Youtube | social | youtube | |||
Social | Youtube | Youtube | ||||
Social | Other | social | ||||
Social | Other | social | ||||
Referral | Partners | partnerid= | ||||
Referral | Partners | partner | ||||
email;eml;e-mail;hs-email;emailsig | ||||||
email;eml;e-mail;hs-email;emailsig | ||||||
email.gitlab.com | ||||||
[Web Mail] | ||||||
IQM | IQM | Initial Qualifying Meeting | ||||
Other | * | |||||
Other | * | |||||
Direct | Web Store | customers.gitlab.com/ | ||||
Direct | CI Minutes | customers.gitlab.com/buy_pipeline_minutes | ||||
Direct | Self Managed Trial | about.gitlab.com/free-trial/self-managed/ | ||||
Direct | Trial Home | about.gitlab.com/free-trial/ | ||||
Direct | GitLabCom Trial | gitlab.com/-/trials/new | ||||
Direct | direct;[Account Website] | |||||
Web Referral | * |
These channels and subchannels are pulled into Salesforce and can be further filtered by using medium
for those channels with overlap or with Ad Campaign name
to search for specific UTMs or campaigns. The Bucket Mapping
is a high-level grouping of each subchannel set to allow for additional reporting.:
AMM Channel.SubChannel | Bucket Mapping | Online/Offline | Type of Marketing |
---|---|---|---|
Content.Content Syndication | Inbound Paid | Offline | White Paper or other content offer that is hosted by a third party. |
Content.Gated Content | Inbound Paid | Offline | White Paper or other content offer. |
Content.PF Content | Inbound Free Channels | Online | This campaign type is used to track consumption of specific PathFactory assets. |
Digital.Inbound Request | Inbound Free Channels | Online | Any type of inbound request that requires follow up. |
Direct | Inbound Free Channels | Online | Unknown or direct (NOTE: this is not the same as Web direct/self-serve in SFDC, this is a Web referral where the original source was not captured) |
Display.Google | Inbound Paid | Online | A display ad from Google |
Display.Other | Inbound Paid | Online | A display ad from an unspecified source |
Inbound Free Channels | Online | Email driven engagement | |
Event.Conference | Inbound Paid | Offline | Any large event run by Corporate Marketing that we have paid to sponsor, have a booth/presence and are sending representatives from GitLab (example: AWS re:Invent, DevOps Enterprise Summit). |
Event.Executive Roundtables | Inbound Paid | Offline | This is used for campaigns that can either be organised through a 3rd party vendor or GitLab, covering both in-person and virtual roundtables. |
Event.Field Event | Inbound Paid | Offline | This is an event run by Field Marketing that we have paid to participate in |
Event.Owned Event | Inbound Paid | Offline | This is an event that we have created, own registration and arrange speaker/venue |
Event.Self-Service Virtual Event | Inbound Free Channels | Offline | This is a light weight virtual event that can be hosted on GitLabber's personal zoom. |
Event.Speaking Session | Inbound Paid | Offline | It is for tracking attendance at our speaking engagements. |
Event.Sponsored Webcast | Inbound Paid | Offline | This is webcast hosted on an external partner/vendor platform. The |
Event.Vendor Arranged Meetings | Inbound Paid | Offline | Used for campaigns where a third party vendor is organizing one-to-one meetings with prospect or customer accounts. |
Event.Virtual Sponsorship | Inbound Paid | Offline | A virtual event that we sponsor and/or participate in that we do not own the registration but will generate a list of attendees, engagement and has on-demand content consumption post-live virtual event. In |
Event.Webcast | Inbound Free Channels | Offline | Any webcast that is hosted and held by GitLab. |
Event.Workshop | Inbound Free Channels | Offline | An in-person or virtual workshop where the attendees are guided through an agenda of real life use cases within GitLab. |
IQM.IQM | Outbound | Online | SDR Initial Qualifying Meeting |
Organic Search.Bing | Inbound Free Channels | Online | Organic Search through Bing |
Organic Search.Google | Inbound Free Channels | Online | Organic Search through Google |
Organic Search.Other | Inbound Free Channels | Online | Organic Search through an unspecified search engine |
Organic Search.Yahoo | Inbound Free Channels | Online | Organic Search through Yahoo search |
Other | Other | Online | Unknown/unspecified UTMs |
Other.Direct Mail | Inbound Paid | Offline | This is when a package or piece of mail is sent out. |
Other.Survey | Inbound Paid | Offline | A survey that we or a 3rd party sends out. |
Paid Search.AdWords | Inbound Paid | Online | Google AdWords Paid Search |
Paid Search.Bing | Inbound Paid | Online | Bing Paid Search |
Paid Search.Other | Inbound Paid | Online | Unspecified Paid Search |
Paid Social.Facebook | Inbound Paid | Online | Facebook Paid Ads |
Paid Social.LinkedIn | Inbound Paid | Online | LinkedIn Paid Ads |
Paid Social.Other | Inbound Paid | Online | Unspecified Paid Ads |
Paid Social.Twitter | Inbound Paid | Online | Twitter Paid Ads |
Referral.Referral Program | Inbound Paid | Online | This campaign type is used for our third party prospecting vendors or meeting setting services |
Social.Facebook | Inbound Free Channels | Online | Referral from Facebook |
Social.LinkedIn | Inbound Free Channels | Online | Referral from LinkedIn |
Social.Other | Inbound Free Channels | Online | Referral from an unspecified social platform |
Social.Twitter | Inbound Free Channels | Online | Referral from Twitter |
Trial.Trial | Trial | Online | SaaS Trials |
Web Referral | Inbound Free Channels | Online | Referral from any site not otherwise defined |
Asset Viewed
A buyer touchpoint will be created, based on the Content Engagement Time Threshold. If the known user spends the required amount of time on a PathFactory asset, a script in the backend will be executed, pushing the event to AMM.
A touchpoint will only be generated if the user has accepted the Cookie Policy
and is identified by PathFactory via the lb_email
parameter.
AMM parses the referral URL it receives for: utm_medium
, utm_campaign
, utm_source
.
Form Fill
Similarly to asset views, upon a successfull form submission on a PathFactory asset, a buyer touchpoint will be created.
Downloaded Asset When an asset is downloaded on a PathFactory track, a buyer touchpoint is being generated by the backend script. <!– This diagram is to be used internally and with Pathfactory to understand the attribution touchpoints created through our setup of Pathfactory listening campaigns and how the tracks are used in integrated campaigns and other tactics that drive straight to pathfactory.
!–>
These are part of AMM's native and automatic functionality. AMM will for every channel and subchannel, create a generic [Bizible]
campaign within SFDC in order to attribute touchpoints.
But these are not official campaigns, that is why there are no members, but the touchpoints will reference these campaigns for use in reporting and analytics.
Example: Web Direct [Bizible]
Below are some frequently used bizible reports in SFDC and their use cases.
Bizible report type used: Bizible person with Bizible touchpoints (Custom)
Below are step-by-step instructions on how to track registration by driving channel for zoom webcasts, where the registration is set up on about.gitlab or Marketo pages.
Bizible person with Bizible touchpoints (Custom)
and click create
.Show All bizible persons
and Date Field Range is set to All Time
.Form url contains [insert webcast landing page unique identifier]
(e.g: Form url contains automate-security-ci)Marketing Channel - Path
.Training Video:
The review of online touchpoints and of the rules governing the creation of touchpoints based on online activities takes place once per month and includes the following checks:
The review of the campaign sync rules, the rules that govern the creation of touchpoints for offline activities takes place once per month and is based on the Adobe Marketo Measure Best Practices for Maintenance. It includes the following checks:
To view all AMM data related updates please visit the marketing changelog spreadsheet. All updates are documented there along with additional information like the date of the update, level of impact and the type of the change.