{"_id":"57d698404340330e00953c7a","project":"564f643f33082f0d001bb714","__v":1,"category":{"_id":"57d698404340330e00953c70","version":"57d698404340330e00953c6c","__v":0,"project":"564f643f33082f0d001bb714","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-09-02T11:53:18.476Z","from_sync":false,"order":3,"slug":"digital-data-manager","title":"Digital Data Manager"},"version":{"_id":"57d698404340330e00953c6c","project":"564f643f33082f0d001bb714","__v":2,"createdAt":"2016-09-12T11:57:52.437Z","releaseDate":"2016-09-12T11:57:52.437Z","categories":["57d698404340330e00953c6d","57d698404340330e00953c6e","57d698404340330e00953c6f","57d698404340330e00953c70","57d698404340330e00953c71","57d698404340330e00953c72","57d698404340330e00953c73","58a5711c79ac232f00cbadb5"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.1.0","version":"1.1"},"parentDoc":null,"user":"564f641651f2ec0d001d6998","updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-09-06T08:51:26.051Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":5,"body":"[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Информация в данном разделе устарела\",\n  \"body\": \"Актуальная документация по ссылке - [http://docs.ddmanager.ru](http://docs.ddmanager.ru)\"\n}\n[/block]\nDigital Data Manager автоматически находит заполненный объект window.digitalData и обогащает его дополнительными данными. \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Важно!\",\n  \"body\": \"Важно, чтобы объект window.digitalData был определен до инициализации Digital Data Manager. В противном случае, Digital Data Manager создаст собственный глобальный объект window.digitalData.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Обогащение структуры DDL\"\n}\n[/block]\nВ случае, если какие-то поля DDL не заданы, Digital Data Manager определит их пустыми объектами.\n\nПример:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {},\\n  'website': {},\\n  'page': {},\\n  'cart': {},\\n  'events': []\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Обогащение переменной digitalData.user\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"digitalData.user\",\n    \"2-0\": \"**isSubscribed**\",\n    \"4-0\": \"**hasTransacted**\",\n    \"5-0\": \"**lastTransactionDate**\",\n    \"0-0\": \"**isReturning**\",\n    \"1-0\": \"**everLoggedIn**\",\n    \"3-0\": \"**email**\",\n    \"h-1\": \"Описание\",\n    \"0-1\": \"Посещал ли пользователь сайт раньше хотя бы один раз\",\n    \"1-1\": \"Логинился ли пользователь хотя бы один раз. (Было ли когда-нибудь digitalData.user.loggedIn = true)\",\n    \"2-1\": \"Подписывался ли пользователь хоть раз на рассылку.\\n(Было ли когда-нибудь digitalData.user.isSubscribed = true или было отправлено семантическое событие Subscribed)\",\n    \"3-1\": \"Автоматически заполняется на каждой странице, если хоть раз данное поле было определено, либо было отправлено семантическое событие Subscribed.\",\n    \"4-1\": \"Совершал ли пользователь хоть раз покупку (было ли посещение страницы page.type=\\\"confirmation\\\")\",\n    \"5-1\": \"Дата совершения последней покупки\",\n    \"h-2\": \"Значения\",\n    \"0-2\": \"true\\nfalse\",\n    \"1-2\": \"true\\nfalse\",\n    \"2-2\": \"true\\nfalse\",\n    \"3-2\": \"\",\n    \"4-2\": \"true\\nfalse\",\n    \"5-2\": \"Строка в формате ISO-8601\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Обогащение иформации о продукте в событиях\"\n}\n[/block]\nDigital Data Manager автоматически обогащает следующие переменные в событиях, добавленных в массив digitalData.events, которые связаны с продуктом:\n* product\n* listItem.product\n* listItems[i].product\n\nПри этом, данные для обогащения берутся по id из следующих переменных window.digitalData:\n* digitalData.product\n* digitalData.listing\n* digitalData.recommendation\n* digitalData.cart \n\n## Пример 1:\n\nДобавление товара в корзину на карточке товара\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Added Product',\\n  'product': '123' // id товара\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о товаре:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'page': {...},\\n  'product': {\\n  \\t'id': '123',\\n    'name': 'Product 1',\\n    'unitPrice': 1500,\\n    'unitSalePrice': 1350,\\n    'currency': 'RUB'\\n  },\\n  'cart': {...}\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Added Product',\\n  'product': {\\n  \\t'id': '123',\\n    'name': 'Product 1',\\n    'unitPrice': 1500,\\n    'unitSalePrice': 1350,\\n    'currency': 'RUB'\\n  }\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n## Пример 2:\n\nУдаление товара из корзины\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Removed Product',\\n  'product': '123' // id товара\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о товаре в корзине:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'page': {...},\\n  'cart': {\\n  \\t'lineItems': [\\n      {\\n      \\t'product': {\\n          'id': '123',\\n          'name': 'Product 1',\\n          'unitPrice': 1500,\\n          'unitSalePrice': 1350,\\n          'currency': 'RUB'\\n        },\\n        'quantity': 2\\n      },\\n      {\\n      \\t'product': {...},\\n        'quantity': 1\\n      }\\n    ]\\n  }\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Removed Product',\\n  'product': {\\n  \\t'id': '123',\\n    'name': 'Product 1',\\n    'unitPrice': 1500,\\n    'unitSalePrice': 1350,\\n    'currency': 'RUB'\\n  }\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n## Пример 3:\n\nКлик на товаре в листинге товарной категории:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Clicked Product',\\n  'listItem': {\\n  \\t'product': '123' // id товара\\n    'listId': 'main' // id списка\\n  }\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о товаре в основном листинге:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'page': {...},\\n  'listing': {\\n  \\t'listId': 'main',\\n    'listName': 'Главный листинг категории',\\n    'items': [\\n      { ... },\\n      { ... },\\n    \\t{\\n        'id': '123', // товар с id = 123 находится на 3 позиции\\n        'name': 'Product 1',\\n        'unitPrice': 1500,\\n        'unitSalePrice': 1350,\\n        'currency': 'RUB'\\n      },\\n      { ... },\\n      { ... }\\n      ...\\n    ]\\n  }\\n  'cart': {...}\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Clicked Product',\\n  'listItem': {\\n  \\t'product': {\\n      'id': '123', // товар с id = 123 находится на 3 позиции\\n      'name': 'Product 1',\\n      'unitPrice': 1500,\\n      'unitSalePrice': 1350,\\n      'currency': 'RUB'\\n    },\\n    'listId': 'main' // id списка\\n    'listName': 'Главный листинг категории', // название списка\\n    'position': 3 // т.к. товар был найден на 3-й позиции\\n  }\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n## Пример 4:\n\nСобытие попадания товаров из списка рекомендаций в зону видимости пользователя (Impression):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Viewed Product',\\n  'listItems': [\\n  \\t{\\n      'product': '123' // id товара\\n      'listId': 'related-products' // id списка\\n    },\\n    {\\n      'product': '234' // id товара\\n      'listId': 'related-products' // id списка\\n    },\\n    ...\\n  ]\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о товаре в листинге рекомендаций:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'page': {...},\\n  'listing': {...},\\n  'cart': {...},\\n  'recommendation': [\\n    {\\n    \\t'listId': 'related-products',\\n      'listName': 'С этим часто покупают',\\n      'items': [\\n        { ... },\\n        { ... },\\n        { ... },\\n        {\\n          'id': '123', // товар с id = 123 находится на 4 позиции\\n          'name': 'Product 1',\\n          'unitPrice': 1500,\\n          'unitSalePrice': 1350,\\n          'currency': 'RUB'\\n        },\\n        {\\n          'id': '234', // товар с id = 234 находится на 5 позиции\\n          'name': 'Product 1',\\n          'unitPrice': 1500,\\n          'unitSalePrice': 1350,\\n          'currency': 'RUB'\\n        },\\n        { ... },\\n        { ... }\\n        ...\\n      ]\\n    },\\n    {...},\\n    {...}\\n  ]\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Viewed Product',\\n  'listItems': [\\n  \\t{\\n      'product': {\\n        'id': '123', \\n        'name': 'Product 1',\\n        'unitPrice': 1500,\\n        'unitSalePrice': 1350,\\n        'currency': 'RUB'\\n      },\\n      'listId': 'related-products', // id списка\\n      'listName': 'С этим часто покупают', // название списка\\n      'position': 4 // т.к. товар был найден на 4-й позиции\\n    },\\n    {\\n      'product': {\\n        'id': '234',\\n        'name': 'Product 1',\\n        'unitPrice': 1500,\\n        'unitSalePrice': 1350,\\n        'currency': 'RUB'\\n      },\\n      'listId': 'related-products' // id списка\\n      'listName': 'С этим часто покупают', // название списка\\n      'position': 5 // т.к. товар был найден на 5-й позиции\\n    },\\n    ...\\n  ]\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Обогащение информации о кампаниях в событиях\"\n}\n[/block]\nDigital Data Manager автоматически обогащает следующие переменные в событиях, добавленных в массив digitalData.events, которые связаны с кампаниями (внутренними промо):\n* campaign\n* campaigns\n\nПри этом, данные для обогащения берутся по id из следующих переменной **digitalData.campaigns**.\n## Пример 1:\n\nСобытие клика на баннере (внутреннем промо):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Clicked Campaign',\\n  'campaign': '123' // id кампании\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о кампаниях (внутренних промо), загруженных на страницу:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'website': {...},\\n  'page': {...},\\n  'cart': {...},\\n  'campaigns': [\\n    {...},\\n    {...},\\n    {\\n     \\t'id': '123',\\n      'name': 'Распродажа летней коллекции',\\n      'description': 'Описание акции/баннера',\\n      'category': 'Баннер',\\n      'subcategory': 'Скидки',\\n      'design': 'Синий вариант',\\n      'position': 'top'\\n    },\\n    {...},\\n    {...},\\n    ...\\n  ],\\n  'events': [...]\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Clicked Campaign',\\n  'campaign': {\\n    'id': '123',\\n    'name': 'Распродажа летней коллекции',\\n    'description': 'Описание акции/баннера',\\n    'category': 'Баннер',\\n    'subcategory': 'Скидки',\\n    'design': 'Синий вариант',\\n    'position': 'top'\\n  }\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n## Пример 2:\n\nСобытие попадания баннера (внутреннего промо) в зону видимости пользователя (Impression):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Viewed Campaigns',\\n  'campaigns': ['123', '234'] // id кампаний, попавших в зону видимости пользователя\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nДопустим, в digitalData присутствует информация о кампаниях (внутренних промо), загруженных на страницу:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"window.digitalData = {\\n\\t'user': {...},\\n  'website': {...},\\n  'page': {...},\\n  'cart': {...},\\n  'campaigns': [\\n    {...},\\n    {...},\\n    {\\n     \\t'id': '123',\\n      'name': 'Распродажа летней коллекции',\\n      'description': 'Описание акции/баннера',\\n      'category': 'Баннер',\\n      'subcategory': 'Скидки',\\n      'design': 'Синий вариант',\\n      'position': 'top'\\n    },\\n    {\\n     \\t'id': '234',\\n      'name': 'Распродажа летней коллекции',\\n      'description': 'Описание акции/баннера',\\n      'category': 'Баннер',\\n      'subcategory': 'Скидки',\\n      'design': 'Синий вариант',\\n      'position': 'top'\\n    },\\n    {...},\\n    {...},\\n    ...\\n  ],\\n  'events': [...]\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nВ этом случае, обогащенное событие будет идентично приведенному ниже:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"digitalData.events.push({\\n\\t'name': 'Viewed Campaigns',\\n  'campaigns': [\\n  \\t{\\n     \\t'id': '123',\\n      'name': 'Распродажа летней коллекции',\\n      'description': 'Описание акции/баннера',\\n      'category': 'Баннер',\\n      'subcategory': 'Скидки',\\n      'design': 'Синий вариант',\\n      'position': 'top'\\n    },\\n    {\\n     \\t'id': '234',\\n      'name': 'Распродажа летней коллекции',\\n      'description': 'Описание акции/баннера',\\n      'category': 'Баннер',\\n      'subcategory': 'Скидки',\\n      'design': 'Синий вариант',\\n      'position': 'top'\\n    }\\n  ]\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"обогащение-данными","type":"basic","title":"Обогащение данными"}

Обогащение данными


[block:callout] { "type": "danger", "title": "Информация в данном разделе устарела", "body": "Актуальная документация по ссылке - [http://docs.ddmanager.ru](http://docs.ddmanager.ru)" } [/block] Digital Data Manager автоматически находит заполненный объект window.digitalData и обогащает его дополнительными данными. [block:callout] { "type": "warning", "title": "Важно!", "body": "Важно, чтобы объект window.digitalData был определен до инициализации Digital Data Manager. В противном случае, Digital Data Manager создаст собственный глобальный объект window.digitalData." } [/block] [block:api-header] { "type": "basic", "title": "Обогащение структуры DDL" } [/block] В случае, если какие-то поля DDL не заданы, Digital Data Manager определит их пустыми объектами. Пример: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {},\n 'website': {},\n 'page': {},\n 'cart': {},\n 'events': []\n}", "language": "javascript" } ] } [/block] [block:api-header] { "type": "basic", "title": "Обогащение переменной digitalData.user" } [/block] [block:parameters] { "data": { "h-0": "digitalData.user", "2-0": "**isSubscribed**", "4-0": "**hasTransacted**", "5-0": "**lastTransactionDate**", "0-0": "**isReturning**", "1-0": "**everLoggedIn**", "3-0": "**email**", "h-1": "Описание", "0-1": "Посещал ли пользователь сайт раньше хотя бы один раз", "1-1": "Логинился ли пользователь хотя бы один раз. (Было ли когда-нибудь digitalData.user.loggedIn = true)", "2-1": "Подписывался ли пользователь хоть раз на рассылку.\n(Было ли когда-нибудь digitalData.user.isSubscribed = true или было отправлено семантическое событие Subscribed)", "3-1": "Автоматически заполняется на каждой странице, если хоть раз данное поле было определено, либо было отправлено семантическое событие Subscribed.", "4-1": "Совершал ли пользователь хоть раз покупку (было ли посещение страницы page.type=\"confirmation\")", "5-1": "Дата совершения последней покупки", "h-2": "Значения", "0-2": "true\nfalse", "1-2": "true\nfalse", "2-2": "true\nfalse", "3-2": "", "4-2": "true\nfalse", "5-2": "Строка в формате ISO-8601" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "Обогащение иформации о продукте в событиях" } [/block] Digital Data Manager автоматически обогащает следующие переменные в событиях, добавленных в массив digitalData.events, которые связаны с продуктом: * product * listItem.product * listItems[i].product При этом, данные для обогащения берутся по id из следующих переменных window.digitalData: * digitalData.product * digitalData.listing * digitalData.recommendation * digitalData.cart ## Пример 1: Добавление товара в корзину на карточке товара [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Added Product',\n 'product': '123' // id товара\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о товаре: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'page': {...},\n 'product': {\n \t'id': '123',\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n 'cart': {...}\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Added Product',\n 'product': {\n \t'id': '123',\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n }\n});", "language": "javascript" } ] } [/block] ## Пример 2: Удаление товара из корзины [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Removed Product',\n 'product': '123' // id товара\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о товаре в корзине: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'page': {...},\n 'cart': {\n \t'lineItems': [\n {\n \t'product': {\n 'id': '123',\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n 'quantity': 2\n },\n {\n \t'product': {...},\n 'quantity': 1\n }\n ]\n }\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Removed Product',\n 'product': {\n \t'id': '123',\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n }\n});", "language": "javascript" } ] } [/block] ## Пример 3: Клик на товаре в листинге товарной категории: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Clicked Product',\n 'listItem': {\n \t'product': '123' // id товара\n 'listId': 'main' // id списка\n }\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о товаре в основном листинге: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'page': {...},\n 'listing': {\n \t'listId': 'main',\n 'listName': 'Главный листинг категории',\n 'items': [\n { ... },\n { ... },\n \t{\n 'id': '123', // товар с id = 123 находится на 3 позиции\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n { ... },\n { ... }\n ...\n ]\n }\n 'cart': {...}\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Clicked Product',\n 'listItem': {\n \t'product': {\n 'id': '123', // товар с id = 123 находится на 3 позиции\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n 'listId': 'main' // id списка\n 'listName': 'Главный листинг категории', // название списка\n 'position': 3 // т.к. товар был найден на 3-й позиции\n }\n});", "language": "javascript" } ] } [/block] ## Пример 4: Событие попадания товаров из списка рекомендаций в зону видимости пользователя (Impression): [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Viewed Product',\n 'listItems': [\n \t{\n 'product': '123' // id товара\n 'listId': 'related-products' // id списка\n },\n {\n 'product': '234' // id товара\n 'listId': 'related-products' // id списка\n },\n ...\n ]\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о товаре в листинге рекомендаций: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'page': {...},\n 'listing': {...},\n 'cart': {...},\n 'recommendation': [\n {\n \t'listId': 'related-products',\n 'listName': 'С этим часто покупают',\n 'items': [\n { ... },\n { ... },\n { ... },\n {\n 'id': '123', // товар с id = 123 находится на 4 позиции\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n {\n 'id': '234', // товар с id = 234 находится на 5 позиции\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n { ... },\n { ... }\n ...\n ]\n },\n {...},\n {...}\n ]\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Viewed Product',\n 'listItems': [\n \t{\n 'product': {\n 'id': '123', \n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n 'listId': 'related-products', // id списка\n 'listName': 'С этим часто покупают', // название списка\n 'position': 4 // т.к. товар был найден на 4-й позиции\n },\n {\n 'product': {\n 'id': '234',\n 'name': 'Product 1',\n 'unitPrice': 1500,\n 'unitSalePrice': 1350,\n 'currency': 'RUB'\n },\n 'listId': 'related-products' // id списка\n 'listName': 'С этим часто покупают', // название списка\n 'position': 5 // т.к. товар был найден на 5-й позиции\n },\n ...\n ]\n});", "language": "javascript" } ] } [/block] [block:api-header] { "type": "basic", "title": "Обогащение информации о кампаниях в событиях" } [/block] Digital Data Manager автоматически обогащает следующие переменные в событиях, добавленных в массив digitalData.events, которые связаны с кампаниями (внутренними промо): * campaign * campaigns При этом, данные для обогащения берутся по id из следующих переменной **digitalData.campaigns**. ## Пример 1: Событие клика на баннере (внутреннем промо): [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Clicked Campaign',\n 'campaign': '123' // id кампании\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о кампаниях (внутренних промо), загруженных на страницу: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'website': {...},\n 'page': {...},\n 'cart': {...},\n 'campaigns': [\n {...},\n {...},\n {\n \t'id': '123',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n },\n {...},\n {...},\n ...\n ],\n 'events': [...]\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Clicked Campaign',\n 'campaign': {\n 'id': '123',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n }\n});", "language": "javascript" } ] } [/block] ## Пример 2: Событие попадания баннера (внутреннего промо) в зону видимости пользователя (Impression): [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Viewed Campaigns',\n 'campaigns': ['123', '234'] // id кампаний, попавших в зону видимости пользователя\n});", "language": "javascript" } ] } [/block] Допустим, в digitalData присутствует информация о кампаниях (внутренних промо), загруженных на страницу: [block:code] { "codes": [ { "code": "window.digitalData = {\n\t'user': {...},\n 'website': {...},\n 'page': {...},\n 'cart': {...},\n 'campaigns': [\n {...},\n {...},\n {\n \t'id': '123',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n },\n {\n \t'id': '234',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n },\n {...},\n {...},\n ...\n ],\n 'events': [...]\n}", "language": "javascript" } ] } [/block] В этом случае, обогащенное событие будет идентично приведенному ниже: [block:code] { "codes": [ { "code": "digitalData.events.push({\n\t'name': 'Viewed Campaigns',\n 'campaigns': [\n \t{\n \t'id': '123',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n },\n {\n \t'id': '234',\n 'name': 'Распродажа летней коллекции',\n 'description': 'Описание акции/баннера',\n 'category': 'Баннер',\n 'subcategory': 'Скидки',\n 'design': 'Синий вариант',\n 'position': 'top'\n }\n ]\n});", "language": "javascript" } ] } [/block]