跟踪
Meta Pixel
在您的 Nuxt 应用中使用 Meta Pixel。
Meta Pixel 允许您衡量、优化和构建 Facebook 广告系列的受众。
Nuxt Scripts 提供一个注册表脚本可组合函数 useScriptMetaPixel
,以便轻松地将 Meta Pixel 集成到您的 Nuxt 应用中。
Nuxt 配置设置
在您的 Nuxt 应用中全局加载 Meta Pixel 的最简单方法是使用 Nuxt 配置。或者,您可以直接使用 useScriptMetaPixel 可组合函数。
如果您不打算发送自定义事件,则可以使用 环境覆盖 在开发中禁用该脚本。
export default defineNuxtConfig({
scripts: {
registry: {
metaPixel: {
id: 'YOUR_ID'
}
}
}
})
使用环境变量
如果您希望使用环境变量配置您的 ID。
nuxt.config.ts
export default defineNuxtConfig({
scripts: {
registry: {
metaPixel: true,
}
},
// you need to provide a runtime config to access the environment variables
runtimeConfig: {
public: {
scripts: {
metaPixel: {
id: '', // NUXT_PUBLIC_SCRIPTS_META_PIXEL_ID
},
},
},
},
})
.env
NUXT_PUBLIC_SCRIPTS_META_PIXEL_ID=<YOUR_ID>
useScriptMetaPixel
useScriptMetaPixel
可组合函数使您可以对 Meta Pixel 何时以及如何在您的网站上加载进行细粒度控制。
const { proxy } = useScriptMetaPixel({
id: 'YOUR_ID'
})
// example
proxy.fbq('track', 'ViewContent', {
content_name: 'Nuxt Pixel',
content_category: 'Nuxt',
})
请按照 注册表脚本 指南了解更多有关高级用法的知识。
MetaPixelApi
export interface MetaPixelApi {
fbq: FbqFns & {
push: FbqFns
loaded: boolean
version: string
queue: any[]
}
_fbq: MetaPixelApi['fbq']
}
type FbqFns = ((event: 'track', eventName: StandardEvents, data?: EventObjectProperties) => void)
& ((event: 'trackCustom', eventName: string, data?: EventObjectProperties) => void)
& ((event: 'init', id: number, data?: Record<string, any>) => void)
& ((event: 'init', id: string) => void)
& ((event: string, ...params: any[]) => void)
type StandardEvents = 'AddPaymentInfo' | 'AddToCart' | 'AddToWishlist' | 'CompleteRegistration' | 'Contact' | 'CustomizeProduct' | 'Donate' | 'FindLocation' | 'InitiateCheckout' | 'Lead' | 'Purchase' | 'Schedule' | 'Search' | 'StartTrial' | 'SubmitApplication' | 'Subscribe' | 'ViewContent'
interface EventObjectProperties {
content_category?: string
content_ids?: string[]
content_name?: string
content_type?: string
contents: { id: string, quantity: number }[]
currency?: string
delivery_category?: 'in_store' | 'curbside' | 'home_delivery'
num_items?: number
predicted_ltv?: number
search_string?: string
status?: 'completed' | 'updated' | 'viewed' | 'added_to_cart' | 'removed_from_cart' | string
value?: number
[key: string]: any
}
配置模式
您必须在首次设置脚本时提供选项。
export const MetaPixelOptions = object({
id: number(),
sv: optional(number()),
})
示例
仅在生产环境中使用 Meta Pixel,同时使用 fbq
发送转化事件。
<script setup lang="ts">
const { proxy } = useScriptMetaPixel()
// noop in development, ssr
// just works in production, client
function sendConversion() {
proxy.fbq('trackCustom', 'conversion', {
value: 1,
currency: 'USD'
})
}
</script>
<template>
<div>
<button @click="sendConversion">
Send Conversion
</button>
</div>
</template>