Skip to main content
The List Campaigns node pulls the active Search campaigns from a connected Google Ads customer account. It’s designed as an upstream lookup step: its job is to provide a campaign list that subsequent Google Ads nodes use to filter, label, and scope their data pulls before you run performance analysis.

When to use this node

Use the List Campaigns node for tasks such as:
  • Scoping downstream nodes to specific campaigns: get campaign IDs and names first, then pass them into Search Terms, Keywords, Landing Pages, or Ads as a filter rather than pulling data across all campaigns at once
  • Labeling campaign-level performance data: enrich downstream node outputs with campaign names so LLM-generated summaries are human-readable
  • Building campaign-aware agents at scale: especially useful for Manager accounts (MCC) with many campaigns, where structured campaign discovery is needed before diving into metrics

Node configuration

Google Integration (required)

Select a previously connected Google account, or click + Add integration and follow the prompts to connect one. This is a one-time setup. Once you add an integration, it’s available in all future sessions until you remove it in Profound Settings > Integrations. Select the Google Ads customer account from the dropdown. The picker handles both Manager accounts and sub-account selection.

Output label

Enter a descriptive label for this step’s output, for example campaigns or active_campaigns. The label becomes the variable name you reference in later nodes.

Output

The node outputs your campaigns data in JSON format, including campaign names, dates, and statuses. Pass the output to:
  • Search Terms: Filter by campaign ID to get actual user queries for that campaign, with CTR, CPC, CVR, CPA, and ROAS
  • Keywords: Scope the keyword quality score and efficiency audit to specific campaigns
  • Ads:​ Pull only the RSA creative assets (headlines and descriptions) for a specific campaign
  • Prompt LLM: Feed the campaign list for summarization, naming convention audits, or campaign structure analysis
  • Code node or Conditional node to filter, sort, or slice campaigns data, or branch workflow logic based on factors such as status or presence of a campaign

Example usage: Weekly negative keyword discovery

Set up an Agent to scan last week’s search terms across all campaigns, identify wasted spend, and post actionable negative keyword recommendations to Slack. Here is the example structure: 1. List Campaigns node
  • Select your Google Integration and set Google Ads Account to your Google Ads account
  • Set Output label to campaigns
2. Search Terms node
  • Repeat the Google Integration and Ads Account from the previous step
  • Set Date Range to Last 7 days
  • Set Campaigns, Ad Groups, and Output Fields filters as needed
  • Set Output label to search_term_data
The data from both List Campaigns and Search Terms nodes can be too large to send directly to the Prompt LLM node. Use Agent Assistant to build the data preprocessing steps, such as the Code node for trimming search term data, into your Agent.
3. Prompt LLM node
  • Enter the prompt:
  • Set Output label to negative_keyword_report
Check out our prompt best practices guide for the Prompt LLM node.
4. Slack node
  • Select the Slack workspace and channel to receive updates
  • Input the message text, or use the negative_keyword_report variable in the Message field
Schedule the Agent to run weekly, for example every Monday at 9 AM.

Best practices

Use to support other Google Ads nodes

List Campaigns is a lookup step. Its full value comes through when its output flows into Search Terms, Keywords, Landing Pages or Ads as a scoping filter.

Use Iterations for multi-campaign Agents

To run downstream nodes for each campaign individually, wrap them in an ​Iteration block that loops over each campaign ID returned by List Campaigns.

Test with a single campaign first

On accounts with many campaigns, scope to one campaign ID in your test run to validate the pipeline before scaling.