IntegrationsAdvertisingCM360 Floodlights

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):

  1. Navigate to IAM & Admin > Service Accounts.
  2. Click Create Service Account.
  3. Give it a descriptive name (e.g. datafly-signal-cm360).
  4. Grant the DCM/DFA Reporting and Trafficking API role.
  5. 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

FieldTypeRequiredDescription
floodlight_activity_idstringYesThe Floodlight activity ID for this conversion type. Found in CM360 under Floodlight > Activities.
floodlight_configuration_idstringYesYour Floodlight configuration ID (advertiser-level). Found in CM360 under Floodlight > Configuration.
profile_idstringYesYour CM360 user profile ID for API authentication. Found in CM360 under Account > User Profile.

Configure in Signal

Management UI

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find CM360 Floodlights or filter by Advertising.
  4. Enter your floodlight_activity_id, floodlight_configuration_id, and profile_id.
  5. 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 EventFloodlight ActivityKey Properties
Order CompletedPurchase activityorder_id, value, currency, quantity
Signed UpSignup activityuser_id
Lead GeneratedLead activitylead_id, value
Product ViewedProduct view activityproduct_id
Custom eventsCustom Floodlight activityAny properties mapped in blueprint

Floodlight Custom Variables

CM360 supports custom Floodlight variables (u1 through u100) for passing additional conversion data:

ParameterTypeDescription
u1stringCustom variable 1 (e.g. order ID)
u2stringCustom variable 2 (e.g. product category)
u3u100stringAdditional 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

SymptomCauseResolution
403 ForbiddenService account lacks CM360 permissionsAdd the service account email to CM360 under Admin > User Roles with Floodlight insert permissions.
404 Not FoundInvalid profile_idVerify the profile ID in CM360. It must match the user profile associated with the service account.
INVALID_FLOODLIGHT_ACTIVITY_IDActivity ID does not exist or is archivedCheck the activity is active in CM360 under Floodlight > Activities.
Conversions not appearing in reportsIncorrect floodlight_configuration_idVerify the Configuration ID matches your advertiser’s Floodlight configuration in CM360.
PERMISSION_DENIED on API callAPI not enabled in Google CloudEnable the DCM/DFA Reporting and Trafficking API in Google Cloud Console for your project.
Duplicate conversionsMissing ordinal valueEnsure a unique order ID or event identifier is passed. CM360 uses the ordinal field for deduplication.
Token refresh failuresService account key expired or revokedGenerate 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.