{"product_id":"google-ads-competitor-snapshot-to-google-sheets-n8n-apify","title":"Google Ads Competitor Snapshot to Google Sheets (n8n + Apify)","description":"\u003ch3\u003eTrack Google Ads Transparency competitor ads in Google Sheets—automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow runs daily (or on-demand) to snapshot a competitor’s Google Ads Transparency results via Apify and automatically upsert the observed ads into a Google Sheets \u003cb\u003e“Ads”\u003c\/b\u003e tab—so you can maintain a growing log of what competitor domains are showing over time.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eSchedules or manual execution:\u003c\/b\u003e Runs at \u003cb\u003e09:00 UTC\u003c\/b\u003e daily (or you can trigger it manually).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eValidates your configuration:\u003c\/b\u003e Ensures the setup uses a \u003cb\u003esingle lowercase domain\u003c\/b\u003e, the \u003cb\u003e“ads” snapshot mode\u003c\/b\u003e, and a configured \u003cb\u003emaximum charge cap\u003c\/b\u003e before continuing.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eReads prior data:\u003c\/b\u003e Loads existing ad records from the Google Sheets \u003cb\u003e“Ads”\u003c\/b\u003e tab to preserve previously saved keys and delivery status.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eRuns the Apify scraper:\u003c\/b\u003e Starts \u003cb\u003edatasmithlab\/google-ads-transparency-scraper\u003c\/b\u003e, polls Apify until the run succeeds or fails, and retrieves \u003cb\u003eHEALTH\u003c\/b\u003e, \u003cb\u003eTARGETS\u003c\/b\u003e, and the ads dataset.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eValidates result completeness:\u003c\/b\u003e Stops the run if the output appears incomplete or unreliable.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eBuilds a scope-specific key + upserts:\u003c\/b\u003e Creates a scope-specific key for each ad, merges the latest snapshot with saved rows (keeping older rows even if ads disappear), and writes updates back to the \u003cb\u003eAds\u003c\/b\u003e tab.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eSaaS operators monitoring a competitor domain’s Google Ads Transparency ad set over time.\u003c\/li\u003e\n  \u003cli\u003eAutomation engineers maintaining a reliable pipeline from Apify to Google Sheets with run validation and “upsert” behavior.\u003c\/li\u003e\n  \u003cli\u003eMarket research teams building a historical archive of observed ads per competitor.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eIntegrations:\u003c\/b\u003e n8n + \u003cb\u003eGoogle Sheets\u003c\/b\u003e (OAuth) + Apify Actor \u003cb\u003edatasmithlab\/google-ads-transparency-scraper\u003c\/b\u003e\n\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eWorkflow nodes:\u003c\/b\u003e \u003cb\u003eif\u003c\/b\u003e, \u003cb\u003eset\u003c\/b\u003e, \u003cb\u003ecode\u003c\/b\u003e, \u003cb\u003ewait\u003c\/b\u003e, \u003cb\u003ehttp request\u003c\/b\u003e, and \u003cb\u003esticky note\u003c\/b\u003e\n\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eOutput:\u003c\/b\u003e A Google Sheets \u003cb\u003e“Ads”\u003c\/b\u003e tab with upserted ad rows and a run summary (counts and coverage notes).\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46206054793395,"sku":"N8N-20771","price":17.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/naVISUGWW6Z-x43ctNr-_EAx9rw71.png?v=1791796317","url":"https:\/\/buyflowscripts.com\/products\/google-ads-competitor-snapshot-to-google-sheets-n8n-apify","provider":"N8N Commerce","version":"1.0","type":"link"}