[Customer Pixel] Configure Google Ads Conversion Tracking for Add Address Info Events on Shopify
Learn how to set up Google Ads conversion tracking for add address info events on your Shopify store using Google Tag Manager and a customer pixel. Perfect your data collection for address entries.
Shahzada Ali Hassan
1 min read

Check your site's tracking
Enter your website to see how good its tracking is, and whether Meta is likely restricting it.
Run a free auditadd_address_info.js
1// Initialize the dataLayer
2window.dataLayer = window.dataLayer || [];
3// Function to log event to console with enhanced visibility
4function logEventToConsole(dataLayerEvent) {
5 const customStyle01 =
6 "color: #FFFF00; background-color: #000000; font-size: 10px; font-weight: bold; padding: 2px 0;";
7 console.log("%cDataLayer Event: add_address_info ", customStyle01, dataLayerEvent);
8}
9// Subscribe to add shipping info events
10analytics.subscribe("checkout_address_info_submitted", (event) => {
11 const getEventData = (obj, path, fallback = "") => {
12 return (
13 path.split(".").reduce((acc, part) => {
14 if (acc && part.includes("[")) {
15 const [key, index] = part.replace("]", "").split("[");
16 return acc[key] ? acc[key][index] : undefined;
17 }
18 return acc ? acc[part] : undefined;
19 }, obj) || fallback
20 );
21 };
22 // Prepare data objects with safe fallbacks
23 const page_data = {
24 hostname: getEventData(event, "context.document.location.hostname"),
25 location_query_string: getEventData(event, "context.document.location.href"),
26 path: getEventData(event, "context.document.location.pathname"),
27 referrer: getEventData(event, "context.document.referrer"),
28 page_title: getEventData(event, "context.document.title"),
29 url: getEventData(event, "context.document.location.href"),
30 };
31 const user_data = {
32 id: getEventData(event, "data.checkout.order.customer.id") || event.clientId,
33 phone: getEventData(event, "data.checkout.shippingAddress.phone"),
34 email: getEventData(event, "data.checkout.email"),
35 address: {
36 city: getEventData(event, "data.checkout.shippingAddress.city"),
37 address: getEventData(event, "data.checkout.shippingAddress.address1"),
38 state: getEventData(event, "data.checkout.shippingAddress.state"),
39 country: getEventData(event, "data.checkout.shippingAddress.country"),
40 postal_code: getEventData(event, "data.checkout.shippingAddress.zip"),
41 first_name: getEventData(event, "data.checkout.shippingAddress.firstName"),
42 last_name: getEventData(event, "data.checkout.shippingAddress.lastName"),
43 },
44 language: getEventData(event, "context.navigator.language"),
45 userAgent: getEventData(event, "context.navigator.userAgent"),
46 };
47 const event_data = {
48 timestamp: event.timestamp || "",
49 id: event.id || "",
50 };
51 // E-commerce data
52 const ecommerce_data = {
53 currency: getEventData(event, "data.checkout.currencyCode"),
54 value: getEventData(event, "data.checkout.totalPrice.amount"),
55 items: event.data.checkout.lineItems.map((item, index) => ({
56 item_id: getEventData(item, "variant.product.id"),
57 item_name: getEventData(item, "variant.product.title"),
58 item_brand: getEventData(item, "variant.product.vendor"),
59 item_category: getEventData(item, "variant.product.type"),
60 price: getEventData(item, "variant.price.amount"),
61 item_variant:
62 getEventData(item, "variant.title") || getEventData(item, "variant.untranslatedTitle"),
63 item_list_name: "Checkout",
64 index: index + 1,
65 product_id: getEventData(item, "variant.id"),
66 product_image: getEventData(item, "variant.image.src"),
67 product_url: getEventData(item, "variant.product.url"),
68 product_untranslatedTitle: getEventData(item, "variant.product.untranslatedTitle"),
69 product_sku: getEventData(item, "variant.sku"),
70 quantity: getEventData(item, "quantity"),
71 })),
72 };
73 // Combine all data into a single object
74 const dataLayerEvent = {
75 event: "gtm_custom_event",
76 datalayer_event_name: "add_address_info",
77 user_data: user_data,
78 event_data: event_data,
79 ecommerce: ecommerce_data,
80 page_data: page_data,
81 };
82 // Push the event to dataLayer
83 window.dataLayer.push(dataLayerEvent);
84 // Log the event with styled console output
85 logEventToConsole(dataLayerEvent);
86});

