Send Custom Campaign Details to Google Analytics 4

Use Google Analytics 4 (GA4) to obtain metrics for your MobilePush apps.

Prerequisites 

Log the AnalyticsEventCampaignDetails Event 

To log the AnalyticsEventCampaignDetails event:

  1. Extract these parameters from the MobilePush message payload received from Marketing Cloud Engagement:
    • sfmc_journey_id
    • sfmc_journey_name
    • sfmc_activity_id
    • sfmc_activity_name
    • sfmc_channel
    • sfmc_asset_id
    • sfmc_id
  2. Log an AnalyticsEventCampaignDetails event.

The campaign_details event is the first event sent to Google Analytics after receiving the push notification from Engagement. Sending this event first ensures that all subsequent events sent to Google Analytics are associated with the campaign details.

Note

iOS Example 

This example demonstrates how to log the campaign details event in your iOS app using Swift, by extracting the necessary parameters from the userInfo dictionary and logging the AnalyticsEventCampaignDetails event.

1func logAnalyticsEvent(userInfo: [AnyHashable : Any]) -> Void {
2    var params:[String: String] = [:]
3
4    if let sfmc_journey_id = userInfo["sfmc_journey_id"] {
5        params["sfmc_journey_id"] = sfmc_journey_id as? String ?? ""
6    }
7
8    if let sfmc_journey_name = userInfo["sfmc_journey_name"] {
9        params["sfmc_journey_name"] = sfmc_journey_name as? String ?? ""
10    }
11
12    if let sfmc_activity_id = userInfo["sfmc_activity_id"] {
13        params["sfmc_activity_id"] = sfmc_activity_id as? String ?? ""
14    }
15
16    if let sfmc_activity_name = userInfo["sfmc_activity_name"] {
17        params["sfmc_activity_name"] = sfmc_activity_name as? String ?? ""
18    }
19
20    if let sfmc_channel = userInfo["sfmc_channel"] {
21        params["sfmc_channel"] = sfmc_channel as? String ?? ""
22    }
23
24    if let sfmc_asset_id = userInfo["sfmc_asset_id"] {
25        params["sfmc_asset_id"] = sfmc_asset_id as? String ?? ""
26    }
27
28    if let sfmc_id = userInfo["sfmc_id"] {
29        params["sfmc_id"] = sfmc_id as? String ?? ""
30    }
31
32    if params.count > 0 {
33        Analytics.logEvent(AnalyticsEventCampaignDetails, parameters:params)
34    }
35}

See Also