Script ini contoh untuk mengirimkan request ke Google Analytics Measurement Protocol GA4 API. Hal-hal yang perlu disiapkan adalah measurement id, api secret dan data yang dikirim. Kegunaanya bisa untuk mengukur/men-track macam-macam seperti pembelian yang terjadi secara offline atau offline purchase.
Dengan memanfaatkan Meaasurement GA4 semacam ini, kita dapat mengaitkan online dengan perilaku offline, mengukur interaksi baik sisi klien maupun sisi server, mengirim peristiwa yang terjadi di luar interaksi pengguna standar misalnya konversi offline, dan mengirim event tracking dari perangkat dan aplikasi yang pengumpulan otomatisnya tidak tersedia.
Kurang lebih scriptnya seperti berikut ini:
<?php // Google Analytics 4 Measurement Protocol API endpoint
$endpoint = 'https://www.google-analytics.com/mp/collect'; // GA4 Measurement ID and API Secret
$measurementId = 'YOUR_MEASUREMENT_ID';
$apiSecret = 'YOUR_API_SECRET';
// Event data to send
$data = [ 'client_id' => 'x', // Client ID
'events' => [
[
'name' => 'offline_purchase', // Event name
'params' => [
'engagement_time_msec' => '100', // Event parameter: engagement_time_msec
'session_id' => '123', // Event parameter: session_id
],
],
],
];
// Prepare the payload
$payload = json_encode($data);
// Initialize cURL
$ch = curl_init();
// Set the cURL options
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'User-Agent: PHP cURL',
'Authorization: Bearer ' . $apiSecret,
]);
// Execute the cURL request
$response = curl_exec($ch);
// Check for cURL errors
if ($response === false) {
$error = curl_error($ch);
// Handle the error appropriately
}
// Get the HTTP status code
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Close the cURL session
curl_close($ch);
// Handle the response based on the status code
if ($status >= 200 && $status < 300) {
// Request successful
// Handle the successful response
} else {
// Request failed
// Handle the failed response
}