(Google) 由于您的用户电子邮件数据字段格式不正确,因此未处理增强型转化

问题描述 投票:0回答:1

我们在加载页面时根据条件逻辑手动跟踪转化。 PHP 脚本将包含 gtag 脚本的 HTML 返回到用户所在的页面。

这是我们知道正在发送的代码:

return <<<HTML
    <script>
        try {
            gtag('config', $GOOGLE_AD_CONVERSION_ID);
            gtag('set', 'user_data', {
                "email": $email_string,
                "phone_number": $phone
            });
            function gtag_report_conversion(url) {
                var callback = function () {
                    console.log('gtag conversion tracked');
                    // We don't use this
                    if (typeof(url) != 'undefined') {
                        window.location = url;
                    }
                };
                gtag('event', 'conversion', {
                    'send_to': $GOOGLE_AD_CLICK_SEND_TO,
                    'value': $amount,
                    'currency': $currency_string,
                    'transaction_id': $transaction_id,
                    'event_callback': callback
                });
                return false;
            }
            gtag_report_conversion(undefined);
        } catch (e) {
            console.error("Error during gtag conversion", e);
        }
    </script>
    HTML;

除了 $amount 和 $phone 之外的所有变量都用引号括起来,以便它们在 Javascript 中是有效的字符串。

收到此错误后我意识到 $phone 也需要包装。这会是它无法识别电子邮件格式正确的原因吗?服务器正在记录它发送的 HTML,所以我看了一下,电子邮件字段对我来说看起来完全正常。删除识别信息的示例:

"[email protected]".

它给出的另一种可能性是电子邮件未经过哈希处理,但在此页面上表示:“该功能在您的第一方客户数据上使用一种名为 SHA256 的安全单向哈希算法,例如作为电子邮件地址,在发送给 Google 之前”,这意味着它不应该被预先散列。

我会等到尝试将 $phone 用引号括起来后才问这个问题,但我的公司非常渴望让它尽快运行。如果问题解决了,我会报告。

总结:这个实现方式有什么问题吗?如果是这样,那有什么问题吗?或者在 Javascript 中不带引号的 $phone 变量也会破坏电子邮件部分吗?

javascript php gtag.js
1个回答
0
投票

将电话号码用引号引起来后,错误消失。

© www.soinside.com 2019 - 2024. All rights reserved.