Ähnlich wie bei gtag: können Sie das Measurement Protocol von Google Analytics um von Nutzern bereitgestellte Daten zusammen mit der User-ID zu senden, die zur Verbesserung der der Conversion-Analyse und -verhaltensweisen.
Wenn von Nutzern bereitgestellte Daten zusammen mit einer Measurement Protocol-Anfrage gesendet werden sollen, fügen Sie den Parameter
Parameter user_data
in der JSON-Nutzlast. Der Parameter user_id
muss
vorhanden, wenn user_data
angegeben ist.
Das Measurement Protocol verwendet denselben Normalisierungs- und Hash-Algorithmus
als
Optimierte Analysen über die Google Ads API
.
Bei Bedenken im Hinblick auf den Datenschutz: E-Mail-Adressen, Telefonnummern, Vor- und Nachnamen
und Adressen müssen mit der Methode
SHA-256-Algorithmus vor
hochgeladen werden. Der Hash-Wert muss im Hex-String-Format (String) codiert sein.
-Objekt, das nur Hexadezimalziffern enthält), z. B. 88d7ecb5c5b21d7b1
.
Um die Hash-Ergebnisse zu standardisieren, müssen Sie vor dem Hashen eines der müssen Sie Folgendes tun:
- Entfernen Sie Leerzeichen am Anfang und Ende.
- Verwenden Sie nur Kleinbuchstaben im Text.
- Formatieren Sie Telefonnummern entsprechend der E164-Standard:
- Entfernen Sie alle Punkte (.) vor dem Domainnamen in
gmail.com
undgooglemail.com
E-Mail-Adressen.
JSON-Beitragstext
Schlüssel | Typ | Beschreibung |
---|---|---|
user_id | String | Eine eindeutige Kennung für einen Nutzer. Weitere Informationen zu dieser ID finden Sie unter User-ID für plattformübergreifende Analysen. |
user_data | Objekt | Erweiterte Felder für Nutzerdaten, mit denen ein Nutzer identifiziert werden kann. |
user_data.sha256_email_address[] | String-Array | Gehashte und codierte E-Mail-Adresse des Nutzers.
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.sha256_phone_number[] | String-Array | Gehashte und codierte Telefonnummer des Nutzers.
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[] | Array | Identifiziert einen Nutzer anhand des physischen Standorts. |
user_data.address[].sha256_first_name | String | Gehashter und codierter Vorname des Nutzers.
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].sha256_last_name | String | Gehashter und codierter Nachname des Nutzers.
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].sha256_street | String | Gehashte und codierte Straße und Hausnummer des Nutzers.
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].city | String | Ort der Adresse des Nutzers
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].region | String | Bundesland oder Gebiet der Adresse des Nutzers
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].postal_code | String | Postleitzahl der Adresse des Nutzers
Als „ “ normalisiert <ph type="x-smartling-placeholder">
|
user_data.address[].country | String | Ländercode der Adresse des Nutzers Formatiert gemäß ISO 3166-1 ALPHA-2-Norm. |
Weitere Informationen finden Sie in der Referenzdokumentation zum Measurement Protocol. finden Sie weitere Informationen zum Formatieren von Transport und Nutzlast.
Von Nutzern bereitgestellte Daten senden
Im Gegensatz zu gtag, das das Measurement Protocol zum automatischen Hashen sensibler, von Nutzern bereitgestellter Daten Entwickler müssen vertrauliche, von Nutzern bereitgestellte Daten mit einer sicheren Einwegfunktion hashen. Hash-Algorithmus aufgerufen SHA256 und codieren Sie es mit Hexadezimalstringformat bevor Sie die API aufrufen.
Alle Nutzerdatenfelder, die mit dem Präfix sha256
im Namen beginnen, müssen Folgendes sein:
nur gehashte und hexadezimal-codierte Werte enthalten.
Der folgende Beispielcode führt die erforderlichen Verschlüsselungs- und Codierungsschritte aus:
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));
Zur Vereinfachung können alle wiederkehrenden Felder im user_data
-Objekt
(z. B. address
, sha256_email_address
, sha256_phone_number
) kann
hat einen einzelnen Wert
anstelle eines Arrays übergeben.
Mit dem folgenden Beispielcode wird das Measurement Protocol aufgerufen und Nutzerdaten werden übergeben: zusammen mit der 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
}
}
})
});
Mehrere Werte
Entwickler können optional mehrere Werte angeben (bis zu drei für Telefon und E-Mail-Adresse). und 2 für Adresse), indem Sie anstelle eines Strings einen Arraywert verwenden. Wenn Sie mehr als einen Wert haben, erhöht sich die Wahrscheinlichkeit einer Übereinstimmung.
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
}]
}
})
});