Catatan aktivitas kontak

Sebelum memulai, kontribusikan kontak Anda ke Windows.

Anda dapat merekam aktivitas kontak untuk mewakili interaksi yang bermakna antara pengguna dan kontak dalam aplikasi Anda. Aktivitas kontak bertindak sebagai sinyal interaksi ringan yang membantu Windows memahami bagaimana pengguna terlibat dengan kontak di seluruh pengalaman terkait orang seperti People Widgets, Share Sheet, dan Windows Search Box secara bertahap sesuai rencana.

Note

Referensi ContactAnnotationOperations saat ini tidak mencantumkan versi Windows atau SDK untuk nilai Activity, dan artikel ini tidak menyatakan pengalaman mana yang menggunakan aktivitas kontak hari ini. Riwayat versi dalam referensi mencantumkan Share (Windows 10 versi 1703, SDK 15063) sebagai nilai terdokumentasi terbaru. Periksa referensi API untuk pembaruan sebelum Anda bergantung pada Activity dalam aplikasi yang menargetkan versi SDK yang lebih lama.

Setiap aktivitas merekam tiga informasi utama:

  • Kontak — kontak yang terlibat dalam interaksi
  • Apa — jenis interaksi yang terjadi
  • Ketika — waktu di mana interaksi terjadi

Untuk merekam aktivitas kontak, aplikasi harus membuat ContactAnnotation yang terkait dengan kontak dan mengatur SupportedOperations ke ContactAnnotationOperations.Activity. Windows menafsirkan anotasi dengan jenis operasi ini sebagai sinyal interaksi yang terkait dengan kontak.

Setiap aktivitas mewakili satu peristiwa interaksi dan harus direkam secara terpisah. Saat mengirimkan beberapa aktivitas kontak, lakukan iterasi melalui rekaman interaksi dan panggil TrySaveAnnotationAsync untuk setiap peristiwa. Perulangan tidak menyediakan API batch atau tidak mengurangi overhead sinkronisasi.

Payload aktivitas kontak

Untuk merekam aktivitas kontak, atur ProviderProperties["ActivityPayload"] pada ContactAnnotation ke string JSON yang menjelaskan interaksi.

Payload harus mencakup properti berikut:

Property Description
ActivityType Mengidentifikasi jenis interaksi.
ActivityTimestampUnix Waktu ketika interaksi terjadi, dinyatakan sebagai waktu Unix UTC dalam hitungan detik.

Gunakan kunci ActivityPayload dan nama properti payload ActivityTimestampUnix dan ActivityType persis seperti yang ditunjukkan. Nama-nama ini membentuk spesifikasi berbasis string untuk menjelaskan aktivitas.

Jenis aktivitas kontak yang didukung

Bidang ActivityType mengidentifikasi interaksi yang terjadi antara pengguna dan kontak. Windows saat ini mendukung jenis aktivitas berikut.

Jenis Aktivitas Description
message Mengirim atau menerima pesan dengan kontak.
call Memulai atau menjawab panggilan audio atau video.
email Mengirim atau menerima email.
meeting Bergabung atau menjadwalkan rapat yang melibatkan kontak.
share Berbagi konten dengan kontak.
social Berinteraksi dengan kontak melalui media sosial.
profileInteraction Membuka atau berinteraksi dengan profil kontak.

Aplikasi-aplikasi harus memilih jenis aktivitas yang paling mewakili interaksi pengguna yang terjadi dalam aplikasi.

Merekam contoh aktivitas kontak

Contoh berikut menunjukkan cara merekam interaksi perpesanan sebagai aktivitas kontak.

long nowUnix = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

var payload = new
{
    ActivityType = "message",
    ActivityTimestampUnix = nowUnix
};

var annotation = new ContactAnnotation
{
    ContactId = contact.Id,
    RemoteId = contact.RemoteId,
    SupportedOperations = ContactAnnotationOperations.Activity
};

annotation.ProviderProperties["ActivityPayload"] =
    JsonSerializer.Serialize(payload);

bool saved = await this.contactAnnotationList.TrySaveAnnotationAsync(annotation);
if (!saved)
{
    // The annotation wasn't saved, so Windows didn't receive this activity.
    // Log the failure or retry later. Don't treat the interaction as recorded.
    System.Diagnostics.Debug.WriteLine(
        $"Failed to save contact activity for contact {contact.RemoteId}.");
}

TrySaveAnnotationAsync mengembalikan false ketika tidak dapat menyimpan anotasi, jadi periksa hasilnya sebelum Anda menganggap aktivitas direkam. Hasil true berarti anotasi disimpan. Ini tidak menunjukkan bagaimana Windows nanti memproses aktivitas.

Model akses kegiatan kontak

Aktivitas kontak hanya dapat ditulis dari perspektif aplikasi Anda. Aplikasi Anda dapat mengirimkan rekaman aktivitas, tetapi saat ini Windows tidak mendukung pengambilan atau penghapusan rekaman aktivitas yang dikirimkan sebelumnya secara eksplisit. pembersihan siklus hidup yang dikelola Windows bersifat terpisah, seperti yang dijelaskan di bagian berikutnya.

Jika aplikasi Anda perlu menyimpan atau mengelola riwayat interaksi, simpan di penyimpanan atau layanan backend Anda sendiri.

Siklus hidup aktivitas kontak

Aktivitas kontak dikaitkan dengan kontak melalui RemoteId yang disediakan aplikasi.

Jika kontak dihapus atau RemoteId terkait dihapus, aktivitas kontak yang ditautkan ke kontak tersebut akan dihapus secara otomatis. Demikian pula, ketika aplikasi dihapus instalasinya atau item terkait UserDataAccount dihapus, Windows secara otomatis menghapus kontak dan aktivitas kontak yang direkam oleh aplikasi tersebut.

Pemrosesan dan retensi aktivitas kontak

Aktivitas sentuhan diproses oleh Windows sebagai sinyal interaksi.

Periode retensi, kedaluwarsa (TTL), agregasi, dan evaluasi aktivitas kontak dikelola secara internal oleh Windows. Aplikasi tidak mengontrol berapa lama aktivitas disimpan atau bagaimana aktivitas tersebut diproses setelah pengiriman.

Aktivitas kontak harus mewakili interaksi pengguna asli dan tidak boleh dihasilkan dengan maksud memengaruhi peringkat kontak atau visibilitas. Windows menentukan bagaimana sinyal ini berkontribusi pada pengalaman yang berkaitan dengan orang menggunakan logika platform internal.