Споделяне чрез


Внедряване на проследяване на взаимодействието с насочени известия

За да научите повече за цялостния подход за настройване на насочени известия в Customer Insights - Journeys, посетете прегледа на настройката за насочени известия.

За да разрешите насочените известия в, Customer Insights - Journeys трябва да изпълните следните стъпки:

  1. Конфигуриране на приложението за насочени известия
  2. Съпоставяне на потребители за насочени известия
  3. Регистрация на устройство за насочени известия
  4. Получаване на насочени известия на устройства
  5. Отчитане на взаимодействия за насочени известия

За да докладва за отворените тарифи, приложението трябва да изпрати тези данни обратно Customer Insights - Journeys.

Важно

За да проследявате връзките, които получателите отварят в известията, трябва да съберете съгласие за проследяване на клиента. Научете повече за стратегиите за събиране на съгласие от клиенти в Customer Insights - Journeys: Общ преглед на управлението на съгласията

Изпращане на събития до Customer Insights - Journeys

URL адрес на заявка:

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

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

} 

Връщания: 202, ако заявката е вярна, 400 в противен случай

Име Описание
ИД на проследяване Всяко известие има идентификатор за проследяване в данните си. Този идентификатор трябва да бъде изпратен за проследяване на събития.
DeviceToken Уникален маркер за мобилното устройство, регистриращо събитието.
PushNotificationStatus Код на състоянието на събитието. '1' се връща за Отворено събитие.
оргИд Идентификатор на Customer Insights - Journeys организацията.

Примерен Swift код за изпращане на събития в 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()
}


Примерен Java код за изпращане на събития в Android

Част 1: Генериране на полезния товар

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

Част 2: HttpClient за изпращане на събитието до сървъра

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