This handbook starts from a scene we see often. The Google Ads report shows 80 conversions for the month at a falling cost per lead. The salesperson has called back thirty of them: some are students, some are suppliers pitching their services, others are customers who were looking for support. There are four real opportunities. Both of them are right, because they are looking at two different numbers.
The pages that follow are about making those two numbers match. They are written for anyone who manages or oversees a Google Ads account in a B2B company and wants campaigns to be judged and optimised on the leads that turn into deals. Every chapter ends with something to do; at the end you will find four appendices to fill in.
The problem: more leads does not mean more opportunities
Google Ads optimises for the event you tell it is a conversion. If that event is a form submission, the algorithm learns to find people who fill in forms at the lowest price, and in B2B those people only partly overlap with the people who buy.
Why cost per lead is misleading
Cost per lead is easy to calculate and easy to improve. Just shorten the form, broaden the keywords or switch on an automated format with a wider audience. The number drops, the report looks better, and the CRM fills up with contacts to throw away. The cost that matters to the business is a different one: how much you spend on each sales opportunity and each contract.
Here is an example with made-up numbers. Two campaigns spend the same amount. The first brings 50 leads, the second 20. Of the 50, the salesperson accepts 5; of the 20, they accept 8. Looking at Google Ads, the first campaign costs half as much per lead. Looking at the CRM, the second costs less than half as much per opportunity.
| Indicator | Campaign A | Campaign B |
|---|---|---|
| Leads recorded in Google Ads | 50 | 20 |
| Leads accepted by sales (SQLs) | 5 | 8 |
| Lead → SQL rate | 10% | 40% |
| Cost per lead (index, A = 100) | 100 | 250 |
| Cost per SQL (index, A = 100) | 100 | 62 |
If the account only optimises on cost per lead, campaign B gets cut back or switched off. It is the most expensive mistake we find in audits, because it looks like a prudent choice.
Where unworkable leads come from
The causes repeat from one account to the next:
- keywords that are too broad and pick up informational, job or training searches;
- automated formats without quality signals, which expand towards whoever converts most easily;
- landing pages that appeal to everyone, with a generic offer and a two-field form;
- badly set-up conversions, with form submission as the only goal, sometimes counted twice;
- no feedback from the CRM, so Google never finds out which leads were rejected.
Self-assessment question. Can you say, for each of your three main campaigns, how many leads from last quarter became opportunities? If the answer takes more than ten minutes of exports and manual cross-checking, the problem in this guide applies to you too.
What changes when you measure quality
When Google receives outcomes from the CRM, leads fall in the first few weeks and cost per lead rises. That is the expected effect: the algorithm stops buying easy leads. The result shows up in cost per opportunity, on the timescale of your sales cycle. Management needs to be told this in advance, otherwise the campaign gets judged at the wrong moment.
To do. Choose today the metric you will judge campaigns by over the next six months (cost per SQL or cost per opportunity) and write it in the document you share with management, together with the one you will stop using as a benchmark.
From click to contract: the stages a campaign needs to measure
A B2B campaign needs measuring across every stage of the journey, from click to signature. The platforms see the first three; the CRM sees the rest. The job is connecting them.
The eight stages of the journey
- Impression and click: the ad shows for a search and someone clicks.
- Qualified visit: the person reads the page, scrolls, looks at the specifications.
- Lead: form submission, call or chat enquiry.
- MQL: the contact meets the agreed profile criteria (industry, size, role).
- SQL: the salesperson has spoken to them and confirms need, timing and decision-maker.
- Opportunity: there is an open deal in the CRM, often with an estimated value.
- Proposal: quote sent.
- Contract: signature, with real value and margin.
Each step has a conversion rate and a cost. The point where the rate collapses tells you where to act: if it collapses between lead and MQL, the problem is in the targeting or the landing page; if it collapses between SQL and proposal, it is about the product, the price or the sales process, and the campaigns have little to do with it.
Who records what
| Stage | Where it is recorded | Who updates it | Does it go back to Google Ads? |
|---|---|---|---|
| Click | Google Ads | Automatic | It is the starting point |
| Lead | Site tag, CRM | Automatic | Yes, as a secondary action |
| MQL | CRM | Scoring rule or marketing | Yes, secondary offline conversion |
| SQL / opportunity | CRM | Sales | Yes, usually as the primary action |
| Proposal | CRM or management system | Sales | Yes, secondary, with value |
| Contract | CRM or management system | Sales or accounts | Yes, with the real value |
Watch out. A won contract is the truest data point, but it arrives late and rarely. With three or four signatures a month, no bidding algorithm learns anything. Always measure it; only use it as the goal with high volumes.
The sales cycle sets the reading schedule
If your average cycle lasts four months, a campaign launched in January produces contracts between April and June. Judging it on revenue in February means judging it on zero. That is why you need intermediate stages: SQLs are measured in weeks, contracts in months. For each campaign, note the average cycle and decide which stage to look at at each point in its life.
To do. Calculate from the CRM the average time between lead creation and signature over the last twelve months, and the average time between lead and SQL. The first tells you when to read revenue, the second when to read quality.
Search, Performance Max and AI Max: where to use each format
For B2B lead generation the foundation is still a Search campaign with keywords you choose. AI Max is switched on within that Search campaign when searches are fragmented and the CRM is sending back qualified leads; Performance Max comes last, when the quality signals are solid and non-brand Search is already covered.
The full reasoning, with three use cases, is in the article on PMax, AI Max or Search for B2B leads. Here we cover the practical side.
What each format does
Search. You choose keywords and match types, control the queries and read a clear report. It works even with little data and needs constant maintenance of lists and negatives.
AI Max. It is a set of features you switch on inside a Search campaign: it expands queries beyond the keywords (search term matching), can adapt the ad copy and choose the landing page. Negatives, brand exclusions and location controls remain available. It performs well when searches come in many variants with low volumes each, a common situation in technical B2B.
Performance Max. It starts from a conversion goal and a set of assets and serves ads across Search, YouTube, Display, Gmail, Discover and Maps. You provide search themes and audience signals; the algorithm decides the rest. It is the format where you have least control over each individual impression.
The decision matrix
| Account situation | Search | AI Max on Search | Performance Max |
|---|---|---|---|
| Only “form submitted” conversions | Yes | With caution | No |
| Qualified leads imported from the CRM | Yes | Yes | Yes, it is the prerequisite |
| Niche with a few dozen searches a month | Yes, the only real base | On one ad group, to discover variants | Usually not |
| Medium volumes, many different phrasings | Yes | Yes, after 4-6 weeks of clean data | As an addition, with exclusions |
| Heavily searched brand | Separate brand campaign | On non-brand campaigns | Only with brand exclusion |
| No video or image assets | Makes no difference | Makes no difference | Postpone |
What changed in 2026
Two developments affect this year’s choices.
AI Max and the old settings. From September 2026 Google converted to AI Max the campaigns using automatically created assets and campaign-level broad match, while the automatic migration and retirement of Dynamic Search Ads have been postponed to February 2027 (Google announcement). If in September you found AI Max switched on in campaigns you had not touched, this is why. Anyone still using DSAs has a few months to migrate and choose the settings by hand.
More control over Performance Max. In 2026 Google announced first-party data list exclusions, a budget report with spend forecasting, age and gender reports and a placement report segmented by network (Google announcement). For B2B the first is the most useful: you can remove customers and contacts already in negotiation from the campaign. Campaign-level negative keywords in PMax, as Google’s documentation points out, only apply to Search and Shopping inventory.
Example. A hypothetical company making industrial filtration systems has a PMax campaign reporting lots of conversions over three months. The search terms report shows the company name and its flagship products at the top. After excluding the brand and the customer list, reported conversions fall: the ones left are new contacts, previously hidden among searches from people who already knew the company.

Keywords, queries and intent: filter before you pay
Every off-target click is paid for twice: with the cost of the click and with the time a salesperson spends calling back a useless contact. The cheapest filter is the one that works before the click, on keywords, match types, negatives and ad copy.
Classifying searches by intent
B2B searches fall into four families, and only two deserve full budget. The concept is explained in the glossary entry on search intent; here we apply it to campaigns.
| Intent | Example searches (hypothetical) | What to do |
|---|---|---|
| Purchase or supplier | “industrial gasket supplier”, “dust extraction system quote” | Full budget, phrase and exact match keywords, landing page with a quote form |
| Solution to a problem | “reduce downtime on packaging line” | Controlled budget, landing page linking the problem to the offer |
| Informational | “what is predictive maintenance”, “ISO 9001 summary” | Usually excluded from paid Search, covered with SEO content |
| Off-target | “lathe operator jobs”, “CNC course”, “second-hand”, “DIY”, “pdf” | Account-level negatives |
A shared negative keyword list
Negatives should be built before launch, then updated every week from the search terms report. A starting list for industrial B2B usually includes these families:
- jobs and recruitment: job, jobs, vacancies, salary, hiring, internship, cv;
- training: course, courses, dissertation, university, notes, exam;
- free and DIY: free, DIY, tutorial, diagram, pdf;
- second-hand and spares, if you do not sell them: used, second-hand, spares, hire, repair;
- consumer: home, hobby, cheap, deal, amazon, ebay;
- competitors, if you do not want to appear on their searches;
- locations and languages you do not serve.
Watch out. A badly written negative also blocks good traffic. “Course” excludes people looking for training, but also anyone searching for a product name that contains the word, such as a golf course irrigation system. After every update, check that your main keywords are not blocked by the negatives.
Match types and query control
In niche B2B, phrase and exact match remain the foundation. Broad match and AI Max widen the net and work when Google receives the CRM signal about which leads are valuable; without that signal, expansion heads towards the searches that convert most easily, which rarely match those of real buyers.
A routine that works:
- every week, open the search terms report for the last seven days, sorted by cost;
- add off-target queries as negatives, at account level if they are generic;
- promote good queries coming from expansion to keywords;
- every month, cross-check queries against leads accepted in the CRM, to see which phrasings bring opportunities.
Ads that select
Ad copy is a filter that costs nothing. Saying clearly who you are talking to discourages clicks from people outside the target: “Business supply only”, “Batches of 500 pieces”, “Systems for plants over 2,000 m²”. CTR drops a little, click quality goes up. Giving an order of magnitude for the investment, where your sales policy allows it, also removes many contacts who would never have signed.
To do. Take the search terms report for the last 90 days, filter for queries with at least one click and no qualified conversion, and work out how much of the spend they accounted for. It is the first number to bring to your next campaign meeting.
B2B landing pages that qualify the lead
A B2B landing page needs to make clear straight away who the offer is for and ask just enough to tell a buyer from someone browsing. A form that is too short brings volume; one that is too long also stops people who are on target. The CRM data tells you where the right balance is.
What the page needs to say in the first few seconds
Someone arriving from an ad must find at the top of the page the same promise as the ad, written for their industry. The elements that make the difference:
- a heading that names the problem or the product using the words of the search;
- who it is for: industries, company sizes, minimum quantities;
- concrete evidence: certifications, technical specifications, real photos of the plant or the products;
- what happens after submission: who gets back to you, how soon, what they will prepare;
- an alternative for those who are not ready, such as a downloadable data sheet.
The form that filters
The questions that filter most in B2B are few and concrete: industry, role, company size or quantity, project timescale. A required industry field with a drop-down menu removes many off-target contacts without putting off those on target. Making a work email address required cuts down personal addresses used out of curiosity.
| Field | What it filters | Required? |
|---|---|---|
| First name, surname, work email | Anonymous contacts and throwaway addresses | Yes |
| Company | Private individuals and students | Yes |
| Industry (drop-down) | Off-target companies | Yes |
| Role (drop-down) | People who neither decide nor influence the purchase | Recommended |
| Quantity or project size (bands) | Requests that are too small | Recommended |
| Expected timescale (bands) | Browsers with no project | Optional |
| Free-text message | Nothing, but it helps the salesperson | Optional |
Form answers should be stored in the CRM as structured fields, not as text in a single note: they will be needed for MQL scoring and for assessing campaigns.
Google lead form assets
Lead forms inside Google Ads reduce friction and so tend to bring more volume. Google lets you turn a multiple-choice question into a qualifying question: the answers you choose automatically mark the lead as qualified in the exported data. Qualifying questions cannot be optional. For Search campaigns, SMS phone number verification is also available, with a one-time code that filters out invalid numbers, spam and bots (Google’s guide to lead form assets).
If you use lead forms, connect them to the CRM with an automatic integration: a lead left in a file to download by hand gets called back late, and a B2B buyer who waits three days has already heard from a competitor.
Spam and bots
An anti-spam system is always needed, but it should be set up so it does not block real users. The combinations we use most: a hidden field only bots fill in, a check on completion time, filters on the message content, and an invisible CAPTCHA only when the rest is not enough. Rejected attempts should be logged, so you can check the filter is not eating good leads.
Self-assessment question. If a salesperson looks only at the form fields, without phoning, can they tell whether the contact is on target? If not, the form is missing at least one question.
Conversion tracking: which events to send to Google Ads
You should send Google Ads every event that describes lead quality, but only one, the one closest to revenue with enough volume, should be set as the primary action for bidding. The others stay secondary: they are there for reading reports and do not confuse the algorithm.
Primary and secondary actions
In Google Ads every conversion action can be primary (it counts in the Conversions column and drives bidding) or secondary (visible in “All conversions”, not used for bidding). Many B2B accounts have five or six primary actions: forms, calls, email clicks, catalogue downloads, contact page visits. The algorithm treats them all as equivalent and goes after the cheapest.
| Event | Source | Primary or secondary | Value |
|---|---|---|---|
| Quote form submission | Site tag with user data | Secondary (primary only until you have the CRM import) | Low |
| Call from ad above a minimum duration | Google Ads | Secondary | Low |
| Data sheet download | Site tag | Secondary | None |
| MQL | CRM import | Secondary | Average expected value |
| SQL / opportunity | CRM import | Primary | Higher average expected value |
| Proposal sent | CRM import | Secondary | Weighted amount |
| Contract | CRM import | Secondary (primary only with high volumes) | Real value or margin |
Enhanced conversions and consent
The conversion tag should also send the email from the form, normalised and hashed with SHA-256: these are enhanced conversions, which link to the click conversions that would otherwise be lost, for example when a buyer clicks on their phone and writes from their office computer. In 2026 Google simplified things: since April it accepts user-provided data from the tag, Data Manager and the API at the same time, and since June enhanced conversions for web and for leads are a single on/off setting (Google announcement).
All of this only works if the cookie banner passes the user’s choices to Google with Consent Mode v2. If the ad_user_data signal is denied, user data is not sent. We explain how to set up and check the banner, consent and tags in the article on enhanced conversions and Consent Mode.
Watch out. Double counting is the most common mistake: the same form recorded by the Google Ads tag and by the GA4 import, both as primary actions. Conversions double and Smart Bidding overvalues the campaigns. Each goal must have a single primary action.
Checks to run with a test form
- in Tag Assistant, consent is
deniedby default and switches tograntedafter acceptance; - a single conversion fires after the form is submitted;
- the user data parameter is populated in the conversion request;
- the gclid appears in the form’s hidden fields and reaches the CRM;
- after about 72 hours, the conversion action diagnostics in Google Ads show no warnings;
- conversion windows are consistent with the sales cycle.
To do. Open Goals > Conversions > Summary, filter for primary actions and write next to each one why it is primary. Any for which you cannot find an answer become secondary.
Offline conversions and the CRM: teaching Google which leads are worth something
Offline conversions are the sales outcomes (MQL, SQL, opportunity, contract) that the CRM sends back to Google Ads days or weeks after the click. They are the only way of letting the algorithm know which contacts the sales team accepted and which it rejected.
How it works today
Google recommends enhanced conversions for leads: the form sends the hashed email at the time of the lead, the CRM keeps the same email, and when the contact changes stage the conversion is uploaded using the email as the key. Google still asks you to include the gclid when available, so it is worth storing and sending both.
Since 15 June 2026, offline conversion and lead uploads go through the Data Manager API and are blocked on the Google Ads API. For anyone using the native connectors of the most popular CRMs, the change is often seamless; anyone with a custom integration built a few years ago needs to update it. Either way, check that conversions are still arriving.
The four pieces you need
- The form stores the identifiers. gclid, gbraid, wbraid and UTMs in hidden fields, read on arrival at the site and kept, with consent, until submission.
- The CRM keeps them on the contact and the opportunity, without overwriting the first touch.
- Stages have written criteria and an owner who updates them within the agreed times.
- An integration sends the events to Google Ads at least once a day, with date, value and identifiers.
The full process, including towards Meta and LinkedIn, is described in from lead to contract: connecting CRM and revenue. The template in Appendix C lists the fields to map.
Giving each stage a value
A stage’s value is calculated like this: average contract value multiplied by the probability that a contact at that stage will reach signature. An example with made-up numbers: average contract of 30,000 euros, 25% of proposals close, 10% of SQLs sign, 2% of MQLs sign. The values become 7,500 euros for the proposal, 3,000 for the SQL, 600 for the MQL. If margin varies a lot between product lines, use margin instead of revenue.
The proportions between stages matter more than precision. With values in the platform you can use value-based bidding, and Google learns that an opportunity from an on-target company is worth more than ten generic forms.
Example. A hypothetical industrial automation company only imports signed contracts: four a month. The algorithm does not have enough signals and bidding stays unstable. By sending the SQL as the primary action (around thirty a month) and the contract as secondary with the real value, Google gets a frequent signal and revenue is still measured.

The SLA that holds it all together
If sales does not update the CRM, the import stops and Google goes back to learning from forms. That is why you need a written agreement between marketing and sales: definition of MQL and SQL, response times, rejection reasons from a closed list, a monthly review with the numbers in front of you. The template in Appendix B is for writing it. For scoring criteria, the article on B2B lead scoring gives you a starting point.
Self-assessment question. How many leads from Google Ads in the last 30 days are still at the initial stage in the CRM? If it is more than a quarter, the problem is not the integration: it is that nobody updates the stages.
MQLs, SQLs, revenue and margin: the minimum useful dashboard
The minimum dashboard puts one campaign on each row and, in the columns, spend, leads, MQLs, SQLs, opportunities, contracts, revenue and margin, with costs per stage. Eight numbers are enough to decide where to move budget; the rest is detail.
The columns you need
| Campaign | Spend | Leads | MQLs | SQLs | Opportunities | Contracts | Revenue | Margin | Cost per SQL | Pipeline / spend |
|---|---|---|---|---|---|---|---|---|---|---|
| Brand | ||||||||||
| Non-brand Search, category 1 | ||||||||||
| Non-brand Search, category 2 | ||||||||||
| Performance Max | ||||||||||
| Total |
The Pipeline / spend column is the value of opportunities created in the period divided by spend: for B2B it is more useful than platform ROAS, which barely exists with long cycles. Spend and leads come from Google Ads, the rest from the CRM. The two sources are joined through consistent campaign names in the UTMs.
How to read it
- Brand kept apart from everything else. Brand campaigns almost always have the best numbers because they catch people already looking for you; mixed in with acquisition, they hide the campaigns that are struggling.
- Conversion rates between stages, as well as totals. Lead → MQL tells you about targeting and landing pages, MQL → SQL about the quality sales perceives, SQL → contract about the offer and the sales process.
- Long enough periods. With cycles of several months, look at the quarter in cohorts: January’s leads, and what they had become by the end of March.
- Margin, where you have it. Two product lines with the same revenue can have very different margins.
On why platform ROAS can be misleading, and how to use margin, MER and incrementality tests, see the article on how to measure ROAS and real impact.
Further reading. For the campaign side we use RunAlytics, our dashboard that brings Google Ads, Meta, LinkedIn and TikTok data together in a single view. Pipeline and revenue stay in the CRM and are matched to campaigns through consistent naming. You can build the same structure with a spreadsheet updated monthly: naming discipline matters more than the tool.
How often to look at it
| Frequency | Who | What they look at | Typical decision |
|---|---|---|---|
| Weekly | Whoever manages the campaigns | Spend, leads, queries, MQLs | Negatives, bids, ads |
| Monthly | Marketing and sales together | SQLs, rejection reasons, cost per SQL | Budget between campaigns, landing page fixes |
| Quarterly | Management | Opportunities, contracts, revenue, margin by channel | Budget between channels, new markets |
To do. Build the table with last quarter’s data, even by hand. The cells you cannot fill in show you exactly which piece of tracking is missing.
The 15 mistakes that lower lead quality
The mistakes that lower lead quality almost always share the same root: the account is optimising for a different goal from the company’s. We list them in the order we find them most often.
- Optimising for form submissions. The algorithm finds people who fill in forms, who are often not the people who buy.
- Several primary actions for the same goal. Forms, calls, downloads and visits treated as equivalent.
- Double counting. Google Ads tag and GA4 import both active as primary.
- No import from the CRM. Google never finds out which leads were rejected.
- Performance Max without brand and customer list exclusions. It takes credit for searches on your name and for existing customers.
- AI Max switched on without reading the search terms. In the first few weeks queries need checking every week.
- Negatives untouched for months. The search terms report changes constantly; the list does not.
- Generic ads. No indication of who the offer is for, so everyone clicks.
- The same landing page for every campaign. The home page or a generic services page instead of one page per category.
- A two-field form. Lots of volume, no information for qualifying.
- Lead form assets without qualifying questions and without an automatic CRM connection.
- Judging an automated format after ten days. In B2B you need weeks before a serious comparison.
- Brand and acquisition in the same report. Brand numbers inflate the average and cover up weak campaigns.
- Incomplete Consent Mode. A banner that does not send
ad_user_dataandad_personalization, so enhanced conversions and remarketing do not work. - CRM stages updated in bulk at the end of the quarter. Wrong dates, events outside the useful windows, signals no use for bidding.

Quick self-assessment
Tick the mistakes you recognise in your account. From three upwards, it is worth starting with the audit in the last chapter before touching budgets and bids.
- We optimise for form submissions
- We have more than one primary action for the same goal
- We do not know whether any conversions are counted twice
- The CRM sends nothing back to Google Ads
- PMax has no brand or customer list exclusions
- AI Max is on and nobody reads the search terms every week
- Negatives have not been updated for more than a month
- The ads do not say who the offer is for
- Several campaigns lead to the same generic page
- The form has fewer than four fields
- Lead form assets have no qualifying questions
- We judged an automated format in less than four weeks
- Brand and acquisition are in the same report
- We have not checked Consent Mode v2 in the last six months
- CRM stages are updated late or in bulk
Watch out. Fixing mistakes 1, 4 and 5 on the same day makes the conversions Google reports drop suddenly. That is the expected effect, and it should be communicated in advance: you are removing easy conversions and conversions that were not yours.
Audit checklist for the Google Ads account
The audit should be done in this order: first conversions and tracking, then the CRM, then structure and queries, and finally ads and landing pages. Optimising bids on wrong data only produces faster mistakes.
The five areas and what to look at
| Area | Key question | Where to check | Estimated time |
|---|---|---|---|
| Conversions | What is the account optimising for today? | Goals > Conversions, Tag Assistant | 1-2 hours |
| CRM | Does Google receive the sales outcomes? | CRM, Data Manager, conversion diagnostics | 2-3 hours |
| Structure and formats | Does every campaign have a clear job? | Campaigns, settings, exclusions | 1-2 hours |
| Queries and keywords | Are we paying for off-target searches? | Search terms report, negatives | 2-4 hours |
| Ads and landing pages | Does the message select the people who buy? | Ads, landing pages, forms | 1-2 hours |
The recommended sequence
- Take a snapshot of where you are. Export campaigns, conversions and leads for the last quarter before changing anything.
- Fix the conversions. One primary action per goal, no double counting, enhanced conversions on, Consent Mode checked.
- Connect the CRM. Hidden fields, stages with criteria, daily import, values per stage.
- Separate brand and acquisition into different campaigns and reports; brand exclusion in automated formats.
- Clean up the queries. Account-level negatives, review of match types, a weekly routine.
- Rewrite ads and landing pages so they select the audience.
- Change the bidding goal only once the CRM import has been stable for a few weeks.
- Review everything after 6-8 weeks on the minimum dashboard, in cohorts.
Appendix A turns this sequence into forty checks with columns for status, priority and owner. If you would rather do it with someone who has already done it on many B2B accounts, that is the work we do in Google Ads campaign management.
To do. Block out half a day in the diary with whoever manages the campaigns and a salesperson. Fill in Appendix A together: half the answers are in Google Ads, the other half are in the head of whoever calls the leads back.
Appendix A: Google Ads audit sheet to fill in
For each check, mark the status (OK, Needs fixing, Don’t know), the priority (High, Medium, Low) and who is handling it. “Don’t know” counts as “Needs fixing”.
Conversions and tracking
| # | Check | Status | Priority | Owner | Notes |
|---|---|---|---|---|---|
| 1 | There is a single primary action for each goal | ||||
| 2 | Form submission is secondary (or primary only while waiting for the CRM import) | ||||
| 3 | No action is counted twice (Google Ads tag + GA4 import) | ||||
| 4 | Calls have a minimum duration to count as a conversion | ||||
| 5 | Enhanced conversions on and user data present in the request | ||||
| 6 | Consent Mode v2 with four parameters, denied by default |
||||
| 7 | Conversion action diagnostics with no open warnings | ||||
| 8 | Conversion windows consistent with the sales cycle |
CRM and offline conversions
| # | Check | Status | Priority | Owner | Notes |
|---|---|---|---|---|---|
| 9 | The form stores gclid, gbraid, wbraid and UTMs in hidden fields | ||||
| 10 | The fields reach the CRM on the contact and the opportunity | ||||
| 11 | First and last touch are stored in separate fields | ||||
| 12 | Contact deduplication rules are active | ||||
| 13 | MQL and SQL have written, shared criteria | ||||
| 14 | Sales updates stages within the SLA times | ||||
| 15 | MQL, SQL, proposal and contract go back to Google Ads as conversions | ||||
| 16 | The import uses Data Manager and was checked after 15 June 2026 | ||||
| 17 | Uploads happen at least once a day | ||||
| 18 | Each stage has a value calculated from historical data |
Structure and formats
| # | Check | Status | Priority | Owner | Notes |
|---|---|---|---|---|---|
| 19 | Brand campaign separate from acquisition campaigns | ||||
| 20 | Each non-brand campaign matches a product or service category | ||||
| 21 | Campaigns switched to AI Max in September 2026 have been reviewed | ||||
| 22 | Any DSAs still running have a migration plan before February 2027 | ||||
| 23 | PMax has brand exclusion active | ||||
| 24 | PMax excludes customer lists and contacts in negotiation | ||||
| 25 | PMax optimises for a qualified event | ||||
| 26 | Locations and languages match the markets served |
Queries and keywords
| # | Check | Status | Priority | Owner | Notes |
|---|---|---|---|---|---|
| 27 | There is an account-level negative keyword list | ||||
| 28 | The search terms report is read every week | ||||
| 29 | Spend on queries with no qualified leads in the last 90 days is known | ||||
| 30 | Broad match is only used with the CRM import active | ||||
| 31 | Good queries from expansion are promoted to keywords | ||||
| 32 | Negatives do not block active keywords |
Ads, landing pages and forms
| # | Check | Status | Priority | Owner | Notes |
|---|---|---|---|---|---|
| 33 | Ads say who the offer is for | ||||
| 34 | Each category has a dedicated landing page | ||||
| 35 | The landing page heading echoes the ad’s promise | ||||
| 36 | The form asks for industry and role with drop-down menus | ||||
| 37 | Lead form assets have at least one qualifying question | ||||
| 38 | Anti-spam active and rejected attempts logged | ||||
| 39 | Leads reach sales automatically, with source and campaign | ||||
| 40 | The page says what happens after submission |
Summary. Checks OK: ___ / 40. Needing high-priority fixes: ___. First action to take within a week: ______________________.
Appendix B: MQL/SQL definition template
To be filled in at a meeting between marketing and sales, signed and reviewed every six months. The parts in square brackets are examples to replace.
1. Ideal customer profile
| Criterion | On target | Off target |
|---|---|---|
| Industries | [e.g. engineering, food, packaging] | [e.g. private individuals, retailers] |
| Company size | [e.g. more than 20 employees] | |
| Countries or regions | ||
| Roles that decide or influence | [e.g. technical director, purchasing, owner] | [e.g. students, job applicants, suppliers] |
| Minimum quantity or value |
2. MQL definition
A contact becomes an MQL when they meet all the profile criteria and at least one of the behaviour criteria.
- Profile criteria met (section 1)
- Explicit request (quote, demo, site survey, call)
- Or score above the threshold of ____ points
- Or: ________________________
3. SQL definition
An MQL becomes an SQL when the salesperson has spoken to the contact and confirms:
- a concrete need linked to our offer
- a project timescale within ____ months
- a contact who decides or influences the purchase
- an order of magnitude compatible with our offer
4. Response times
| Type of contact | First contact within | Outcome recorded in the CRM within |
|---|---|---|
| Quote request | [e.g. 1 working day] | [e.g. 3 working days] |
| MQL from scoring | [e.g. 3 working days] | [e.g. 7 working days] |
| Call from ad | ||
| Lead form asset |
5. Rejection reasons (closed list)
| Code | Reason | What marketing does |
|---|---|---|
| S1 | Off target by industry | Review keywords, negatives, ads |
| S2 | Off target by size or quantity | Add bands to the form, clarify in the ads |
| S3 | Student, job applicant, supplier | Update negatives and landing page copy |
| S4 | Already a customer or in negotiation | Exclude customer lists from campaigns |
| S5 | Duplicate | Check deduplication rules |
| S6 | No reply after ____ attempts | Check response times |
| S7 | Spam or fake details | Review anti-spam |
6. Values per stage
| Stage | Probability of signing (historical) | Average contract value | Value to send to Google Ads |
|---|---|---|---|
| MQL | ____ % | € ____ | € ____ |
| SQL | ____ % | € ____ | € ____ |
| Proposal | ____ % | € ____ | € ____ |
| Contract | 100% | € ____ | real value |
7. Review
Date of next review: ________. Signed: marketing lead ________, sales lead ________.
Appendix C: Lead source → sale tracking template
This template lists the fields that need to exist in the form, in the CRM and in the integration with Google Ads. Tick the ones you have and note the field name in your CRM.
Fields to store from the form
| Field | Where it comes from | Where it goes in the CRM | Present? | Field name in the CRM |
|---|---|---|---|---|
| gclid | Ad URL (auto-tagging) | Contact + opportunity | ||
| gbraid / wbraid | URL, journeys from iOS apps | Contact + opportunity | ||
| utm_source | URL | Contact, first and last touch | ||
| utm_medium | URL | Contact, first and last touch | ||
| utm_campaign | URL | Contact, first and last touch | ||
| utm_term | URL | Contact | ||
| utm_content | URL | Contact | ||
| Entry landing page | Site script | Contact | ||
| First contact date | Site script | Contact | ||
| Email (as entered in the form) | Form | Contact, not editable | ||
| Phone | Form | Contact | ||
| Consent status | Banner | Contact |
Events to send to Google Ads
| CRM stage | Action name in Google Ads | Primary or secondary | Value | Matching key | Upload frequency |
|---|---|---|---|---|---|
| Lead | Secondary | gclid + hashed email | Real time (tag) | ||
| MQL | Secondary | gclid + hashed email | Daily | ||
| SQL / opportunity | Primary | gclid + hashed email | Daily | ||
| Proposal | Secondary | gclid + hashed email | Daily | ||
| Contract | Secondary | gclid + hashed email | Daily |
UTM convention
| Parameter | Allowed values | Example |
|---|---|---|
| utm_source | google, meta, linkedin, newsletter | |
| utm_medium | cpc, paid-social, email | cpc |
| utm_campaign | year_market_goal_topic | 2026_uk_lead_filtration |
| utm_content | ad variant | rsa-a |
| utm_term | keyword or audience | {keyword} |
The campaign name in the UTMs must match the one in Google Ads, lower case and with no spaces.
Monthly check
- Percentage of last month’s leads with a gclid populated: ____ %
- Percentage of leads with complete UTMs: ____ %
- Leads stuck at the initial stage for more than 30 days: ____
- Offline conversions received by Google Ads in the month: ____
- Difference between leads in the CRM and leads in Google Ads, by campaign: stable and explainable?
Appendix D: B2B landing page checklist
Twenty-five points, split into five groups. A landing page that meets fewer than twenty should be reviewed before increasing the budget of the campaign that uses it.
Message
- The heading echoes the words of the search and the ad’s promise
- Within the first few seconds it is clear what you sell and to whom
- Industries, company sizes or minimum quantities are stated
- The benefit is concrete (timescales, performance, verifiable savings), with no generic superlatives
- A single main offer per page
Evidence
- Technical specifications or a product data sheet to consult
- Certifications and standards relevant to the industry
- Real photos of products, installations or the plant
- Verifiable references (industries served, years in business, location)
- Names and roles of the people who will get back in touch
Form
- Work email required
- Company required
- Industry drop-down required
- Role and quantity or project size in bands
- Hidden fields for gclid, gbraid, wbraid and UTMs
- Anti-spam active that does not block real users
After submission
- The page says who will get in touch and how soon
- Thank-you page with useful content for the wait
- Automatic confirmation email
- The lead reaches sales with source and campaign filled in
- A single conversion recorded per submission
Technical
- Fast loading on mobile
- Form usable on a phone without zooming
- Compliant cookie banner, connected to Consent Mode v2
- An alternative for those not ready (data sheet, catalogue) tracked as a secondary event





























