Delen via


Interacties met traceren van pushmeldingen implementeren

Voor meer informatie over de algemene aanpak voor het instellen van pushmeldingen in Customer Insights - Journeys, gaat u naar het overzicht voor het instellen van pushmeldingen.

Als u pushmeldingen in Customer Insights - Journeys wilt inschakelen, moet u de volgende stappen uitvoeren:

  1. Configuratie van de toepassing voor pushmeldingen
  2. Gebruikerstoewijzing voor pushmeldingen
  3. Apparaatregistratie voor pushmeldingen
  4. Pushmeldingen ontvangen op mobiele apparaten
  5. Interacties voor pushmeldingen rapporteren

Om over percentage van het aantal keren openen te kunnen rapporteren, moet de toepassing deze gegevens naar Customer Insights - Journeys terugsturen.

Belangrijk

Als u koppelingen wilt bijhouden die ontvangers openen in meldingen, moet u toestemming voor het bijhouden van klanten verzamelen. Meer informatie over strategieën voor het verzamelen van toestemming van klanten vindt u in Customer Insights - Journeys: Overzicht van toestemmingsbeheer

Gebeurtenissen naar Customer Insights - Journeys verzenden

Aanvraag-URL:

POST {PublicEndpoint}api/v1.0/orgs/<orgId>/pushdatareceiver/events
{ 

    "TrackingId": "00000000-0000-0000-0000-000000000000", 
    "DeviceToken": "%DeviceToken", 
    "PushNotificationStatus":  1

} 

Retourneert: 202 als de aanvraag juist is, anders 400.

Meting Omschrijving
TrackingId Elke melding heeft een tracking-id in de gegevens. Deze identificatie moet worden verzonden voor het traceren van gebeurtenissen.
DeviceToken Uniek token voor het mobiele apparaat dat de gebeurtenis registreert.
PushNotificationStatus Statuscode voor de gebeurtenis. '1' geretourneerd voor Geopende gebeurtenis.
orgId Id van de Customer Insights - Journeys-organisatie.

Voorbeeld van Swift-code om gebeurtenissen in iOS te verzenden

func createInteraction(typeInteraction: Int, trackingId: String) {
    if !trackingId.isEmpty || trackingId == "00000000-0000-0000-0000-000000000000" {
        return
    }
    let orgId = UserDefaults.standard.string(forKey: "organizationId2")
    let endP = UserDefaults.standard.string(forKey: "endpoint2")
    if orgId == nil || endP == nil {
        return
    }
    let url = URL(
        string: String(
            format: "https://%@/api/v1.0/orgs/%@/pushdatareceiver/events", endP ?? "", orgId ?? ""))!
    let session = URLSession.shared
    // now create the URLRequest object using the url object
    var request = URLRequest(url: url)
    request.httpMethod = "POST"  //set http method as POST
    // add headers for the request
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")  // change as per server requirements
    request.addValue("application/json", forHTTPHeaderField: "Accept")
    do {
        // convert parameters to Data and assign dictionary to httpBody of request
        let deviceToken = UserDefaults.standard.string(forKey: "deviceToken")
        let jsonBodyDict = [
            "PushNotificationStatus": String(typeInteraction), "DeviceToken": deviceToken,
            "TrackingId": trackingId,
        ]
        request.httpBody = try JSONSerialization.data(
            withJSONObject: jsonBodyDict, options: .prettyPrinted)
    } catch let error {
        print(error.localizedDescription)
        return
    }
    // create dataTask using the session object to send data to the server
    let task = session.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Post Request Error: \(error.localizedDescription)")
            return
        }
        // ensure there is valid response code returned from this HTTP response
        guard let ttpResponse = response as? HTTPURLResponse,
            (200...299).contains(httpResponse.statusCode)
        else {
            print("Invalid Response received from the server")
            return
        }
        print("Interaction creation successful.")
    }
    // perform the task
    task.resume()
}


Voorbeeld van Java-code om gebeurtenissen in Android te verzenden

Deel 1: De payload genereren

EventTrackingContract: 
public String toJsonString() { 
        JSONObject jsonObject = new JSONObject(); 
        try { 
            jsonObject.put("PushNotificationStatus", mEvent.toString()); 
            jsonObject.put("DeviceToken", mDeviceToken); 

            jsonObject.put("TrackingId", trackingId); 
        } catch (JSONException e) { 
            Log.d(LOG_TAG, "Json exception while creating event tracking contract: " + e.getMessage()); 
        } 
        return jsonObject.toString(); 
    } 
 
EventTypeEnum: 
public enum EventType {
    Opened(1); 
}

Deel 2: HttpClient voor het verzenden van de gebeurtenis naar de server

AsyncTask.execute(new Runnable() { 
            @Override 
            public void run() { 
                SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
                String hostname = sharedPreferences.getString(HOST_NAME, ""); 
                String organizationId = sharedPreferences.getString(ORGANIZATION_ID, ""); 
                final HashMap<String, String> headers = new HashMap<>(); 
                headers.put("Content-Type", "application/json"); 
                final EventTrackingContract eventTrackingContract = new EventTrackingContract(event); 
                Log.d(TAG, eventTrackingContract.toJsonString()); 
                String response = HttpClientWrapper.request(String.format("https://%s/api/v1.0/orgs/%s/pushdatareceiver/events" 

, hostname, organizationId, trackingId), 
                        "POST", headers, eventTrackingContract.toJsonString()); 
                Log.d(TAG, response); 
            } 
        });