Εφαρμογή παρακολούθησης αλληλεπίδρασης ειδοποίησης push
Για να μάθετε περισσότερα σχετικά με τη συνολική προσέγγιση στη ρύθμιση ειδοποιήσεων push στο Customer Insights - Journeys, επισκεφτείτε την επισκόπηση εγκατάστασης ειδοποιήσεων push.
Για να ενεργοποιήσετε τις ειδοποιήσεις push στο Customer Insights - Journeys, θα πρέπει να ολοκληρώσετε τα παρακάτω βήματα:
- Ρύθμιση εφαρμογής ειδοποιήσεων push
- Αντιστοίχιση χρήστη για ειδοποιήσεις push
- Καταχώρηση συσκευής για ειδοποιήσεις push
- Λήψη ειδοποιήσεων push σε συσκευές
- Αναφορά αλληλεπίδρασης για ειδοποιήσεις 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 διαφορετικά
Ονομασία | Description |
---|---|
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);
}
});