Compartir a través de


Implementar el seguimiento de la interacción de notificaciones de inserción

Para obtener más información sobre el enfoque general para configurar notificaciones de inserción en Customer Insights - Journeys, visite la descripción general de la configuración de notificaciones de inserción.

Para habilitar las notificaciones automáticas en Customer Insights - Journeys, debe completar los siguientes pasos:

  1. Configuración de notificación de inserción de aplicación
  2. Asignación de usuarios para notificaciones de inserción
  3. Registro de dispositivo para notificaciones de inserción
  4. Recibir notificaciones de inserción en dispositivos
  5. Informes de interacciones de notificaciones de inserción

Para informar sobre las tasas de apertura, la aplicación debe enviar estos datos a Customer Insights - Journeys.

Importante

Para realizar un seguimiento de los enlaces que los destinatarios abren en las notificaciones, debe recopilar el consentimiento de seguimiento del cliente. Obtenga más información sobre las estrategias para recopilar el consentimiento del cliente en Customer Insights - Journeys: Descripción general de la gestión del consentimiento

Enviar eventos a Customer Insights - Journeys

URL de solicitud:

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

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

} 

Devoluciones: 202 si la solicitud es correcta, 400 de lo contrario

Nombre Descripción
TrackingId Cada notificación tiene un identificador de seguimiento en sus datos. Este identificador debe enviarse para el seguimiento de eventos.
DeviceToken Token único para el dispositivo móvil que registra el evento.
PushNotificationStatus Código de estado del evento. '1' devuelto para el evento Abierto.
orgId Identificador de la organización Customer Insights - Journeys.

Código swift de muestra para enviar los eventos en iOS

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()
}


Código Java de muestra para enviar los eventos en Android

Parte 1: Generar la carga

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); 
}

Parte 2: HttpClient para enviar el evento al servidor

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); 
            } 
        });