google_ads account is a Google Ads client account, not a social
network. It publishes nothing and receives no messages: it holds campaigns.
You don’t need your own Google Cloud project, Google Ads API access or
Google’s API review. PlugKit calls the Google Ads API with its own approved
access; your users only sign in with Google.
Search campaigns
Budget, countries, languages, bidding.
Keywords & ads
Ad groups with keywords, responsive search ads.
Insights
Spend and performance at every level.
Offline conversions
Tell Google which leads became customers.
Connect
authUrl in the browser. When the Google user can reach
several client accounts — directly, or through an agency’s manager account —
they pick which ones to add, and each becomes its own PlugKit account. A
manager account on its own isn’t connectable: it holds no campaigns.
Check what you're spending against
Same API as Meta Ads
Google Ads uses the same/v1/ads/{accountId}/… routes as
Meta Ads, and the account decides which one PlugKit
calls. The words are mapped like this:
Build a Search campaign
Campaign — budget and targeting
dailyBudgetis required. The budget lives on the campaign: ad groups have none.countriesdefaults to["FR"]. A Google campaign with no location targeting would serve worldwide.bidStrategy:MAXIMIZE_CLICKS(default),MAXIMIZE_CONVERSIONSorMANUAL_CPC.containsEuPoliticalAdvertisingdefaults tofalse. Google requires this declaration on every new campaign.
Ad group — with its keywords
bidAmount is the max CPC, in minor units. matchType is BROAD by default.
Ad — responsive search ad
{adGroupId}~{adId}: pass them
as-is to PATCH /ads/ACCOUNT_ID/ads/{id}. An ad can be paused or resumed, but
not renamed.
Keywords of an ad group
Insights
levelisaccount,campaign,adsetorad.objectIdfilters at that level.- For the period, use
datePreset(today,yesterday,last_7d,last_14d,last_30d,this_month,last_month) orsince+until(YYYY-MM-DD). spendandcpccome back in major units, as strings ("12.34"), andctras a percentage, the same shape as on Meta.
Offline conversions
Tell Google which clicks turned into real results (a lead that signed, a sale closed by phone), so it optimizes on them rather than on form fills.- In Google Ads, create a conversion action that imports from “Other data sources or CRMs”. Then find its id:
accepts_uploads: true.
- Send the conversions:
- Each conversion needs a
gclid(captured from the landing page URL), anemail, or aphonein E.164 format. - PlugKit hashes email and phone (SHA-256) before they leave.
valueis in major units (490= €490), unlike budgets.orderIdlets Google drop duplicates.- Pass
"validateOnly": trueto check a payload without importing it. - Up to 2,000 conversions per call.
Conversions go through Google’s Data Manager API, which replaced the Google
Ads API conversion upload for new integrations in 2026. You don’t need to do
anything for this: the same connection covers both.
Permissions
The Google consent screen asks for two scopes:adwords (manage campaigns)
and datamanager (import conversions).