簡體   English   中英

來自服務器端的 GA4 自定義事件,有人可以告訴我如何在 php 中執行以下代碼嗎?

[英]GA4 custom event from server side, can someone tell me how i can do the following code in php?

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',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});

有人可以告訴我如何在 php 中執行上述代碼嗎? 我嘗試了以下方法,但它不起作用,

$data = array(
                'client_id' => self::ga_extract_cid_from_cookies(),
                'user_id' => 123,
                'timestamp_micros' => time(),
                'non_perosnalised_ads' => false,
                'events' => array(
                    'name' => 'login'
                )
            );
$dataString = json_encode($data);

$post_url = 'https://www.google-analytics.com/mp/collect?api_secret=xxxxxxx&measurement_id=xxxxxxxxx';
        $ch = curl_init($post_url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $datastring);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
        curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);

當我運行上述內容時,它不會向谷歌分析帳戶發送任何事件。 我不知道錯誤是什么以及如何找到它。 需要幫助。

我相信您的示例中的主要問題,除了 $datastring 變量中的拼寫錯誤外,用戶 id 是作為 int 發送的,而不是作為字符串發送的。 我的例子在這里有效:

$ip = str_replace('.', '', $_SERVER['REMOTE_ADDR']);
$data = array(
                'client_id' => $ip,
                'user_id' => '123',
                'events' => array(
                    'name' => 'event_serverside'
                )
            );
$datastring = json_encode($data);
$post_url = 'https://www.google-analytics.com/mp/collect?api_secret=xxxxxxxxxx&measurement_id=xxxxxxxxx';
$ch = curl_init($post_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datastring);
curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_POST, TRUE);
$result = curl_exec($ch);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM