What you can sync
- Purchase conversions: Track completed purchases as conversions in Google Ads
- Event conversions: Track custom events (sign-ups, leads, etc.) as conversions
- Conversion values: Send transaction amounts to measure ROAS (Return on Ad Spend)
- Order IDs: Link purchases to specific transactions for better tracking
Prerequisites
Before setting up the integration, you’ll need:- A Google Ads account with active campaigns
- Google Ads API access (requires approval from Google)
- A Conversion Action created in Google Ads
- OAuth 2.0 credentials from Google Cloud Console
Getting API access requires applying through the Google Ads API
Center. Basic access is typically
approved within 24 hours for accounts with a billing history.
Getting your credentials
1. Customer ID
Your Google Ads Customer ID is the 10-digit account number:- Log in to Google Ads
- Look for the account number at the top of the page (format:
123-456-7890
) - Remove the dashes when entering in Masivo (e.g.,
1234567890
)
2. Developer Token
Request API access from Google Ads:- Go to Tools & Settings → API Center in Google Ads
- Click Apply for access
- Fill out the application form
- Once approved, copy your Developer Token
Developer tokens are sensitive credentials. Never share them publicly or
commit them to version control.
3. OAuth Credentials
Create OAuth 2.0 credentials in Google Cloud Console:- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Ads API
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- Choose Web application as application type
- Add authorized redirect URIs (e.g.,
http://localhost:3000/oauth2callback
) - Save and copy your Client ID and Client Secret
4. Refresh Token
Generate a refresh token using OAuth 2.0 flow:- Use Google’s OAuth 2.0 Playground or implement the OAuth flow
- Request scopes:
https://www.googleapis.com/auth/adwords
- Complete the authorization flow
- Exchange the authorization code for tokens
- Copy the Refresh Token (it won’t expire unless revoked)
You can use the OAuth 2.0
Playground to quickly generate
a refresh token. Just configure it with your Client ID and Client Secret.
5. Conversion Action ID
Create a conversion action in Google Ads:- Go to Tools & Settings → Conversions in Google Ads
- Click + New conversion action
- Choose Import → Other data sources
- Select Track conversions from clicks
- Configure your conversion settings:
- Category: Purchase, Sign-up, Lead, etc.
- Value: Use different values for each conversion
- Count: Every conversion (for purchases) or One (for sign-ups)
- Click-through conversion window: 30-90 days recommended
- Attribution model: Choose based on your business
- Save and copy the Conversion Action ID (visible in the conversion details URL or settings)
Configuration
Once you have all credentials:- Go to Settings → Integrations → Google Ads in the Masivo dashboard
- Enter your credentials:
- Customer ID: Your 10-digit account number (without dashes)
- Developer Token: From Google Ads API Center
- Client ID: From Google Cloud Console
- Client Secret: From Google Cloud Console
- Refresh Token: Generated via OAuth flow
- Conversion Action ID: From your conversion action
- Enable the features you want to sync:
- Events: Track custom event conversions
- Purchases: Track completed purchase conversions
- Click Save to activate the integration
How it works
Google Ads conversion tracking works by connecting ad clicks to conversions on your site or app:1. Click tracking
When a user clicks your Google Ad, Google automatically adds tracking parameters to the landing URL:- gclid (Google Click ID): Used for web traffic
- gbraid (Google Bounce Rate Analysis ID): Used for iOS 14.5+ traffic
- wbraid (Web to App Bounce Rate Analysis ID): Used for web-to-app conversions
2. Capturing click identifiers
Your website or app must capture these parameters:These identifiers are required for conversion tracking. Without them,
Masivo cannot attribute conversions to your Google Ads campaigns.
3. Sending conversions
When a conversion happens (purchase, sign-up, etc.), send the event to Masivo with the stored click identifier:4. Automatic sync
Masivo automatically:- Validates the event and configuration
- Transforms the data to Google Ads format
- Sends the conversion to Google Ads API
- Handles errors and retries if needed
Data structure
Purchase conversion
Event conversion
iOS conversion (using gbraid)
For iOS 14.5+ users where gclid is not available:Required fields
For all conversions
Field | Type | Description |
---|---|---|
type | string | Either PURCHASE or EVENT |
customer_id | string | Unique customer identifier |
gclid OR gbraid OR wbraid | string | Required: Click identifier from ad |
issued_at | string | ISO 8601 timestamp of the conversion |
currency | string | ISO 4217 currency code (default: USD ) |
For purchases
Field | Type | Description |
---|---|---|
order.value | number | Total order value |
order.purchase_id | string | Unique order identifier |
order.discounted_value | number | Value after discounts (optional) |
For events
Field | Type | Description |
---|---|---|
value | number | Conversion value (for lead value, etc.) |
event_name | string | Name of the custom event (optional) |
Understanding click identifiers
GCLID (Google Click ID)
- Format: Long alphanumeric string (e.g.,
EAIaIQobChMI0tXXyPaE8wIVjRmtBh3XqAZ7EAAYASAAEgJqxfD_BwE
) - Usage: Standard web tracking
- Platform: All web browsers
- Expiration: Valid for 90 days after click
- Priority: Use gclid if available
GBRAID (Google Bounce Rate Analysis ID)
- Format: Alphanumeric string starting with specific prefix
- Usage: iOS 14.5+ tracking without cookies
- Platform: Safari on iOS/iPadOS
- Expiration: Valid for click-through conversion window
- Priority: Use when gclid is not available (iOS)
WBRAID (Web to App Bounce Rate Analysis ID)
- Format: Alphanumeric string
- Usage: Web-to-app conversion tracking
- Platform: Mobile apps (iOS/Android)
- Expiration: Valid for click-through conversion window
- Priority: Use when tracking web clicks that convert in-app
Priority order: Always use
gclid
if available. Only use gbraid
or
wbraid
when gclid
is not present. Never use multiple identifiers in the
same conversion.Conversion value logic
Masivo automatically determines the conversion value based on event type:For PURCHASE events
For EVENT events
Validation
Before sending conversions to Google Ads, Masivo validates:Configuration validation
- ✅ Customer ID is exactly 10 digits (without dashes)
- ✅ Developer token is provided
- ✅ OAuth credentials (client_id, client_secret, refresh_token) are complete
- ✅ Conversion Action ID is configured
Message validation
- ✅ Event type is enabled (events or purchases)
- ✅ At least one click identifier (gclid, gbraid, or wbraid) is present
- ✅ Customer ID exists
- ✅ Timestamp is in valid ISO 8601 format
- ✅ For purchases: order object with value exists
If any required field is missing, the conversion will be skipped and
logged. Check your event payload to ensure all required fields are included.
Best practices
1. Always capture click identifiers
Implement tracking on every landing page:2. Check expiration before sending
3. Send conversions immediately
Track conversions as soon as they happen:4. Use accurate conversion values
- For purchases: Use the actual charged amount (after discounts)
- For events: Use realistic value estimates (e.g., average lead value)
- Always include currency code
5. Set up conversion tracking early
The more conversion data Google Ads has, the better its automated bidding:- Start tracking from day one
- Track multiple conversion types (purchases, sign-ups, leads)
- Be consistent with value attribution
6. Monitor conversion import status
Check your Google Ads account regularly:- Go to Tools & Settings → Conversions
- Select your conversion action
- Check the Status column for import errors
- Review conversion counts match your expectations
Limitations
- Click identifiers are required: Conversions without gclid/gbraid/wbraid will be skipped
- 90-day attribution window: gclid values expire after 90 days (or your configured window)
- Real identifiers only: Cannot use mock or fabricated click identifiers
- API rate limits: Subject to Google Ads API rate limits (typically not an issue)
- Approval required: Requires approved Google Ads API access
Google validates all click identifiers cryptographically. Fabricated or
expired identifiers will be rejected with a validation error.
Troubleshooting
Conversions not showing in Google Ads
Check click identifier capture:- Settings → Integrations → Google Ads
- Ensure “Purchases” or “Events” toggle is ON
- Must be 10 digits without dashes
- Example:
8623528631
✅ - Example:
862-352-8631
❌
“Invalid gclid” errors
- Cause: Expired, modified, or fabricated gclid
- Solution: Ensure you’re capturing the gclid directly from the URL without modification
- Note: gclid values are cryptographically signed and validated by Google
”Configuration incomplete” errors
Check that all credentials are configured:“Conversion action not found” errors
- Verify the Conversion Action ID is correct
- Ensure the conversion action is active in Google Ads
- Check that it’s configured for “clicks” (not “views”)
“Authentication failed” errors
- Refresh token expired: Regenerate your refresh token via OAuth flow
- Invalid credentials: Double-check client_id and client_secret
- API access revoked: Verify your API access status in Google Ads
Conversions delayed or not appearing
- Normal delay: Google Ads can take 3-9 hours to process imported conversions
- Check import history: Tools & Settings → Conversions → Import history
- Verify timestamps: Ensure
issued_at
is accurate and recent
Testing your integration
1. Create a test conversion action
Set up a separate conversion action for testing:- Go to Google Ads → Tools & Settings → Conversions
- Create a new conversion action with “Test” in the name
- Use a low value to identify test conversions
- Use this Conversion Action ID in your test environment
2. Generate a real gclid
You cannot fabricate valid gclid values. To test:- Create a test campaign in Google Ads
- Click your own ad from a real browser
- Capture the gclid from the landing page URL
- Use this gclid in your test conversion (valid for 90 days)
3. Use validation mode
Temporarily enable validation in development:With
validate_only: true
, Google Ads validates your conversion data without
recording it. This is useful for testing configuration and data format.4. Monitor the response
Check Masivo logs for integration status:Common integration patterns
E-commerce checkout
Lead generation
Mobile app (with gbraid)
Next steps
After setting up the integration:- Test thoroughly: Verify conversions appear in Google Ads (allow 3-9 hours)
- Enable automated bidding: Use conversion data for Smart Bidding strategies
- Set up value-based bidding: Optimize for conversion value, not just count
- Track multiple actions: Set up different conversion actions for different goals
- Monitor performance: Check conversion import status regularly
Need help? Check our API Reference for more
details on sending events to Masivo, or contact support for integration
assistance.