Bagikan melalui


Menerapkan pelacakan interaksi pemberitahuan push

Untuk mempelajari selengkapnya tentang pendekatan keseluruhan untuk menyiapkan pemberitahuan Customer Insights - Journeys push, kunjungi ringkasan penyiapan pemberitahuan push.

Untuk mengaktifkan pemberitahuan Customer Insights - Journeys push, Anda harus menyelesaikan langkah-langkah berikut:

  1. Konfigurasi aplikasi pemberitahuan push
  2. Pemetaan pengguna untuk pemberitahuan push
  3. Pendaftaran perangkat untuk pemberitahuan push
  4. Menerima pemberitahuan push di perangkat
  5. Pelaporan interaksi untuk pemberitahuan push

Untuk melaporkan tarif terbuka, aplikasi perlu mengirim data ini kembali Customer Insights - Journeys.

Penting

Untuk melacak tautan yang dibuka penerima di notifikasi, Anda harus mengumpulkan persetujuan pelacakan pelanggan. Pelajari lebih lanjut strategi untuk mengumpulkan persetujuan pelanggan di Customer Insights - Journeys: Ringkasan pengelolaan persetujuan

Kirim acara ke Customer Insights - Journeys

URL Permintaan:

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

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

} 

Pengembalian: 202 jika permintaan benar, 400 sebaliknya

Nama Description
TrackingId Setiap pemberitahuan memiliki pengidentifikasi pelacakan dalam datanya. Pengenal ini perlu dikirim untuk pelacakan peristiwa.
Token Perangkat Token unik untuk perangkat seluler yang mendaftarkan acara.
PushNotificationStatus Kode status untuk acara tersebut. '1' kembali untuk acara Dibuka.
orgId Pengenal Customer Insights - Journeys organisasi.

Contoh kode Swift untuk mengirim acara 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()
}


Contoh kode Java untuk mengirim peristiwa Android

Bagian 1: Menghasilkan payload

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

Bagian 2: HttpClient untuk mengirim peristiwa ke 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); 
            } 
        });