ট্যাগ ম্যানেজারের জন্য উন্নত ইকমার্স

একটি ওয়েবসাইটে Google ট্যাগ ম্যানেজার ব্যবহার করে ইউনিভার্সাল অ্যানালিটিক্স বর্ধিত ইকমার্স বৈশিষ্ট্যগুলি কীভাবে প্রয়োগ করা যায় তা এই নির্দেশিকাটি বর্ণনা করে৷

ওভারভিউ

Google Analytics উন্নত ইকমার্স পণ্যের ছাপ, প্রচার, এবং বিক্রয় ডেটা আপনার Google Analytics পৃষ্ঠাদর্শন এবং ইভেন্টগুলির সাথে পাঠানোর জন্য সক্ষম করে৷ পণ্য ইমপ্রেশন এবং পণ্য ক্রয় ট্র্যাক করতে পৃষ্ঠা দর্শন ব্যবহার করুন; এবং চেকআউট পদক্ষেপ এবং পণ্য ক্লিক ট্র্যাক করতে ইভেন্ট ব্যবহার করুন।

তুমি শুরু করার আগে

আমরা আপনাকে আপনার বাস্তবায়নের পরিকল্পনা করতে সাহায্য করার জন্য উন্নত ইকমার্স ডেভ গাইডের উন্নত ইকমার্স ডেটা টাইপস এবং অ্যাকশন বিভাগ পর্যালোচনা করার পরামর্শ দিই। আপনি যে ইকমার্স ইন্টারঅ্যাকশনগুলি পরিমাপ করতে চান তার জন্য কোন ক্ষেত্রগুলি প্রয়োজনীয় এবং ঐচ্ছিক তা বুঝতে গাইড আপনাকে সাহায্য করবে৷

উন্নত ইকমার্স সক্ষম করা

বেশিরভাগ বাস্তবায়নে, আপনার প্রতিটি ইউনিভার্সাল অ্যানালিটিক্স পেজভিউ বা ইভেন্ট ট্যাগে উন্নত ইকমার্স সক্ষম করা উচিত। ওয়েব ইন্টারফেসের ট্যাগ এডিটর স্ক্রিনে উন্নত ইকমার্স সক্ষম করার জন্য আপনার কাছে দুটি বিকল্প রয়েছে:

  • ডেটা লেয়ার ব্যবহার করে প্রয়োগ করুন (প্রস্তাবিত)
  • একটি কাস্টম জাভাস্ক্রিপ্ট ম্যাক্রো ব্যবহার করে বাস্তবায়ন করুন

যদিও উভয় পদ্ধতিই সমতুল্য ইকমার্স কার্যকারিতা প্রদান করে, আমরা ডেটা স্তরকে সমর্থন করে এমন সমস্ত ওয়েবসাইট ডেটা স্তর পদ্ধতি ব্যবহার করার পরামর্শ দিই। এই গাইডটি ডেটা লেয়ার পদ্ধতিটিকে ডিফল্ট হিসাবে উপস্থাপন করে, যখন একটি কাস্টম জাভাস্ক্রিপ্ট ম্যাক্রো ব্যবহার করে এই গাইডের শেষে নথিভুক্ত করা হয়েছে।

ডেটা লেয়ার ব্যবহার করে

নিম্নলিখিত বর্ধিত ইকমার্স ক্রিয়াকলাপগুলি পরিমাপ করতে কীভাবে ডেটা স্তর ব্যবহার করবেন তা নিম্নলিখিত বিভাগগুলি আপনাকে দেখাবে:

ইকমার্স অবজেক্ট সাফ করা হচ্ছে

এটি সুপারিশ করা হয় যে আপনি একটি ইকমার্স ইভেন্টকে ডেটা স্তরে পুশ করার আগে ইকমার্স অবজেক্টটি পরিষ্কার করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন৷ বস্তুটি সাফ করা একটি পৃষ্ঠার একাধিক ইকমার্স ইভেন্ট একে অপরকে প্রভাবিত করা থেকে বিরত করবে।

dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.

পণ্য ইম্প্রেশন পরিমাপ

  • ইকমার্স পরিমাপ: impressions
  • ডেটা গ্রহণ করে: impressionFieldObjects অ্যারে

impression অ্যাকশন এবং এক বা একাধিক impressionFieldObjects ব্যবহার করে পণ্যের ইমপ্রেশন পরিমাপ করুন। নিম্নলিখিত উদাহরণটি অনুমান করে যে পৃষ্ঠায় প্রদর্শিত পণ্যগুলির বিবরণ পৃষ্ঠা লোড হওয়ার সময় পরিচিত হয়:

<script>
// Measures product impressions and also tracks a standard
// pageview for the tag configuration.
// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'currencyCode': 'EUR',                       // Local currency is optional.
    'impressions': [
     {
       'name': 'Triblend Android T-Shirt',       // Name or ID is required.
       'id': '12345',
       'price': '15.25',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Gray',
       'list': 'Search Results',
       'position': 1
     },
     {
       'name': 'Donut Friday Scented T-Shirt',
       'id': '67890',
       'price': '33.75',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Black',
       'list': 'Search Results',
       'position': 2
     }]
  }
});
</script>

পণ্য ক্লিক পরিমাপ

  • ইকমার্স পরিমাপ: click
  • ডেটা গ্রহণ করে: list , productFieldObjects অ্যারে

ক্লিক করা পণ্যের প্রতিনিধিত্ব করার জন্য একটি productFieldObject সহ ডেটা স্তরে একটি click অ্যাকশন পুশ করে পণ্য লিঙ্কগুলিতে ক্লিকগুলি পরিমাপ করুন, যেমন এই উদাহরণে:

<script>
/**
 * Call this function when a user clicks on a product link. This function uses the event
 * callback datalayer variable to handle navigation after the ecommerce data has been sent
 * to Google Analytics.
 * @param {Object} productObj An object representing a product.
 */
function(productObj) {
  dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
  dataLayer.push({
    'event': 'productClick',
    'ecommerce': {
      'click': {
        'actionField': {'list': 'Search Results'},      // Optional list property.
        'products': [{
          'name': productObj.name,                      // Name or ID is required.
          'id': productObj.id,
          'price': productObj.price,
          'brand': productObj.brand,
          'category': productObj.cat,
          'variant': productObj.variant,
          'position': productObj.position
         }]
       }
     },
     'eventCallback': function() {
       document.location = productObj.url
     }
  });
}
</script>

পণ্যের বিবরণের ভিউ পরিমাপ করা

  • ইকমার্স পরিমাপ: detail
  • ডেটা গ্রহণ করে: list , productFieldObjects অ্যারে

এক বা একাধিক productFieldObjects সাথে যে পণ্যগুলি দেখা হচ্ছে তার প্রতিনিধিত্ব করে ডেটা স্তরে detail অ্যাকশন পুশ করে পণ্যের বিবরণের একটি ভিউ পরিমাপ করুন:

<script>
// Measure a view of product details. This example assumes the detail view occurs on pageload,
// and also tracks a standard pageview of the details page.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'detail': {
      'actionField': {'list': 'Apparel Gallery'},    // 'detail' actions have an optional list property.
      'products': [{
        'name': 'Triblend Android T-Shirt',         // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
       }]
     }
   }
});
</script>

শপিং কার্ট থেকে সংযোজন বা অপসারণ পরিমাপ করা

  • ইকমার্স পরিমাপ: add , remove
  • ডেটা গ্রহণ করে: list , productFieldObjects অ্যারে

একইভাবে, আপনি একটি শপিং কার্ট থেকে সংযোজন বা অপসারণ পরিমাপ করতে পারেন add actionFieldObject এবং productFieldObjects একটি তালিকা ব্যবহার remove :

একটি শপিং কার্টে একটি পণ্য যোগ করা

// Measure adding a product to a shopping cart by using an 'add' actionFieldObject
// and a list of productFieldObjects.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'event': 'addToCart',
  'ecommerce': {
    'currencyCode': 'EUR',
    'add': {                                // 'add' actionFieldObject measures.
      'products': [{                        //  adding a product to a shopping cart.
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1
       }]
    }
  }
});

একটি শপিং কার্ট থেকে একটি পণ্য অপসারণ

// Measure the removal of a product from a shopping cart.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'event': 'removeFromCart',
  'ecommerce': {
    'remove': {                               // 'remove' actionFieldObject measures.
      'products': [{                          //  removing a product to a shopping cart.
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
      }]
    }
  }
});

প্রচার পরিমাপ

আপনি অভ্যন্তরীণ সাইটের প্রচারগুলিতে ইম্প্রেশন এবং ক্লিক উভয়ই পরিমাপ করতে পারেন, যেমন সাইটটিতে প্রদর্শিত ব্যানারগুলি পণ্যের একটি নির্দিষ্ট উপসেটে বিক্রয়ের বিজ্ঞাপন দেয়, বা বিনামূল্যে শিপিংয়ের জন্য একটি অফার।

প্রচার ইম্প্রেশন পরিমাপ

  • ইকমার্স পরিমাপ: promoView
  • ডেটা গ্রহণ করে: promoFieldObjects এর অ্যারে

একটি প্রচারের ছাপ পরিমাপ করতে, আপনার ইকমার্স ডেটা লেয়ার var-এ promoView কীটিকে একটি promoFieldObject এ সেট করুন যা পৃষ্ঠায় ব্যবহারকারীদের কাছে প্রদর্শিত প্রচারগুলিকে বর্ণনা করে:

<script>
// An example of measuring promotion views. This example assumes that
// information about the promotions displayed is available when the page loads.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'promoView': {
      'promotions': [                     // Array of promoFieldObjects.
       {
         'id': 'JUNE_PROMO13',            // ID or Name is required.
         'name': 'June Sale',
         'creative': 'banner1',
         'position': 'slot1'
       },
       {
         'id': 'FREE_SHIP13',
         'name': 'Free Shipping Promo',
         'creative': 'skyscraper1',
         'position': 'slot2'
       }]
    }
  }
});
</script>

প্রচার ক্লিক পরিমাপ

একটি প্রচারে একটি ক্লিক পরিমাপ করতে, ক্লিক করা প্রচারের বর্ণনা করে একটি promoFieldObject ধারণকারী একটি অ্যারে সহ ডেটা স্তরে promoClick অ্যাকশনটি পুশ করুন:

<script>
/**
 * Call this function when a user clicks on a promotion. This function uses the eventCallBack
 * datalayer variable to handle navigation after the ecommerce data is sent to Google Analytics.
 *
 * @param {Object} promoObj An object representing an internal site promotion.
 */
function onPromoClick(promoObj) {
  dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
  dataLayer.push({
    'event': 'promotionClick',
    'ecommerce': {
      'promoClick': {
        'promotions': [
         {
           'id': promoObj.id,                         // Name or ID is required.
           'name': promoObj.name,
           'creative': promoObj.creative,
           'position': promoObj.pos
         }]
      }
    },
    'eventCallback': function() {
      document.location = promoObj.destinationUrl;
    }
  });
}
</script>

একটি চেকআউট পরিমাপ

একটি চেকআউট প্রক্রিয়ার প্রতিটি ধাপ পরিমাপ করতে আপনার প্রয়োজন:

  1. checkout অ্যাকশন ব্যবহার করে চেকআউট প্রক্রিয়ার প্রতিটি ধাপ পরিমাপ করুন।
  2. প্রযোজ্য হলে, checkout_option অ্যাকশন ব্যবহার করে চেকআউট বিকল্প পরিমাপ করুন।
  3. ওয়েব ইন্টারফেসের অ্যাডমিন বিভাগে ইকমার্স সেটিংস কনফিগার করে চেকআউট ফানেল রিপোর্টের জন্য ঐচ্ছিকভাবে ব্যবহারকারী-বান্ধব পদক্ষেপের নাম সেট করুন।

1. চেকআউট ধাপ পরিমাপ

  • ইকমার্স পরিমাপ: checkout
  • ডেটা গ্রহণ করে: step , productFieldObjects অ্যারে

চেকআউট প্রক্রিয়া পরিমাপ করতে, যার মধ্যে একটি চেকআউট বোতাম এবং এক বা একাধিক চেকআউট পৃষ্ঠা অন্তর্ভুক্ত থাকতে পারে যেখানে ব্যবহারকারীরা শিপিং এবং অর্থপ্রদানের তথ্য প্রবেশ করে, চেকআউট প্রক্রিয়া এবং চেকআউট প্রক্রিয়ার কোন পর্যায়ে পরিমাপ করা হচ্ছে তা নির্দেশ করতে checkout ক্রিয়া এবং step ক্ষেত্রটি ব্যবহার করুন৷ আপনি পৃষ্ঠা সম্পর্কে অতিরিক্ত ডেটার একটি অংশ প্রদান করতে option ক্ষেত্রটিও ব্যবহার করতে পারেন, যেমন ব্যবহারকারীর দ্বারা নির্বাচিত অর্থপ্রদানের ধরন।

<script>
/**
 * A function to handle a click on a checkout button. This function uses the eventCallback
 * data layer variable to handle navigation after the ecommerce data has been sent to Google Analytics.
 */
function onCheckout() {
  dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
  dataLayer.push({
    'event': 'checkout',
    'ecommerce': {
      'checkout': {
        'actionField': {'step': 1, 'option': 'Visa'},
        'products': [{
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
       }]
     }
   },
   'eventCallback': function() {
      document.location = 'checkout.html';
   }
  });
}
</script>

2. চেকআউট বিকল্প পরিমাপ

  • ইকমার্স পরিমাপ: checkout_option
  • ডেটা গ্রহণ করে: step , option

চেকআউট বিকল্পটি সেই ক্ষেত্রে উপযোগী যেখানে আপনি ইতিমধ্যেই একটি চেকআউট পদক্ষেপ পরিমাপ করেছেন কিন্তু আপনি একই চেকআউট ধাপ সম্পর্কে অতিরিক্ত তথ্য ক্যাপচার করতে চান৷ উদাহরণস্বরূপ, একজন ব্যবহারকারী দ্বারা নির্বাচিত শিপিং পদ্ধতি। এটি পরিমাপ করতে step এবং option ক্ষেত্র সহ checkout_option অ্যাকশন ব্যবহার করুন।

<script>
/**
 * A function to handle a click leading to a checkout option selection.
 */
function onCheckoutOption(step, checkoutOption) {
  dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
  dataLayer.push({
    'event': 'checkoutOption',
    'ecommerce': {
      'checkout_option': {
        'actionField': {'step': step, 'option': checkoutOption}
      }
    }
  });
}
</script>

3. চেকআউট ফানেল কনফিগারেশন

ঐচ্ছিকভাবে, আপনার চেকআউট প্রক্রিয়ার প্রতিটি ধাপে একটি বর্ণনামূলক নাম দেওয়া যেতে পারে যা প্রতিবেদনে ব্যবহার করা হবে। এই নামগুলি কনফিগার করতে, Google Analytics ওয়েব ইন্টারফেসের অ্যাডমিন বিভাগে যান, ভিউ (প্রোফাইল) নির্বাচন করুন এবং ইকমার্স সেটিংসে ক্লিক করুন। আপনি ট্র্যাক করতে চান এমন প্রতিটি চেকআউট ধাপকে লেবেল করতে ইকমার্স সেট-আপ নির্দেশাবলী অনুসরণ করুন।

Google Analytics অ্যাডমিন ইন্টারফেসে ইকমার্স সেটআপ। একটি চেকআউট ফানেল চারটি ধাপে সংজ্ঞায়িত করা হয়েছে: 1. পর্যালোচনা কার্ট, 2. অর্থপ্রদানের তথ্য সংগ্রহ করুন, 3. ক্রয়ের বিবরণ নিশ্চিত করুন, 4. রসিদ৷
চিত্র 1: ইকমার্স সেটআপ, চেকআউট ফানেল।

ক্রয় পরিমাপ

  • ইকমার্স পরিমাপ: purchase
  • ডেটা গ্রহণ করে: id (লেনদেন আইডি), productFieldObjects অ্যারে

একটি বর্ধিত ইকমার্স-সক্ষম ট্যাগ ফায়ার করবে এমন একটি event সহ purchase অ্যাকশন ব্যবহার করে আপনার লেনদেনের বিশদ তথ্য স্তরে পুশ করুন৷ এই উদাহরণে, পেজ লোড হওয়ার সময় লেনদেনের বিশদ বিবরণ জানা যায় এবং যখন gtm.js স্ক্রিপ্ট ফেরত আসে তখন একটি পৃষ্ঠাভিউ সহ পাঠানো হবে:

<script>
// Send transaction data with a pageview if available
// when the page loads. Otherwise, use an event when the transaction
// data becomes available.
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'purchase': {
      'actionField': {
        'id': 'T12345',                         // Transaction ID. Required for purchases and refunds.
        'affiliation': 'Online Store',
        'revenue': '35.43',                     // Total transaction value (incl. tax and shipping)
        'tax':'4.90',
        'shipping': '5.99',
        'coupon': 'SUMMER_SALE'
      },
      'products': [{                            // List of productFieldObjects.
        'name': 'Triblend Android T-Shirt',     // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1,
        'coupon': ''                            // Optional fields may be omitted or set to empty string.
       },
       {
        'name': 'Donut Friday Scented T-Shirt',
        'id': '67890',
        'price': '33.75',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Black',
        'quantity': 1
       }]
    }
  }
});
</script>

রিফান্ড পরিমাপ

  • ইকমার্স পরিমাপ: refund
  • ডেটা গ্রহণ করে: id (লেনদেন আইডি), productFieldObjects অ্যারে

একটি লেনদেনের সম্পূর্ণ অর্থ ফেরত পরিমাপ করতে, ফেরত দেওয়া লেনদেনের ট্রানজ্যাকশন আইডি সহ একটি refund actionFieldObject চাপুন:

<script>
// Refund an entire transaction by providing the transaction ID. This example assumes the details
// of the completed refund are available when the page loads:
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'refund': {
      'actionField': {'id': 'T12345'}         // Transaction ID. Required for purchases and refunds.
    }
  }
});
</script>

একটি আংশিক ফেরত পরিমাপ করতে, পণ্যের আইডি এবং ফেরত দেওয়া পরিমাণ সহ productFieldObjects এর একটি তালিকা যোগ করুন:

<script>
// Measure a partial refund by providing an array of productFieldObjects and specifying the ID and
// quantity of each product being returned. This example assumes the partial refund details are
// known at the time the page loads:
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'refund': {
      'actionField': {'id': 'T12345'},        // Transaction ID.
      'products': [
            {'id': 'P4567', 'quantity': 1},   // Product ID and quantity. Required for partial refunds.
            {'id': 'P8901','quantity': 2}
       ]
     }
  }
});
</script>

পণ্য-স্কোপযুক্ত কাস্টম মাত্রা পাস করা

ইকমার্স অবজেক্টে একটি পণ্য-স্কোপযুক্ত কাস্টম মাত্রা পাস করতে, পণ্যটিতে এটি যুক্ত করতে নিম্নলিখিত স্বরলিপি ব্যবহার করুন:

  dimensionn

যেখানে n একটি প্রাকৃতিক সংখ্যা, উদাহরণস্বরূপ:

<script>
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'purchase': {
      ...

      'products': [{
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'dimension1': 'Same day delivery'
       }]
     }
   }
});
</script>

প্রোডাক্ট-স্কোপড কাস্টম মেট্রিক্স পাস করা

ইকমার্স অবজেক্টে একটি পণ্য-স্কোপযুক্ত কাস্টম মেট্রিক পাস করতে, পণ্যটিতে এটি যুক্ত করতে নিম্নলিখিত স্বরলিপি ব্যবহার করুন:

  metricn

যেখানে n একটি স্বাভাবিক সংখ্যা, উদাহরণস্বরূপ:

<script>
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'purchase': {
      ...

      'products': [{
        'name': 'Goal Flow Garden Hose',
        'id': 'p001',
        'brand': 'Google Analytics',
        'category': 'Home Goods',
        'variant': 'Green',
        'price': '20',
        'quantity': 1,
        'metric3': '10'  // Custom metric 'Cost'
       }]
     }
   }
});
</script>

ইমপ্রেশন এবং অ্যাকশন একত্রিত করা

যে ক্ষেত্রে আপনার কাছে পণ্যের ছাপ এবং একটি ক্রিয়া উভয়ই রয়েছে, সেগুলিকে একত্রিত করা এবং একটি একক আঘাতে পরিমাপ করা সম্ভব।

নীচের উদাহরণটি দেখায় যে কীভাবে একটি সম্পর্কিত পণ্য বিভাগ থেকে পণ্যের ইম্প্রেশন সহ একটি পণ্যের বিশদ দৃশ্য পরিমাপ করা যায়:

<script>
dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  'ecommerce': {
    'impressions': [
     {
       'name': 'Triblend Android T-Shirt',        // Name or ID is required.
       'id': '12345',
       'price': '15.25',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Gray',
       'list': 'Related Products',
       'position': 1
     },
     {
       'name': 'Donut Friday Scented T-Shirt',
       'id': '67890',
       'price': '33.75',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Black',
       'list': 'Related Products',
       'position': 2
     }],
    'detail': {
      'actionField': {'list': 'Apparel Gallery'},  // 'detail' actions have an optional list property.
      'products': [{
        'name': 'Triblend Android T-Shirt',       // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
       }]
     }
  }
});
</script>

একটি কাস্টম জাভাস্ক্রিপ্ট ম্যাক্রো ব্যবহার করে

যদি আপনার ওয়েবসাইট একটি ডেটা স্তর সমর্থন না করে, তাহলে আপনি একটি কাস্টম জাভাস্ক্রিপ্ট ম্যাক্রো ব্যবহার করে একটি ফাংশন কল করতে পারেন যা ইকমার্স ডেটা অবজেক্ট রিটার্ন করে। এই অবজেক্টটি এই গাইডে আগে দেখানো ডেটা লেয়ার সিনট্যাক্স ব্যবহার করা উচিত, উদাহরণস্বরূপ:

// A custom JavaScript macro that returns an ecommerceData object
// that follows the data layer syntax.
function() {
  var ecommerceData = {
    'ecommerce': {
      'purchase': {
        'actionField': {'id': 'T12345'},
        'products': [
            // List of productFieldObjects
        ],
        ... // Rest of the code should follow the data layer syntax.
     }
  };
  return ecommerceData;
}

আপনি যদি ডেটা স্তরের পরিবর্তে একটি কাস্টম জাভাস্ক্রিপ্ট ম্যাক্রো ব্যবহার করতে চান, এনহান্সড ইকমার্স বৈশিষ্ট্যগুলি সক্ষম করুন নির্বাচন করুন এবং ম্যাক্রো থেকে ডেটা পড়ুন বিকল্পটি সেট করুন৷