AutomationFlowsData & Sheets › Monthly Google Ads Performance Report Sync to Google Sheets

Monthly Google Ads Performance Report Sync to Google Sheets

ByAllan Vaccarizi @growthai on n8n.io

This workflow is for digital marketing agencies or in-house PPC managers who handle multiple Google Ads accounts and need to consolidate monthly campaign performance data into Google Sheets automatically. A schedule trigger fires on the 3rd of each month at 10 AM to start the…

Cron / scheduled trigger★★★★☆ complexity13 nodesGoogle SheetsHTTP Request
Data & Sheets Trigger: Cron / scheduled Nodes: 13 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7387 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "d5ade1d1-117b-4f2a-b0dc-ef12dbb83411",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        -912
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c0c9aed5-4c33-461a-bb27-345896ac2739",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        -1328
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e9a091f5-4df9-4b25-b167-66e5c2f678d4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -528
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5971ba65-ce12-4056-86c4-58b37861225c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        -528
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "ae391634-be2b-46be-a366-e505df11c7ba",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1776,
        -528
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0d2c40ff-3adb-40fa-8b8e-340baba8cace",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2240,
        -528
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "726f5cfa-ae82-4e42-9644-b6408e28667d",
      "name": "Every 3rd of Month at 10am",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "10 du mois",
      "position": [
        1408,
        -368
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "62943e43-3303-4afe-9a95-4a255a8e0ea2",
      "name": "Read Clients from Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1600,
        -368
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "1305861e-3758-4dcc-a4fa-ab75f49dc00f",
      "name": "Loop Over Clients",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1824,
        -368
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "485e8c94-32f8-44a8-8ffa-90fbc405121a",
      "name": "Post Google Ads Query",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2064,
        -368
      ],
      "parameters": {},
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "216880c6-d642-4948-b549-d93ef3d85aff",
      "name": "Append Ads Data to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2496,
        -368
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "5e7037ea-40e2-4ed9-97ea-8a01d9a0ce5f",
      "name": "Flatten API Response Items",
      "type": "n8n-nodes-base.code",
      "position": [
        2288,
        -368
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "cbf44a1b-f391-4753-87ed-7291d264cdee",
      "name": "Wait Between Batches",
      "type": "n8n-nodes-base.wait",
      "position": [
        2720,
        -368
      ],
      "parameters": {},
      "typeVersion": 1.1
    }
  ],
  "connections": {
    "Loop Over Clients": {
      "main": [
        [],
        [
          {
            "node": "Post Google Ads Query",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Between Batches": {
      "main": [
        [
          {
            "node": "Loop Over Clients",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post Google Ads Query": {
      "main": [
        [
          {
            "node": "Flatten API Response Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Clients from Sheets": {
      "main": [
        [
          {
            "node": "Loop Over Clients",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Ads Data to Sheets": {
      "main": [
        [
          {
            "node": "Wait Between Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Every 3rd of Month at 10am": {
      "main": [
        [
          {
            "node": "Read Clients from Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Flatten API Response Items": {
      "main": [
        [
          {
            "node": "Append Ads Data to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is for digital marketing agencies or in-house PPC managers who handle multiple Google Ads accounts and need to consolidate monthly campaign performance data into Google Sheets automatically. A schedule trigger fires on the 3rd of each month at 10 AM to start the…

Source: https://n8n.io/workflows/7387/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This workflow monitors customer health by combining payment behavior, complaint signals, and AI-driven feedback analysis. It runs on daily and weekly schedules to evaluate risk levels, escalate high-r

Google Sheets, HTTP Request, Gmail +2
Data & Sheets

Code Postgres. Uses httpRequest, splitInBatches, postgres, hubspot. Scheduled trigger; 23 nodes.

HTTP Request, Postgres, HubSpot +1
Data & Sheets

Continuous monitoring: Real-time surveillance of supplier performance, financial health, and operational status Risk scoring: AI-powered assessment of supplier risks across multiple dimensions (financ

Postgres, HTTP Request, Gmail +1
Data & Sheets

Regulatory monitoring: Continuously tracks changes in laws, regulations, and compliance requirements across multiple jurisdictions Contract analysis: AI-powered review of existing contracts to identif

HTTP Request, Postgres, Gmail +1
Data & Sheets

Stop manually checking dozens of career pages. This workflow runs every morning, hits the public APIs of 8+ ATS platforms and job boards, normalizes every listing into a single clean schema, and syncs

HTTP Request, Postgres, Google Sheets