Преобразование необработанного JSON в стандартное событие Facebook с использованием функции Javascript - PullRequest
0 голосов
/ 27 октября 2019

Попытка написать функцию javascript, необходимую для перевода следующего события дорожки в его формате JSON в соответствующее событие пикселя Facebook.

Следующее событие отслеживания размещено на сайте электронной коммерции:

analytics.track('Product List Viewed', {
  category: 'Deals',
  list_id: 'hot_deals_1',
  products: [
    {
      category: 'Games',
      image_url: 'https://www.example.com/product/path.jpg',
      name: 'Monopoly: 3rd Edition',
      position: 1,
      price: 19,
      product_id: '507f1f77bcf86cd799439011',
      sku: '45790-32',
      url: 'https://www.example.com/product/path'
    },
    {
      category: 'Games',
      name: 'Uno Card Game',
      position: 2,
      price: 3,
      product_id: '505bd76785ebb509fc183733',
      sku: '46493-32'
    }
  ]
});

Вышеуказанное событие Javascript реализовано на веб-сайте для сбора сведений о Списке продуктов, который просматривал пользователь. Событие отправляется как необработанный JSON сообщения следующим образом:

{
  "anonymousId": "70bbe85a-97db-49da-b36f-419dd858f3be",
  "context": {
    "ip": "12.179.173.270",
    "library": {
      "name": "analytics.js",
      "version": "3.8.2"
    },
    "page": {
      "title": "Toys R Us",
      "url": "https://toys-r-us.com"
    },
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"
  },
  "event": "Product List Viewed",
  "integrations": {},
  "messageId": "ajs-515fef4d8615e8f95d88988d0cb77e60",
  "originalTimestamp": "2019-06-18T17:16:11.546Z",
  "properties": {
    "category": "Deals",
    "list_id": "hot_deals_1",
    "products": [
      {
        "category": "Games",
        "name": "Monopoly: 3rd Edition",
        "position": 1,
        "price": 19,
        "product_id": "507f1f77bcf86cd799439011",
        "sku": "45790-32",
        "url": "https://www.example.com/product/path"
      },
      {
        "category": "Games",
        "name": "Uno Card Game",
        "position": 2,
        "price": 3,
        "product_id": "505bd76785ebb509fc183733",
        "sku": "46493-32"
      }
    ]
  },
  "receivedAt": "2019-06-18T17:16:11.579Z",
  "sentAt": "2019-06-18T17:16:11.554Z",
  "timestamp": "2019-06-18T17:16:11.571Z",
  "type": "track"
}

Я пытаюсь написать функцию Javascript, которая преобразует необработанный JSON выше в стандартную функцию Facebook fbq ('track'), котораяперевел бы указанное выше событие JSON в синоним стандартного события ViewContent в Facebook.

Я считаю, что конечный результат должен выглядеть примерно так, как показано ниже, но я не знаю, с чего начать разработку функции Javascript для преобразования необработанного JSON в конечный продукт:

<script>
fbq('track', 'ViewContent', {content_name: ‘Monopoly: 3rd Edition’,
  content_category: ‘Games’,
  content_ids: ['45790-32'],
  content_type: 'product',
  value: 19,
  currency: 'USD'
 },
{
  content_name: ‘Uno Card Game’,
  content_category: ‘Games’,
  content_ids: ['46493-32'],
  content_type: 'product',
  value: 3,
  currency: 'USD'
 }
);
</script>

1 Ответ

0 голосов
/ 27 октября 2019

В следующий раз, пожалуйста, потратьте некоторое время на то, чтобы попробовать сами, и укажите, где вы застряли.

Вот пример ввода данных в соответствии с событием fbq.

<script>
  
  const data = {
    // ....
    // ....
    properties: {
      category: "Deals",
      list_id: "hot_deals_1",
      products: [
        {
          category: "Games",
          name: "Monopoly: 3rd Edition",
          position: 1,
          price: 19,
          product_id: "507f1f77bcf86cd799439011",
          sku: "45790-32",
          url: "https://www.example.com/product/path"
        },
        {
          category: "Games",
          name: "Uno Card Game",
          position: 2,
          price: 3,
          product_id: "505bd76785ebb509fc183733",
          sku: "46493-32"
        }
      ]
    }
    // ....
    // ....
  }
  
  const modifiedData = data.properties.products.map(({category, sku, price}) => ({
    content_category: category,
    content_ids: [sku],
    content_type: 'product',
    value: price,
    currency: 'USD'
  }));
  
  console.log(modifiedData)

  //fbq('track', 'ViewContent', modifiedData);
  
  </script>
...