CM360 Floodlights
Send Floodlight conversion events to Campaign Manager 360 (CM360) for cross-channel attribution, reach measurement, and campaign reporting across Google Marketing Platform.
Prerequisites
Complete these steps in Google Marketing Platform and Google Cloud Console before configuring the integration in Signal.
Access Campaign Manager 360
Log in to Campaign Manager 360 at campaignmanager.google.com. CM360 is part of the Google Marketing Platform — your organisation must have an active licence. Contact your Google account representative if you need access.
Set Up Floodlight Activities
Navigate to Floodlight > Activities and click New. Create activities for each conversion type you want to track (e.g. purchase, signup, lead). Configure the counting method:
- Standard — counts one conversion per user per session
- Unique — counts one conversion per user per day
- Counter — counts every conversion event
Note the Activity ID for each activity you create.
Each Floodlight activity represents a specific conversion action. Create separate activities for purchases, signups, leads, and other conversion types you want to track independently.
Note the Activity ID and Configuration ID
The Activity ID is shown in the Floodlight Activities list. The Floodlight Configuration ID is an advertiser-level identifier found under Floodlight > Configuration. Both are required for the API integration.
Set Up a Service Account for API Access
Go to Google Cloud Console and create a new service account (or use an existing one):
- Navigate to IAM & Admin > Service Accounts.
- Click Create Service Account.
- Give it a descriptive name (e.g.
datafly-signal-cm360). - Grant the DCM/DFA Reporting and Trafficking API role.
- Create a JSON key and download it securely.
Store the service account JSON key securely. It provides full API access to your CM360 account. Never commit it to source control.
Add the Service Account to CM360
In Campaign Manager 360, go to Admin > User Roles (or ask your CM360 administrator). Add the service account email address (e.g. [email protected]) as a user with the minimum required permissions:
- Floodlight — Insert conversions
- User Profile — Access to the profile ID used for API calls
Note your Profile ID from the CM360 account — it is shown under your user profile or can be retrieved via the CM360 API.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
floodlight_activity_id | string | Yes | The Floodlight activity ID for this conversion type. Found in CM360 under Floodlight > Activities. |
floodlight_configuration_id | string | Yes | Your Floodlight configuration ID (advertiser-level). Found in CM360 under Floodlight > Configuration. |
profile_id | string | Yes | Your CM360 user profile ID for API authentication. Found in CM360 under Account > User Profile. |
Configure in Signal
Management UI
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find CM360 Floodlights or filter by Advertising.
- Enter your
floodlight_activity_id,floodlight_configuration_id, andprofile_id. - Click Install Integration to create the integration with a ready-to-use default configuration.
Management API
curl -X POST http://localhost:8084/v1/admin/integration-catalog/cm360/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "CM360 Floodlights",
"variant": "default",
"config": {
"floodlight_activity_id": "12345678",
"floodlight_configuration_id": "98765432",
"profile_id": "1234567"
},
"delivery_mode": "server_side"
}'Event Mapping
Conversions are mapped to Floodlight activities. Each Floodlight activity in CM360 represents a specific conversion action. You can create multiple Signal integrations — one per activity — or use blueprint logic to route events to the correct activity.
| Datafly Event | Floodlight Activity | Key Properties |
|---|---|---|
Order Completed | Purchase activity | order_id, value, currency, quantity |
Signed Up | Signup activity | user_id |
Lead Generated | Lead activity | lead_id, value |
Product Viewed | Product view activity | product_id |
| Custom events | Custom Floodlight activity | Any properties mapped in blueprint |
Floodlight Custom Variables
CM360 supports custom Floodlight variables (u1 through u100) for passing additional conversion data:
| Parameter | Type | Description |
|---|---|---|
u1 | string | Custom variable 1 (e.g. order ID) |
u2 | string | Custom variable 2 (e.g. product category) |
u3 – u100 | string | Additional custom variables |
Map these in the blueprint configuration to pass event properties as Floodlight custom variables.
Example: Purchase Conversion
Datafly.js call:
_df.track("Order Completed", {
order_id: "ORD-001",
total: 249.99,
currency: "GBP",
quantity: 3
});CM360 Conversions API payload sent by Signal:
{
"conversions": [
{
"floodlightActivityId": "12345678",
"floodlightConfigurationId": "98765432",
"ordinal": "ORD-001",
"timestampMicros": "1711234567000000",
"value": 249.99,
"quantity": 3,
"customVariables": [
{ "type": "U1", "value": "ORD-001" }
]
}
]
}Testing
Send a Test Event
Use the Datafly.js snippet on a test page to fire an Order Completed or custom conversion event.
Verify in Signal
Open the Live Events view in the Management UI. Confirm the event appears and is routed to the CM360 Floodlights integration.
Verify in Campaign Manager 360
In CM360, navigate to Reporting > Floodlight and check for the test conversion. Floodlight conversions may take up to 24 hours to appear in standard reports. For real-time verification, use the Verification tab under your Floodlight activity.
Check Delivery Status
In Signal, navigate to the integration detail page and check the Delivery Log for successful delivery confirmations or error details.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
403 Forbidden | Service account lacks CM360 permissions | Add the service account email to CM360 under Admin > User Roles with Floodlight insert permissions. |
404 Not Found | Invalid profile_id | Verify the profile ID in CM360. It must match the user profile associated with the service account. |
INVALID_FLOODLIGHT_ACTIVITY_ID | Activity ID does not exist or is archived | Check the activity is active in CM360 under Floodlight > Activities. |
| Conversions not appearing in reports | Incorrect floodlight_configuration_id | Verify the Configuration ID matches your advertiser’s Floodlight configuration in CM360. |
PERMISSION_DENIED on API call | API not enabled in Google Cloud | Enable the DCM/DFA Reporting and Trafficking API in Google Cloud Console for your project. |
| Duplicate conversions | Missing ordinal value | Ensure a unique order ID or event identifier is passed. CM360 uses the ordinal field for deduplication. |
| Token refresh failures | Service account key expired or revoked | Generate a new JSON key in Google Cloud Console and update the Signal configuration. |
Delivery
Events are delivered server-side from your Datafly Signal infrastructure directly to the CM360 Conversions API. Authentication uses the Google service account credentials configured during setup. No client-side scripts are loaded for this integration.
Visit CM360 Conversions API documentation for full API reference and additional setup instructions.