Бөлісу құралы:


Push-хабарландырудың өзара әрекеттестігін бақылауды жүзеге асыру

Push хабарландыруларын орнатудың жалпы тәсілі туралы Customer Insights - Journeys қосымша ақпарат алу үшін push хабарландыруларын орнату шолуын қараңыз.

Customer Insights - Journeysішінде push хабарландыруларын қосу үшін келесі қадамдарды орындау қажет:

  1. Push хабарландыру қолданбасының конфигурациясы
  2. Push хабарландырулары үшін пайдаланушы салыстыру
  3. Push хабарландырулары үшін құрылғыны тіркеу
  4. Құрылғыларда push хабарландыруларын алу
  5. Push хабарландырулары үшін өзара әрекеттесу туралы есеп беру

Ашық тарифтер туралы есеп беру үшін қолданба бұл деректерді кері жіберуі керек 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

Аты Сипаттама
TrackingId Әрбір хабарландырудың деректерінде бақылау идентификаторы болады. Бұл идентификатор оқиғаны бақылау үшін жіберілу керек.
DeviceToken Оқиғаны тіркейтін мобильді құрылғыға арналған бірегей белгі.
PushNotificationStatus Оқиғаның күй коды. Ашылған оқиға үшін "1" қайтарылды.
orgId Ұйымның 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); 
            } 
        });