STEP 5 Integration review


Introduction


Once you have the integrations done by the development team, it’s time to review if everything was done correctly, according to the checklist in this article.

Below, you can find the checklist to go through in order to make sure the integration is done properly.

Integration review


Tracking code


  1. Check the way the data is stored in the system. Check how many page visits are collected and if possible, compare the amount with other data sources.

  2. If there are not enough page visits, make sure that the tracking code is available on all pages within the domain.

  3. If there are too many page visits, look for pages where page visits are sent more than once (it usually happens on listing or item pages).

  4. If tracker is implemented on a SPA website, check if the page visit events are generated properly as well as if dynamic content works correctly (you can activate a test dynamic content campaign and check if it is rendered).

  5. Make sure that the tracker is not blocked by adblockers & 3rd party cookies (If it is, check the SDK implementation. It’s probably implemented not by tracker in the page’s source code, but by GTM or 1st party tracking mechanism was not set up).

Online Transactions


Start your analysis by defining which method is used to integrate transactions: SDK or API.

You can check this by looking at the event structure. If you see the eventCreateTime parameter in raw data of the event, then this event is integrated through the API (this applies both to transactions and any other custom events).

  1. Check the number of transactions (especially in case of SDK).

  2. Check if there are duplicates of the events.

  3. Check if transaction.charge events generate product.buy events – the number of product.buy events should be equal to number of distinct items bought.

  4. The sum of values of product.buy events generated out of one orderID must be the same as the totalAmount value in the transaction.charge event for that order.

  5. Check if the event data includes the data needed for campaigns and analytics. (Here we just emphasize that if you want to use some events parameters later on in analytics, you should send it to Synerise.) For example, if you send to Synerise POS transactions and you want to analyze the performance of different stores, you should send a custom parameter in addition to the “POS” source indicating the ID of the store where the transaction was made. If it is important to us to differentiate payment methods and segment users/make analyses, such data should be send as a specific parameter.)

  6. The sum of “FinalUnitPrice”’s of product.buy events is the same as the value of TotalAmount in transaction.charge

  7. Check if all the parameters that are sent are registered in the event. Pay attention to the metadata of transaction: sometimes clients send additional custom attributes of transactions outside of the metadata object, and such attributes are not saved.

  8. Make sure that item SKUs in transactional events match the product.retailer_part_no in og:tags and productID in item feed. If you’re not sure if the IDs match, please contact Synerise Service Desk team and ask for a review.

  9. If you use eventSalt in transactions, try to send two events with eventSalt and the same time parameter and see if the transaction has been updated (correct behavior) or a new one was generated (incorrect behavior).

  10. Check the time of the transaction (time zone, UTC).

    Note:

    If we send an event 2020-05-11T05:00:00Z, then the Z parameter indicates that this is a time sent in the UTC0 time zone, so the time of the sent event will be set on our application front according to what we have set in the workspace time zone. Therefore:

    • If we have the time zone set as Asia/Calcuta, then such an event will appear on the front as 10:30:00 (+5:30). If we want to send this event already in its final version, it should be: 2020-05-11T05:00:00+5:30 - then Synerise knows not to change it anymore.
    • On profiles where we have the time zone Europe/Warsaw, the event 2020-05-11T05:00:00Z will appear as 6:00:00 (UTC +1, winter time) or 7:00:00 (UTC +2, summer time).

  11. Check if the price values are saved in the proper attributes (net/gross).

  12. Confirm, that the scope of parameters in the event is complete for analytics and campaigns.

  13. If you have custom item parameters in the transaction.charge events, verify that the product.buy events for each item include those parameters. When sending the transaction.charge event, these attributes must be sent in each item’s entry in the products array in order to be transferred into the product.buy events.

OG:tags


  1. Go to Catalogs and check if the catalog “Snrs-produktu-ogTag" has been created.

  2. Ensure that the item IDs match between feed and transactions. If you’re not sure if the IDs match, contact the Synerise Service Desk team and ask for a review.

  3. If og:tags are not collected, ensure that they are registered after the initialization of the tracking code.

  4. Visit the item pages and see if data about those products appears in the catalog in Synerise.

  5. Ensure that the tag with item ID is named product:retailer_part_no

Item feed


  1. Make sure that custom parameters start with c: instead of g:

  2. Remember that should be equal to product:retailer_part_no the item IDs in other modules (fields such as SKU and itemId in the APIs/SDKs).

  3. If you want to use custom parameters, ensure that the xmlns:c="http://base.google.com/cns/1.0" namespace is included in the XML prolog.

  4. Check the first line in the feed – feed tags – make sure the headers are the same as in the documentation (RSS or Atom standard)

  5. Ensure that the feed includes all of the required parameters included in the documentation.

  6. Ensure that parameters aren’t duplicated, for example: <link>, <g:link>.

  7. Ensure the items in the feed have all the parameters required to launch campaigns, enriching transactions, and so on.

  8. If you suspect that a value of a tag/attribute might contain the following symbols </>/& you should use the specific format or use the following representation. Example: <g:product_type><![CDATA[Women's Clothing > Jeans > Bootcut Jeans]]></g:product_type> or <g:product_type><Women's Clothing &gt; Jeans &gt; Bootcut></g:product_type>. Warning! Do not combine the > representation with CDATA.

  9. g:product_type must be the same as the category on the website.

  10. Ensure that attributes such as gender and availability are formatted according to Google’s documentation.

  11. Ensure the feed has all the necessary parameters: <title>, <g:availability>, <g:product_type>, <g:price>, <link>, <g:image_link>, <g:id>.

  12. Check the size of the images. If the size is too large, it might influence the speed of loading dynamic content campaigns where you insert data from the feed.

  13. Ensure that parameters which are numbers use a dot (.) as the decimal separator.

  14. If an attribute represents a monetary value (for example g:price or g:sale_price):

    • The number must be first and the currency second, for example 15.00 USD
    • The currency code must be compliant with ISO 4217.
  15. Product type can have only one of the formats:
    <g:product_type><![CDATA[ Man > all > clothes > shirts ]]></g:product_type> , <g:product_type>Man &gt; all &gt; clothes &gt; shirts</g:product_type>

    There should be spaces between ‘>’ or ‘>’ otherwise it will be treated as one category. This example will also be stored as one category: <g:product_type><![CDATA[ Man &gt; all &gt; clothes &gt; shirts ]]></g:product_type>

  16. Ensure that all tags in the feed are closed.

  17. Ensure that the feed ends with:

    • </channel> and </rss> for RSS.
    • </feed> for atom feed.

Cart.status event


  1. Ensure that every change in the cart (including removing items) triggers the event.

  2. Ensure that cart changes are tracked not only the cart page, but also in listings.

  3. An cart.status with an empty cart should be sent after the transaction.charge event in order to clear the cart status.

  4. Ensure that the limit of parameters is not exceeded (2048 characters).

  5. Ensure that cart.status event is triggered only when the status of the cart is changed and by nothing more.

  6. Item ID must be the same as in all of the other transactional events, og:tags, and item feed.

addToCart/removeFromCart events


  1. Item ID must be the same as in transactional events, og:tags, and item feed.

Profile management


  1. Check all the places in which customers might leave their data (email, customId, phone, agreements, other attributes). Information from filled forms must be sent to Synerise correctly. Verify that data is saved to profiles (correct update of attributes).

  2. Try the following scenarios on your site and check the results:
    First option: anonymous to new recognized

    • Open the site in incognito mode and find your UUID.*
    • Find the corresponding profile in Synerise. You can search it based on UUID.
    • Verify that this profile is anonymous.
    • Fill the one of forms on the site, using an email which already exists in one of the profiles.
    • After filling the form, refresh the profile in Synerise and check for changes. You should see an update in the email field and extra information which you left in the form.

    Second option: anonymous to existing recognized

    • Open the site in incognito mode and find your UUID.*
    • Find the corresponding profile in Synerise.
    • Verify that this profile is anonymous.
    • Fill the one of forms on the site, using an email which already exists in one of the profiles.
    • After filling the form, refresh the profile in Synerise
      You should see that the profile no longer exists. This is because the anonymous profile was merged into the existing recognized one (recognized before the form was filled in).
    • Find the profile by email which you used and ensure that a client.merge event exists in the list of activities.

    Third option: recognized to recognized

    • Open the site in incognito mode.
    • Fill in one of the forms on the site with an email.
    • In Profiles, find the profile whose email was used.
    • Visit a few pages.
    • Ensure that the new page visits are recorded in the profile whose email was used last. If you see activities in the earlier profile, something is incorrect with integration – check UUID reset.
    • Fill in one of the forms with a different email address than before.
    • In Profiles, find the profile whose email was used.
    • Visit a few pages and check events on the client’s profile in CRM, you should see your last activities on the second client’s profile. If you see activities at the first client’s profile, something is incorrect with integration – check UUID reset.
  3. Every form should have a unique tag or parameter indicating the place where clients leave the data, for example login page, newsletter, agreement. Those tags are visible in the profile.

Note: By default, only recognized profiles may be shown in the list. Searching for anonymous customers, remember to change the Show option to All.
Detailed information:
  • Form integration - more information about trancking form data you can find here.
  • Check how to find your UUID in the incognito mode in the video below.

AI model training


  1. Item ID must be the same in transactional events, og:tags, item feed, cart events.
  2. Make sure you meet the minimum data requirements to launch the models.
Detailed information:
  • AI requirements - more information about AI models requirements, you can find here.
Help center documentation tile illustration
Help center documentation
Learn more about Synerise funcionalities from our documentation in Help Center.
Use cases tile illustration
Use cases
Discover our use case base and check how to use them in practice.
😕

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

😉

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker