Setting up Google Ads on a Wix site is a strict two-step prerequisite for everything else in this area: (1) install the Wix Google Ads app, then (2) create the Google Ads account. Campaigns, suggestions, analytics, and billing all fail with ACCOUNT_NOT_FOUND (or an app-not-installed error) until both are done. This is a one-time setup per site.
Base URL for all endpoints: https://www.wixapis.com/google-ads/v1. The <AUTH> placeholder is shorthand for the Authorization header; body-bearing calls also need Content-Type: application/json.
This flow creates a billable advertising account. Creating the account and launching campaigns spends the site owner's real money. Confirm intent with the user before calling Create Account, and surface the chosen currency.
Before installing or creating anything, check for an existing account. Get Account For Current Site returns an empty response (not an error) when none exists, so it's the safe probe.
account present → setup is already done. Skip to whatever the user actually wants (create a campaign, view analytics, etc.). Do not create a second account — Create Account returns ACCOUNT_ALREADY_EXISTS.{} → no account yet. Continue to STEP 1.Example response for an existing account:
account.id is the Wix-internal GUID used as campaign.accountId when creating campaigns. googleAccountId is the underlying Google Ads customer ID (display only). currentBudget is remaining ad credit — a negative value means outstanding debt not yet charged.
Idempotent — safe to call even if already installed (no effect). Required before Create Account.
Returns {}. Always run this before the first Create Account on a site.
New accounts in supported currencies can attach an incentive — a promotional credit granted after the account spends a threshold. Skip this step for unsupported currencies (the call returns no offers).
Returns up to three tiers (lowOffer, mediumOffer, highOffer), each with an incentiveId, an awardAmount (credit granted), and a requiredAmount (spend needed to unlock it), plus a consolidatedTermsAndConditionsUrl. Present the tiers to the user and let them pick; carry the chosen incentiveId into STEP 3 as selectedIncentiveId. The incentive is recorded now and applied automatically once the account's budget is assigned — there is no separate apply call in this flow.
Requires currency (ISO-4217, e.g. USD). Pass selectedIncentiveId if the user picked one in STEP 2. Confirm with the user before this call — it provisions a billable account.
Response — save account.id for campaign creation:
The currency choice is durable and drives budget minimums/maximums and manager-account selection — settle it with the user before creating. A currency Google doesn't natively support (only USD, EUR, GBP, JPY are native) still works; the account reports budgetInSupportedCurrency as the converted amount.
UpdateAccount is a partial update — send only the fields you're changing. Merchant Center linking is needed before a retail Performance Max campaign can serve product ads.
The response's merchantCenterAccountLinkStatus.status starts at PENDING — the Merchant Center account owner must approve the link before it becomes ENABLED.
Conversion actions (Purchase, Page View, etc.) are what campaigns optimize toward. To inspect them:
DeleteAccount unlinks and removes the account. This is destructive and cannot be undone — always confirm with the user first, and prefer pausing campaigns over deleting the whole account when the user just wants to stop spending.
Returns {}. Errors with ACCOUNT_NOT_FOUND if no account exists.
| Symptom | Cause | Fix |
|---|---|---|
ALREADY_EXISTS / ACCOUNT_ALREADY_EXISTS on Create Account | An account is already linked to this site | Don't create another — use Get Account For Current Site and continue with the existing account.id |
INTERNAL / CREATION_BLOCKED on Create Account | Account creation is temporarily disabled platform-wide | Not a caller error; surface it and retry later |
ACCOUNT_NOT_FOUND on any campaign/analytics/billing call | Setup wasn't completed (no account) | Run this recipe: install the app, then Create Account |
| App-not-installed error before Create Account | STEP 1 was skipped | Call Install (STEP 1); it's idempotent |
| Get Incentives returns no offers | Currency not supported for incentives | Proceed to Create Account without selectedIncentiveId |
NOT_FOUND / ACCOUNT_NOT_FOUND on Delete Account | No account exists for the site | Nothing to delete; confirm with Get Account For Current Site |
Last updated: 30 July 2026