Jaa


Palveluilmoitusten vuorovaikutuksen seurannan toteutus

Lisätietoja palveluilmoitusten määrittämisestä Customer Insights - Journeysissa yleensä: palveluilmoitusten määritysten yleiskatsaus.

Jos haluat ottaa palveluilmoitukset käyttöön Customer Insights - Journeysissa, toimi seuraavasti:

  1. Palveluilmoitussovelluksen määritys
  2. Käyttäjän yhdistämismääritys palveluilmoituksia varten
  3. Laitteen rekisteröinti palveluilmoituksia varten
  4. Palveluilmoitusten vastaanotto laitteissa
  5. Vuorovaikutusraportointi palveluilmoituksia varten

Jotta sovellus voi raportoida avausmääristä, sovelluksen on lähetettävä nämä tiedot takaisin Customer Insights - Journeysiin.

Tärkeää

Jos haluat seurata linkkejä, joita vastaanottajat avaavat ilmoituksissa, sinun on kerättävä asiakkaan seurantasuostumus. Lisätietoja asiakkaiden suostumusten keräämisen strategioista Customer Insights - Journeysissa: Suostumustenhallinnan yleiskatsaus

Tapahtumien lähettäminen Customer Insights - Journeysiin

Pyydä URL-osoite:

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

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

} 

Palautukset: 202, jos pyyntö on oikein, muuten 400

Name Description
TrackingId Jokaisen ilmoituksen tiedoissa on seurantatunniste. Tämä tunniste on lähetettävä tapahtumien seurantaa varten.
DeviceToken Yksilöllinen tunnus tapahtuman rekisteröivälle mobiililaiteelle.
PushNotificationStatus Tapahtuman tilakoodi. Arvo 1 palautettu avatun tapahtuman osalta.
orgId Customer Insights - Journeys -organisaation tunniste.

Esimerkki Swift-koodista tapahtumien lähettämiseksi iOS:ssä

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


Esimerkki Java-koodista tapahtumien lähettämiseksi Androidissa

Osa 1: Luo hyötykuorma

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

Osa 2: HttpClient tapahtuman lähettämisestä palvelimeen

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