gtag इस्तेमाल करने की तरह, Google Analytics मेज़रमेंट प्रोटोकॉल का इस्तेमाल किया जा सकता है, User-ID के साथ उपयोगकर्ता से मिला डेटा भेजा जाता है. इसका इस्तेमाल, उपयोगकर्ता से मिलने वाले डेटा को बेहतर बनाने के लिए किया जा सकता है व्यवहार और कन्वर्ज़न मेज़रमेंट.
मेज़रमेंट प्रोटोकॉल के अनुरोध के साथ उपयोगकर्ता से मिला डेटा भेजने के लिए,
JSON पेलोड में user_data
पैरामीटर. user_id
पैरामीटर
जब भी user_data
दिया जाता है, तब मौजूद होता है.
मेज़रमेंट प्रोटोकॉल में, एक ही नॉर्मलाइज़ेशन और हैशिंग एल्गोरिदम का इस्तेमाल किया जा रहा है
क्योंकि
Google Ads API का बेहतर मेज़रमेंट
सुविधा.
निजता से जुड़ी समस्याओं, ईमेल पते, फ़ोन नंबर, नाम, सरनेम,
और सड़क के पते
SHA-256 एल्गोरिदम पहले
अपलोड किया जा रहा है. हैश किए गए मान को हेक्स स्ट्रिंग फ़ॉर्मैट (स्ट्रिंग) में एन्कोड किया जाना चाहिए
ऑब्जेक्ट जिसमें सिर्फ़ हेक्साडेसिमल अंक हों), जैसे कि88d7ecb5c5b21d7b1
.
किसी हैश फ़ंक्शन को हैश करने से पहले, इसके लिए आपको ये काम करने होंगे:
- आगे और पीछे की खाली सफ़ेद जगहों को हटाएं.
- टेक्स्ट को अंग्रेज़ी के छोटे अक्षरों में बदलें.
- फ़ोन नंबरों को E164 स्टैंडर्ड.
gmail.com
में डोमेन नेम से पहले के सभी पीरियड (.) हटाएं औरgooglemail.com
ईमेल पते.
JSON फ़ाइल का मुख्य हिस्सा
सुरक्षा कुंजी | टाइप | ब्यौरा |
---|---|---|
user_id | स्ट्रिंग | उपयोगकर्ता के लिए यूनीक आइडेंटिफ़ायर. इस आइडेंटिफ़ायर के बारे में ज़्यादा जानकारी के लिए, क्रॉस-प्लैटफ़ॉर्म विश्लेषण के लिए User-ID देखें. |
user_data | ऑब्जेक्ट | उपयोगकर्ता की पहचान करने वाले बेहतर उपयोगकर्ता डेटा फ़ील्ड. |
user_data.sha256_email_address[] | स्ट्रिंग अरै | उपयोगकर्ता का हैश किया गया और कोड में बदला गया ईमेल पता.
इस तरह सामान्य किया गया:
|
user_data.sha256_phone_number[] | स्ट्रिंग अरै | उपयोगकर्ता का हैश किया गया और कोड में बदला गया फ़ोन नंबर.
इस तरह सामान्य किया गया:
|
user_data.address[] | श्रेणी | उपयोगकर्ता की जगह के आधार पर उपयोगकर्ता की पहचान करता है. |
user_data.address[].sha256_first_name | स्ट्रिंग | उपयोगकर्ता का हैश और कोड में बदला गया नाम.
इस तरह सामान्य किया गया:
|
user_data.address[].sha256_last_name | स्ट्रिंग | उपयोगकर्ता का हैश किया गया और कोड में बदला गया उपनाम.
इस तरह सामान्य किया गया:
|
user_data.address[].sha256_street | स्ट्रिंग | हैश और कोड में बदली गई सड़क और उपयोगकर्ता की संख्या.
इस तरह सामान्य किया गया:
|
user_data.address[].city | स्ट्रिंग | उपयोगकर्ता के पते का शहर.
इस तरह सामान्य किया गया:
|
user_data.address[].region | स्ट्रिंग | उपयोगकर्ता के पते के लिए राज्य या इलाका.
इस तरह सामान्य किया गया:
|
user_data.address[].postal_code | स्ट्रिंग | उपयोगकर्ता के पते के लिए पिन कोड.
इस तरह सामान्य किया गया:
|
user_data.address[].country | स्ट्रिंग | उपयोगकर्ता के पते के लिए देश का कोड. आईएसओ 3166-1 ऐल्फ़ा-2 स्टैंडर्ड के हिसाब से फ़ॉर्मैट किया जाता है. |
मेज़रमेंट प्रोटोकॉल से जुड़ा रेफ़रंस दस्तावेज़ देखें देखें.
उपयोगकर्ता से मिला डेटा भेजें
यह gtag के लिए नहीं है उपयोगकर्ता से मिले संवेदनशील डेटा, मेज़रमेंट प्रोटोकॉल को अपने-आप हैश कर देता है डेवलपर को, उपयोगकर्ता से मिले संवेदनशील डेटा को हैश करने का एक सुरक्षित तरीका इस्तेमाल करना ज़रूरी है हैशिंग एल्गोरिदम को कॉल किया गया SHA256 और इसका इस्तेमाल करके उसे कोड में बदलें हेक्स स्ट्रिंग फ़ॉर्मैट करने से पहले इस एपीआई को कॉल करें.
उपयोगकर्ताओं के नाम में sha256
प्रीफ़िक्स से शुरू होने वाले सभी उपयोगकर्ता डेटा फ़ील्ड
सिर्फ़ हैश और हेक्स-एन्कोडेड वैल्यू से भरा जाता है.
उदाहरण के तौर पर दिया गया यह कोड, एन्क्रिप्ट (सुरक्षित) करने और कोड में बदलने के ज़रूरी चरणों को पूरा करता है:
Node.js
const { subtle } = require('crypto').webcrypto;
async function populateSensitiveUserData(value) {
const encoder = new TextEncoder();
// Convert a string value to UTF-8 encoded text.
const value_utf8 = encoder.encode(value);
// Compute the hash (digest) using the SHA-256 algorithm.
const hash_sha256 = await subtle.digest('SHA-256', value_utf8);
// Convert buffer to byte array.
const hash_array = Array.from(new Uint8Array(hash_sha256));
// Return a hex-encoded string.
return hash_array.map(b => b.toString(16).padStart(2, "0")).join('');
};
// Test the encryption function by calling it.
async function main() {
return await populateSensitiveUserData('<value>');
}
main()
.then(v => console.log(v))
.catch(err => console.error(err));
सुविधा के शॉर्टकट के तौर पर, user_data
ऑब्जेक्ट में दोहराए गए सभी फ़ील्ड
(जैसे कि address
, sha256_email_address
, sha256_phone_number
)
ने सरणी के बजाय एकल मान पास किया.
नीचे दिया गया सैंपल कोड, मेज़रमेंट प्रोटोकॉल को कॉल करता है और उपयोगकर्ता का डेटा पास करता है और User-ID शामिल है.
Node.js
const measurement_id = 'G-XXXXXXXXXX';
const api_secret = '<secret_value>';
// Populate mock User Data using the `populateSensitiveUserData` function defined
// above.
const yourEmailSha256Variable = await populateSensitiveUserData('test@yourdomain.com');
const yourPhoneSha256Variable = await populateSensitiveUserData('+15555555555');
const yourFirstNameSha256Variable = await populateSensitiveUserData('john');
const yourLastNameSha256Variable = await populateSensitiveUserData('doe');
const yourStreetAddressSha256Variable = await populateSensitiveUserData('123 main street');
// Populate mock unencrypted user data.
const yourCityVariable = 'san francisco';
const yourRegionVariable = 'california';
const yourPostalCodeVariable = '94000';
const yourCountryVariable = 'US';
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
method: "POST",
body: JSON.stringify({
client_id: 'XXXXXXXXXX.YYYYYYYYYY',
user_id: "XXX",
events: [{
name: 'purchase'
}],
user_data: {
sha256_email_address: yourEmailSha256Variable,
sha256_phone_number: yourPhoneSha256Variable,
address: {
sha256_first_name: yourFirstNameSha256Variable,
sha256_last_name: yourLastNameSha256Variable,
sha256_street: yourStreetAddressSha256Variable,
city: yourCityVariable,
region: yourRegionVariable,
postal_code: yourPostalCodeVariable,
country: yourCountryVariable
}
}
})
});
एक से ज़्यादा वैल्यू
डेवलपर विकल्प के तौर पर, एक से ज़्यादा वैल्यू दे सकते हैं. फ़ोन और ईमेल के लिए ज़्यादा से ज़्यादा तीन वैल्यू दी जा सकती हैं और पते के लिए 2). अगर आपको से ज़्यादा होने चाहिए, तो इसे देने से मैच होने की संभावना बढ़ जाएगी.
Node.js
const measurement_id = 'G-XXXXXXXXXX';
const api_secret = '<secret_value>';
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
method: "POST",
body: JSON.stringify({
client_id: 'XXXXXXXXXX.YYYYYYYYYY',
user_id: "XXX",
events: [{
name: 'purchase'
}],
user_data: {
sha256_email_address: [yourEmailSha256Variable1, yourEmailSha256Variable2],
sha256_phone_number: [yourPhoneSha256Variable1, yourPhoneSha256Variable2],
address: [{
sha256_first_name: yourFirstNameSha256Variable1,
sha256_last_name: yourLastNameSha256Variable1,
sha256_street: yourStreetAddressSha256Variable1,
city: yourCityVariable1,
region: yourRegionVariable1,
postal_code: yourPostalCodeVariable1,
country: yourCountryVariable1
},{
sha256_first_name: yourFirstNameSha256Variable2,
sha256_last_name: yourLastNameSha256Variable2,
sha256_street: yourStreetAddressSha256Variable2,
city: yourCityVariable2,
region: yourRegionVariable2,
postal_code: yourPostalCodeVariable2,
country: yourCountryVariable2
}]
}
})
});