ใช้การติดตามการโต้ตอบการแจ้งเตือนแบบพุช
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการโดยรวมในการตั้งค่าการแจ้งเตือนแบบพุชใน Customer Insights - Journeys โปรดไปที่ ภาพรวมการตั้งค่าการแจ้งเตือนแบบพุช
หากต้องการเปิดใช้งานการแจ้งเตือนแบบพุชใน Customer Insights - Journeys คุณต้องทำตามขั้นตอนต่อไปนี้:
- การกำหนดค่าแอปพลิเคชันการแจ้งเตือนแบบพุช
- การแมปผู้ใช้สำหรับการแจ้งเตือนแบบพุช
- การลงทะเบียนอุปกรณ์สำหรับการแจ้งเตือนแบบพุช
- การรับการแจ้งเตือนแบบพุชบนอุปกรณ์เคลื่อนที่
- การรายงานการโต้ตอบสำหรับการแจ้งเตือนแบบพุช
เพื่อรายงานอัตราการเปิด แอปพลิเคชันจำเป็นต้องส่งข้อมูลนี้กลับไปยัง 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);
}
});