| Same job, different reach |
| Setup | Google sign-in and one server URL | Your Google Cloud project with API access, an OAuth client, then a local install or your own Cloud Run deploy |
| Steps before your first question | 3: connect Google Ads in Porter, paste the URL, sign in with Google | A Cloud project with Google Ads API access, an OAuth client, then a pipx install or your own Cloud Run deploy |
| Credential files on your computer | None | An OAuth client ID and secret, or application default credentials |
| Tools | Read, write and remove actions for campaigns, ad groups, ads, keywords, budgets and assets | 3: list_accessible_customers, search, get_resource_metadata |
| Developer token | Not needed | Not needed since Google’s sunset |
| Query style | Ready-made fields with the labels you see in Google Ads | GAQL queries |
| Manager accounts | Client accounts under your manager account, with each write sent to the one you name | The accounts your credentials can access |
| Writes | Campaigns, budgets, ad groups, keywords, ads and assets | Read-only in the current release |
| Approval controls | Created paused, approval before every write | No writes to approve |
| Price | Included in every Porter plan, the free plan too | Open code you host yourself |
| Only one side |
| Other channels | 30+ data sources: Meta Ads, LinkedIn Ads, GA4, HubSpot, Shopify and more | — |
| Cross-channel questions in one conversation | Yes | — |
| Blending sources into one number | Yes | — |
| Live dashboards | Yes | — |
| Scheduled reports and alerts | Yes | — |
| Ad copy, image and video generation | Yes | — |
| Attribution to GA4 and CRM data | Yes | — |
| Data Studio, Google Sheets, BigQuery, Power BI | Yes | — |
| Skills for whole tasks | Yes | — |