@amboras-dev/google-ads (英语)
谷歌 Amboras商店前端的广告转换跟踪——Amboras等同
"Google Ads Pixel by Nabu" Shopify app. 网易新闻. 通过 Google 标签, 完全客户端
(单位:千美元)gtag.js: 转换跟踪, 加强转换, (中文(简体) ), 同意模式 v2, (中文(简体) ),
确定性去除和准确的多货币换算值.
安装
pnpm add @amboras-dev/google-ads
追踪到什么
| 阶段 | 活动 | 槽 | 类 |
|---|---|---|---|
| 装入标记( 在同意后) + 同意模式 | page_view | rootProviders | A级(GoogleAdsProvider(中文(简体) ) |
| 产品视图 | view_item | pdpAnalytics | A级(GoogleAdsViewItem(中文(简体) ) |
| 添加到手推车 | add_to_cart | cartUpdate | B (跟踪模板) |
| 开始离职 | begin_checkout | checkoutStart | B (跟踪模板) |
| 采购 | purchase | checkoutComplete | B (跟踪模板) |
每起转换起火 gtag('event', 'conversion', { send_to: 'AW-XXXX/<label>', value, currency, transaction_id, items })。 。 。 .
转换 id 和 per- action 转换标签 从商家来的
管理员设置, 由 GET /store/google-ads/config。 。 。 .
建筑
GoogleAdsProvider(A类,rootProviders) ——自足配置和 等待着amboras_consent要给的饼干analytics(重审)amboras-consent-changed) (中文(简体) ). 只有这样它才会设置 同意模式 v2 信号, 装入 AW 标记一次( DOM 特性), 启用增强转换并隐藏{conversionId, labels, enhancedConversions}打开window.__amborasGoogleAds。 。 。 . 在同意之前,没有gtag,dataLayer或AW-脚本存在于页面上.GoogleAdsViewItem(A类,pdpAnalytics(-火灾)view_item。 。 。 .- B级跟踪器 (加到卡/开始检查/购买)改为真实
cart.items编号 :order单行项目 + 来自本地反应的客户电子邮件/电话 范围,因此值和项 id 正确(仅插槽上下文仅显示){cartId,itemCount,total,currency}) (中文(简体) ).
多种货币
每件事都背着买家的真面目 currency_code 并用该值缩放
货币本身的小数 toMajorUnits(amount, currency) (基于Intl) -
没有 一个盲人 /100. JPY/KRW(0-十进制)和KW/BHD(3-十进制)是正确的.
加强转换和同意
- 一级数据
email, (中文(简体) ),phone_number以原始方式转发至gtag('set','user_data',…); Google 的标签正常 + SHA-256 散开 客户端。 任何敏感内容都不要让浏览器损坏, 没有服务器 中继器也参与其中. - 标签和所有转换都打开了
amboras_consent.analytics。 。 。 . 直到它被击倒之前,没有东西可以装载或起火true: 未显示的 cookie( 未显示横幅) 计算为 被拒绝。安博拉斯边缘写着一个给予 在欧洲经济区、英国和瑞士以外的购物者可自动获得饼干。 一次 标记负载, 同意模式 v2 信号 (ad_storage, (中文(简体) ),ad_user_data, (中文(简体) ),ad_personalization, (中文(简体) ),analytics_storage) 反映这种同意.
程序化 API
import { trackPurchase, cartItemsToItems } from '@amboras-dev/google-ads'
trackPurchase({
orderId: order.id,
items: cartItemsToItems(order.items, order.currency_code),
totalMinor: order.total, // minor units; converted per-currency
currency: order.currency_code,
email: order.email,
})