Tracking setup for my ads

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

SALARY

6-8hr

HOURS PER WEEK

10

DATE UPDATED

Sep 4, 2026

JOB OVERVIEW

# Google Ads Conversion Tracking Specialist — GCLID / ServiceM8 / n8n

**Type:** Project-based (with potential ongoing retainer for maintenance)
**Location:** Remote, Philippines preferred
**Client:** Laserline Tiling Ltd — tiling & waterproofing contractor, Christchurch, New Zealand

## The Problem We Need Solved

Right now, Google Ads counts a "conversion" the moment someone submits a form on our website. But a form submission isn't a sale — some of those leads turn into real, paid tiling jobs, and some go nowhere. Google Ads currently can't tell the difference, which means our ad spend is being optimized toward *form fills*, not *real customers*.

We need someone to build (and verify end-to-end) a pipeline that:
1. Captures the Google Click ID (GCLID) when someone clicks our ad and lands on our site
2. Passes that GCLID through to the job record in **ServiceM8** (our job management system)
3. Tracks that job through to a real outcome (quoted, won, lost)
4. Automatically reports **won jobs** back to Google Ads as offline conversions — so Google starts optimizing toward actual paying customers, not just enquiries

Our automation layer is **n8n**, already linked to ServiceM8. There is a partially-built pipeline using ---------- that may be scrapped or migrated — you'll assess and recommend.

## Scope of Work

1. **Audit the website form** — confirm the hidden GCLID field correctly captures the parameter from the ad click and isn't dropped on submission (flagged as a known risk with our current CMS setup).
2. **Verify GCLID reaches ServiceM8** — confirm it's correctly attached to the job/quote record via API or webhook.
3. **Build the n8n workflow** that:
- Monitors job status changes in ServiceM8 (Quote Sent → Won / Lost / Completed)
- Matches the outcome to the stored GCLID
- Formats and uploads the conversion (GCLID, conversion action, value, date) to Google Ads via the **Offline Conversion Import** API on an appropriate schedule
4. **Test end-to-end** with real test leads to confirm conversions appear correctly in Google Ads, attributed to the right keyword and campaign.
5. **Document the finished workflow** — a plain-English walkthrough plus a simple diagram, so our team can troubleshoot without you.
6. **Recommend and implement** whether to repair the existing ---------- piece or rebuild fully in n8n, given ServiceM8 is already integrated there.

## Must-Have Skills

- Demonstrated experience with the **Google Ads API / Offline Conversion Import (OCI)** — please share a specific example or portfolio piece
- Strong **n8n** workflow-building experience
- Comfortable reading/writing to the **ServiceM8 API** or webhooks
- Working knowledge of **Google Tag Manager / JavaScript** for GCLID capture on web forms
- Clear written English and async communication — you'll be working with a NZ-based owner (Christchurch, GMT+12) with limited overlap hours

## Nice to Have

- Experience with Google Ads Enhanced Conversions
- Prior work with home service / trade businesses
- Familiarity with ClickUp for documentation handoff
- Experience with ---------- (to help assess/migrate the existing partial build)

## Deliverables

- A verified, working GCLID → ServiceM8 → n8n → Google Ads pipeline, tested with real data
- Written documentation covering how it works and how to troubleshoot common failures
- A short screen-recorded walkthrough (Loom or similar) of the finished workflow

## How to Apply

Please include:
1. A specific example of an offline conversion import or similar Google Ads API integration you've built (screenshot, Loom, or GitHub link)
2. A short Loom walkthrough of an n8n workflow you've built previously
3. Your estimate of hours/timeline to complete this scope
4. Your hourly or fixed-project rate

---
*Note: rate/budget range and expected hours are intentionally left open above — fill in before posting based on what you're willing to pay.*

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0013
Controller Execution Time ( Jobseekers / Job )  0.0182
Total Execution Time  0.0203
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,511,024 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Tracking-setup-for-my-ads-1723404
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0091 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0006   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1723404
 LIMIT 1 
0.0005   SELECT *
FROM `employers`
WHERE `employer_id` = 836175
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1723404
AND `misc`.`idIS NULL 
0.0007   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-10',ej.date_added) duration_daysDATEDIFF('2026-09-10',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-10',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1723404' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1723404 
0.0019   UPDATE employer_jobs SET hit_counts '***Sep-04-2026=446***Sep-05-2026=89***Sep-10-2026=1' WHERE job_id'1723404'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Sep-2026=535' WHERE job_id'1723404'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1723404' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1723404 
0.0005   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '836175'
AND `date_added` >= '2022-06-08' 
0.0006   select from teasers 
0.0004   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)