gtag kullanmaya benzer şekilde Google Analytics Measurement Protocol kullanmak Kullanıcı tarafından sağlanan verileri User-ID ile birlikte göndererek daha fazla bilgi edineceksiniz.
Kullanıcı tarafından sağlanan verileri Measurement Protocol isteğiyle birlikte göndermek için
JSON yükündeki user_data
parametresi. user_id
parametresi
user_data
her sağlandığında mevcuttur.
Measurement Protocol, aynı normalleştirme ve karma oluşturma algoritmasını kullanır.
olarak
Google Ads API Geliştirilmiş Ölçüm
özelliğini kullanabilirsiniz.
Gizlilikle ilgili endişeler için, e-posta adresleri, telefon numaraları, adlar, soyadı,
ve açık adreslere,
SHA-256 algoritması
yükleniyor. Karma oluşturma işlemi uygulanmış değer, onaltılık dize biçiminde (dize)
nesne (ör. 88d7ecb5c5b21d7b1
) girin.
Karma oluşturma sonuçlarını standartlaştırmak için bu değerler için aşağıdakileri yapmanız gerekir:
- Baştaki ve sondaki boşlukları kaldırın.
- Metni küçük harfe dönüştürün.
- Telefon numaralarını E164 standardı.
gmail.com
hücrelerinde alan adından önce gelen tüm noktaları (.) kaldırın vegooglemail.com
e-posta adresi.
JSON yayın gövdesi
Anahtar | Tür | Açıklama |
---|---|---|
user_id | dize | Kullanıcının benzersiz tanımlayıcısıdır. Bu tanımlayıcı hakkında daha fazla bilgi edinmek istiyorsanız Platformlar arası analiz için User-ID'ye bakın. |
user_data | nesne | Kullanıcıyı tanımlayan gelişmiş kullanıcı verisi alanları. |
user_data.sha256_email_address[] | dize dizisi | Kullanıcının karma oluşturma işlemi uygulanmış ve kodlanmış e-posta adresi.
Şu şekilde normalleştirilmiş:
|
user_data.sha256_phone_number[] | dize dizisi | Kullanıcının karma oluşturma işlemi uygulanmış ve kodlanmış telefon numarası.
Şu şekilde normalleştirilmiş:
|
user_data.address[] | dizi | Kullanıcıyı fiziksel konumuna göre tanımlar. |
user_data.address[].sha256_first_name | dize | Kullanıcının karma oluşturma işlemi uygulanmış ve kodlanmış adı.
Şu şekilde normalleştirilmiş:
|
user_data.address[].sha256_last_name | dize | Kullanıcının karma oluşturma işlemi uygulanmış ve kodlanmış soyadı.
Şu şekilde normalleştirilmiş:
|
user_data.address[].sha256_street | dize | Karma oluşturma işlemi uygulanmış ve kodlanmış sokak ve kullanıcının numarası.
Şu şekilde normalleştirilmiş:
|
user_data.address[].city | dize | Kullanıcının adresinin bulunduğu şehir.
Şu şekilde normalleştirilmiş:
|
user_data.address[].region | dize | Kullanıcının adresinin bulunduğu eyalet veya bölge.
Şu şekilde normalleştirilmiş:
|
user_data.address[].postal_code | dize | Kullanıcının adresinin posta kodu.
Şu şekilde normalleştirilmiş:
|
user_data.address[].country | dize | Kullanıcının adresinin ülke kodu. ISO 3166-1 alpha-2 standardına göre biçimlendirilmiştir. |
Measurement Protocol referans belgelerini inceleyin taşıma ve yükün nasıl biçimlendirildiği hakkında daha fazla bilgi edinin.
Kullanıcı Tarafından Sağlanan Verileri Gönder
gtag yerine, Measurement Protocol, kullanıcı tarafından sağlanan hassas verilere otomatik olarak karma oluşturma işlemi uygular. Geliştiricinin, kullanıcı tarafından sağlanan hassas verilere tek yönlü güvenli bir karma oluşturma işlemi uygulamasını zorunlu kılar adlı karma oluşturma algoritması SHA256 ve kodu onaltılık dize biçimi kontrol edin.
Adlarında sha256
önekiyle başlayan tüm kullanıcı verisi alanları şöyle olmalıdır:
yalnızca karma ve onaltılık kodlanmış değerlerle doldurulur.
Aşağıdaki örnek kod, gerekli şifreleme ve kodlama adımlarını gerçekleştirir:
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));
Kolaylık sağlayan bir kısayol olarak, user_data
nesnesindeki tüm yinelenen alanlar
(address
, sha256_email_address
, sha256_phone_number
gibi) olabilir
bir dizi yerine tekil bir değer iletir.
Aşağıdaki örnek kod, Measurement Protocol'u çağırır ve kullanıcı verilerini iletir. ve User-ID ile birlikte çalışır.
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
}
}
})
});
Birden çok değer
Geliştiriciler isteğe bağlı olarak birden çok değer sağlayabilir (telefon ve e-posta için en fazla 3 değer) ve adres için 2) girin. Fotoğraf çekerseniz birden fazla değer sağlar. Böylece eşleşme olasılığı artar.
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
}]
}
})
});