A computer-implemented method, comprising: receiving, by a first aggregation server and from each of multiple client devices, impression data that includes, for each impression of a digital component recorded by the client device, (i) a first join key that is based on a first unique identifier for the client device or an application on the client device at which the impression occurred, and (ii) encrypted impression data that has been encrypted using a first public key of the first aggregation server and using a second public key of a second aggregation server different from the first aggregation server; receiving, by the second aggregation server and from each of at least a portion of the multiple client devices, conversion data that includes, for each conversion recorded by the client device, (i) a second join key that is based on a second unique identifier for the client device or an application on the client device at which the conversion occurred and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key, and (iii) encrypted conversion value data; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to decrypt the encrypted impression data and the encrypted conversion data including: identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and sending the decrypted impression data and the decrypted conversion data to one or more reporting systems. receiving, by a first aggregation server and from each of multiple client devices, impression data that includes, for each impression of a digital component recorded by the client device, (i) a first join key that is based on a first unique identifier for the client device or an application on the client device at which the impression occurred, and (ii) encrypted impression data that has been encrypted using a first public key of the first aggregation server and using a second public key of a second aggregation server different from the first aggregation server; receiving, by the second aggregation server and from each of at least a portion of the multiple client devices, conversion data that includes, for each conversion recorded by the client device, (i) a second join key that is based on a second unique identifier for the client device or an application on the client device at which the conversion occurred and (ii) a second value comprising encrypted conversion data that has been encrypted using the first public key and the second public key, and (iii) encrypted conversion value data; performing, by the first aggregation server and the second aggregation server, a multi-party computation process to decrypt the encrypted impression data and the encrypted conversion data including: identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and identifying, based on the first join keys and the second join keys, pairs of encrypted conversion data and corresponding encrypted impression data; and decrypting the impression data and the conversion data for each pair of encrypted impression data and conversion data in multiple stages using a first private key that corresponds to the first public key and a second private key that corresponds to the second public key, wherein each stage comprises: one of the first aggregation server or the second aggregation server decrypting one of the encrypted impression data or the encrypted conversion data of each pair of encrypted conversion data and corresponding encrypted impression data and sending resulting data to the other of the first aggregation server or the second aggregation server; and sending the decrypted impression data and the decrypted conversion data to one or more reporting systems.