Senior PPC Manager

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

TYPE OF WORK

Full Time

SALARY

1800-2000 CAD

HOURS PER WEEK

TBD

DATE UPDATED

Jul 2, 2026

JOB OVERVIEW

About the Role
We are looking for a battle-tested Senior PPC Manager to take complete strategic ownership of our Google Ads MCC. This is a highly autonomous role. You will not be micromanaged, but you will be held accountable to hard performance data.

We need a true media buyer who can build complex, high-budget architectures from scratch, audit underperforming accounts, fix broken tracking structures via Google Tag Manager, and confidently communicate performance directly to our clients and leadership team.

If your instinct is to simply turn on Google’s "Auto-Apply Recommendations" and let the algorithm do the work, this is not the role for you. We are looking for an analytical thinker who questions default settings and aggressively protects our clients' budgets.

What You Will Be Doing
Taking Complete Ownership: Auditing, architecting, and managing Google Ads campaigns (Search, PMax, Retargeting, Display) entirely from scratch.

Technical Troubleshooting: Setting up, testing, and fixing complex conversion tracking using Google Tag Manager and Google Analytics 4 (GA4).

Budget Scaling: Safely scaling client budgets without blowing up their Cost-Per-Acquisition (CPA).

Strategic Auditing: Diagnosing stalling campaigns and identifying whether the bottleneck is the ad, the landing page, or the market.

Client Communication: Proactively communicating performance, wins, and strategic pivots to the internal team and directly to clients.

What You Won't Be Doing
Blindly applying Google Support Reps' "Auto-Recommendations" to artificially inflate optimization scores.

Following rigid call-center scripts or support SOPs.

Acting as a middleman between the client and an overseas fulfillment team—you are the fulfillment.

Must-Have Requirements
4+ years of hands-on, agency-side or in-house media buying experience. (Managing monthly budgets of $50k+).

Mastery of Google Ads Manager (MCC), Google Tag Manager (GTM), and GA4.

Proven ability to build single-theme ad groups, implement strict negative keyword lists, and connect offline CRM conversion data.

Excellent, fluent English communication skills (written and spoken) to confidently lead strategy updates.

A proactive, "fix-it-before-it-breaks" mindset.

???? IMPORTANT DISCLAIMER: Experience working in an outsourced BPO environment (e.g., Concentrix, Teleperformance, TaskUs, TeleTech) as a Google Ads Support Representative, Customer Care Agent, or Account Strategist does NOT qualify for this role. We strictly require a hands-on, independent media buyer.

How to Apply
To ensure we are a great mutual fit, please reply to this posting with the subject line: "Senior PPC: [Your Favorite Book or Movie]"

In your message, include a link to your updated resume and provide a brief (1-2 paragraph) answer to these three questions:

The "Google Rep" Scenario: Google Ads reps frequently call agencies pushing them to enable Auto-Apply Recommendations and Broad Match keywords. What is your philosophy on handling Google Rep recommendations, and why?

The Architecture Scenario: In your current or most recent role, did you primarily inherit existing ad accounts to troubleshoot, or did you build them from scratch? If you built them, walk us through your high-level process for structuring a new local service campaign.

The Bad Data Scenario: You notice a client’s Google Ads dashboard shows 15 conversions this week, but the client emails you angry, saying their CRM only shows 2 new leads. What is your immediate technical troubleshooting process?

Applications that use AI to generate answers or fail to follow the application instructions will be automatically discarded.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0188
Total Execution Time  0.0200
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,312 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/senior-ppc-manager-1653416
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0134 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1653416
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 146833
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1653416
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-18',ej.date_added) duration_daysDATEDIFF('2026-08-18',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-08-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1653416' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1653416 
0.0012   UPDATE employer_jobs SET hit_counts '***May-22-2026=375***May-23-2026=79***May-24-2026=28***May-25-2026=14***May-26-2026=9***May-27-2026=7***May-28-2026=7***May-29-2026=4***May-30-2026=3***May-31-2026=3***Jun-01-2026=8***Jun-02-2026=6***Jun-03-2026=5***Jun-04-2026=14***Jun-05-2026=4***Jun-06-2026=3***Jun-08-2026=150***Jun-09-2026=36***Jun-10-2026=12***Jun-11-2026=18***Jun-12-2026=10***Jun-13-2026=2***Jun-14-2026=1***Jun-15-2026=3***Jun-16-2026=2***Jun-17-2026=139***Jun-18-2026=44***Jun-19-2026=10***Jun-20-2026=2***Jun-21-2026=9***Jun-22-2026=4***Jun-23-2026=3***Jun-24-2026=9***Jun-25-2026=6***Jun-26-2026=9***Jun-27-2026=3***Jun-28-2026=7***Jun-29-2026=7***Jun-30-2026=3***Jul-01-2026=4***Jul-02-2026=115***Jul-03-2026=36***Jul-04-2026=9***Jul-05-2026=5***Jul-06-2026=16***Jul-07-2026=15***Jul-08-2026=10***Jul-09-2026=12***Jul-10-2026=6***Jul-11-2026=1***Jul-12-2026=4***Jul-13-2026=4***Jul-14-2026=7***Jul-15-2026=3***Jul-16-2026=4***Jul-17-2026=2***Jul-18-2026=2***Jul-20-2026=4***Jul-21-2026=5***Jul-22-2026=1***Jul-23-2026=1***Jul-24-2026=9***Jul-25-2026=6***Jul-26-2026=1***Jul-27-2026=2***Jul-28-2026=3***Jul-29-2026=1***Jul-30-2026=2***Jul-31-2026=2***Aug-01-2026=1***Aug-02-2026=2***Aug-03-2026=1***Aug-07-2026=2***Aug-09-2026=1***Aug-18-2026=1' WHERE job_id'1653416'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=529***Jun-2026=529***Jul-2026=292***Aug-2026=8' WHERE job_id'1653416'  
0.0007   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1653416' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1653416 
0.0059   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '146833'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)