'How would you capture a discount that covers the cost of taxes with GA4 Purchase parameters?

Would I add a data layer variable for the purchase event outside of the items array? This is Google's recommendation for purchase events. I want to add a coupon code with a discount that covers the entire cost including taxes. This is what google has in their doc:

dataLayer.push({      
event: "purchase",
      ecommerce: {
          transaction_id: "T_12345",
          affiliation: "Google Merchandise Store",
          value: 25.42,
          tax: 4.90,
          shipping: 0,
          currency: "USD",
          coupon: "SUMMER_SALE",
          items: [
           {
            item_id: "SKU_12345",
            item_name: "Stan and Friends Tee",
            affiliation: "Google Merchandise Store",
            coupon: "SUMMER_FUN",
            currency: "USD",
            discount: 2.22,
            index: 0,
            item_brand: "Google",
            item_category: "Apparel",
            item_category2: "Adult",
            item_category3: "Shirts",
            item_category4: "Crew",
            item_category5: "Short sleeve",
            item_list_id: "related_products",
            item_list_name: "Related Products",
            item_variant: "green",
            location_id: "L_12345",
            price: 9.99,
            quantity: 1
          }]
      }
    });

I want to create a cart that gives the user for free. Or rather a $0 cart value. Would I add the coupon discount ($4.90 = value + tax) for the whole cart like this:

dataLayer.push({      
event: "purchase",
      ecommerce: {
          transaction_id: "T_12345",
          affiliation: "Google Merchandise Store",
          value: 0,
          tax: 4.90,
          shipping: 0,
          currency: "USD",
          coupon: "SUMMER_SALE",
          discount: 4.90,
          items: [
           {
            item_id: "SKU_12345",
            item_name: "Stan and Friends Tee",
            affiliation: "Google Merchandise Store",
            coupon: "SUMMER_FUN",
            currency: "USD",
            discount: 9.99,
            index: 0,
            item_brand: "Google",
            item_category: "Apparel",
            item_category2: "Adult",
            item_category3: "Shirts",
            item_category4: "Crew",
            item_category5: "Short sleeve",
            item_list_id: "related_products",
            item_list_name: "Related Products",
            item_variant: "green",
            location_id: "L_12345",
            price: 9.99,
            quantity: 1
          }]
      }
    });

Or would the discount amount including tax ($14.69 = intended discount for product + cost of tax) also be included in the discount for the item in the items array.

dataLayer.push({      
event: "purchase",
      ecommerce: {
          transaction_id: "T_12345",
          affiliation: "Google Merchandise Store",
          value: 0,
          tax: 4.90,
          shipping: 0,
          currency: "USD",
          coupon: "SUMMER_SALE",
          discount: 4.90,
          items: [
           {
            item_id: "SKU_12345",
            item_name: "Stan and Friends Tee",
            affiliation: "Google Merchandise Store",
            coupon: "SUMMER_FUN",
            currency: "USD",
            discount: 14.69,
            index: 0,
            item_brand: "Google",
            item_category: "Apparel",
            item_category2: "Adult",
            item_category3: "Shirts",
            item_category4: "Crew",
            item_category5: "Short sleeve",
            item_list_id: "related_products",
            item_list_name: "Related Products",
            item_variant: "green",
            location_id: "L_12345",
            price: 9.99,
            quantity: 1
          }]
      }
    });

This is the doc from google that I've been referencing.

Thanks for your help!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source