I have Web Collect Code installed on our website. I want to use it to build segments around website interactions. I now have two questions

  1. What do I need to do to collect webview data. The Data Extension IGO_VIEWS stays empty. I use this script

    _etmc.push(['setOrgId', '100XXXXXX']); _etmc.push(['trackPageView']);
  2. I wonder what the User ID is? Is that a session ID generated by Salesforce? I want to use the customer ID here, but as a result I collect a combination of customer id und user id. What is the reason for this

Thanks, Oliver

2 Answers 2


I agree with Johannes, but I also need to add to the equation the need for a product/content catalogue, as without it in place you can't get the details about the pages viewed. The catalogue needs to contain your unique identifier of each page, and metadata with e.g. page category. Once the catalogue is in place, you need to add the unique ID to each trackPageView, like this where you replace INSERT_ITEM with the page ID:

_etmc.push(["trackPageView", { "item" : "INSERT_ITEM" }]);   

Before a catalogue is in place, you will also not be able to enable the integration to the data extensions.

Once you have set up the collect code, you must join the IGO_PRODUCTATTRIBS + IGO_VIEWS + IGO_PROFILES or PI_CONTENTATTRIBS + PI_CONTENTVIEWS + IGO_PROFILES (depending on whether you use product or content catalogue) to derive the interests of the identified users. For this you will be using Automation Studio and SQL Query activities.

PI_CONTENTATTRIBS/IGO_PRODUCTATTRIBS will contain metadata passed to the catalogue as name-value pairs and are crucial to this, as you will need to take the categories from here.

Keep in mind, that tracking categories does not feed into any data extensions, and can't be used for segmentation:

_etmc.push(["trackPageView", { "category" : "INSERT_CATEGORY" }]);   
  • Nicely thought forward, thought it is not part of his question ;) Commented Apr 2, 2019 at 19:24
  • Thanks, Johannes. Also good job on your part, scoping out the main solution outline. Commented Apr 2, 2019 at 20:19
  • Helped me @LukasLunow thanks Commented Dec 8, 2020 at 17:48
  1. Have you integrated the JavaScript into every page of your website?

    <script type="text/javascript" src="https://100XXXXXX.collect.igodigital.com/collect.js"></script>

  2. Have you set the email parameter for logged in users?

    _etmc.push(["setUserInfo", {"email": "INSERT_EMAIL_OR_UNIQUE_ID"}]); This has to be a unique identifier that you can identify each person with. For B2C commonly an email address but for B2B most likely to be some kind of customer-id. When you are connected to salescloud maybe even the ID of salescloud. Has to be implemented on all pages aswell.

  3. The user_id in the IGO_Views table is a hash that gets generated by Salesforce Marketing Cloud. You can relate that user_id to the dataextension IGO_PROFILES and will get more information about that particular user. It is different from the session id which you can see if the take a look at the IGO_views table when it is filled with data.

  4. (If i remember correctly) You have to enable the dataextensions to become visible. Status Console inside Web Recommendations -> Top right corner -> gear symbol -> enable Einstein Data extensions.

If something is unclear or I understood something wrong, just leave a comment.

  • _etmc.push(["setUserInfo", {"email": "INSERT_EMAIL_OR_UNIQUE_ID"}]); is set. Does it make sense to use a unique ID when available and the email address if not? Or do I have to choose a consistent value?
    – Oliver
    Commented Apr 3, 2019 at 7:57
  • A non changing Consistent value would be what i strongly recommend. Commented Apr 3, 2019 at 10:06
  • Delete your last comment, everyone can flood your system when they know your mid, and now they might even know which website. If your item is not in your product catalog it will not match. Track with productcodes of Your product catalog. Commented Apr 4, 2019 at 16:40
  • 2
    I have redacted the sensitive value in the comment to match the original post.
    – David Reed
    Commented Apr 4, 2019 at 19:00
  • @OliverFrings - correct. Before a catalogue is in place, you will not be able to populate the data extensions, as per my answer above. Commented Apr 4, 2019 at 19:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .