{"title":"Jerseys \u0026 Co.","description":"\u003cp\u003e \u003c\/p\u003e\n\u003c!----\u003e","products":[{"product_id":"union-heimhose-24-25","title":"Union home shorts - 24\/25","description":"\u003cp\u003eColor: red \/ white\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":48473045664085,"sku":"UB332403XS","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":48473045696853,"sku":"UB332403S","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":48473045729621,"sku":"UB332403M","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":48473045762389,"sku":"UB332403L","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":48473045827925,"sku":"UB332403XL","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":48473045860693,"sku":"UB332403XXL","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":48473045893461,"sku":"UB3324033XL","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332403_HMS_00.webp?v=1722848042"},{"product_id":"union-kinder-heimhose-24-25","title":"Union Kids Home Shorts - 24\/25","description":"\u003cp\u003eColor: red \/ white\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":48472692818261,"sku":"UB332404128","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"140","offer_id":48472692851029,"sku":"UB332404140","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"152","offer_id":48472692916565,"sku":"UB332404152","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"164","offer_id":48472692949333,"sku":"UB332404164","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332403_HMS_00.webp?v=1722848042"},{"product_id":"union-heimstutzen-24-25","title":"Union home socks - 24\/25","description":"\u003cp\u003eColor: red\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"28-30","offer_id":48472914821461,"sku":"UB33240528-30","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"25-27","offer_id":48472914886997,"sku":"UB33240525-27","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"31-33","offer_id":48472914919765,"sku":"UB33240531-33","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":48472914952533,"sku":"UB33240534-36","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":48472915018069,"sku":"UB33240537-39","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":48472915640661,"sku":"UB33240540-42","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":48472915706197,"sku":"UB33240543-45","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"46-48","offer_id":48472915738965,"sku":"UB33240546-48","price":5.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332405_HMS_00.webp?v=1722848176"},{"product_id":"union-kinder-heimtrikot-1-frauen-24-25","title":"Union Kids Home Jersey Women - 24\/25","description":"Color: red \/ white","brand":"adidas AG","offers":[{"title":"128","offer_id":48472122130773,"sku":"UB332407128","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":48472122163541,"sku":"UB332407140","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"152","offer_id":48472122196309,"sku":"UB332407152","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"164","offer_id":48472122261845,"sku":"UB332407164","price":25.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332494_HMS_00.webp?v=1722868776"},{"product_id":"union-auswartshose-24-25","title":"Union Away Pants - 24\/25","description":"\u003cp\u003eColor: black\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":48472344297813,"sku":"UB332412XS","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":48472344330581,"sku":"UB332412S","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":48472344363349,"sku":"UB332412M","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":48472344428885,"sku":"UB332412L","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":48472344461653,"sku":"UB332412XL","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":48472344494421,"sku":"UB332412XXL","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":48472344527189,"sku":"UB3324123XL","price":20.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332412_HMS_00.webp?v=1722846761"},{"product_id":"union-kinder-auswartshose-24-25","title":"Union Kids Away Pants - 24\/25","description":"\u003cp\u003eColor: black\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":48472170365269,"sku":"UB332413128","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"140","offer_id":48472170398037,"sku":"UB332413140","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"152","offer_id":48472170463573,"sku":"UB332413152","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"164","offer_id":48472170496341,"sku":"UB332413164","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332412_HMS_00_4f281f37-1c8b-45df-b1db-b604ef9cfa32.webp?v=1722846932"},{"product_id":"union-auswartsstutzen-24-25","title":"Union Away Socks - 24\/25","description":"\u003cp\u003eColor: black \/ red\u003c\/p\u003e\n\u003c!----\u003e","brand":"adidas AG","offers":[{"title":"28-30","offer_id":48473290572117,"sku":"UB33241428-30","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"25-27","offer_id":48473290604885,"sku":"UB33241425-27","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"31-33","offer_id":48473290637653,"sku":"UB33241431-33","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":48473290670421,"sku":"UB33241434-36","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":48473290703189,"sku":"UB33241437-39","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":48473290735957,"sku":"UB33241440-42","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":48473290768725,"sku":"UB33241443-45","price":5.0,"currency_code":"EUR","in_stock":false},{"title":"46-48","offer_id":48473290801493,"sku":"UB33241446-48","price":5.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332414_HMS_00.webp?v=1722846994"},{"product_id":"union-ausweichtrikot-24-25","title":"Union Berlin Men's Third Jersey 24\/25","description":"\u003cp\u003eColor: yellow\/white\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eIn the \u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eC\u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eolours of our \u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eC\u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eity: Union \u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eP\u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eresent the \u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\" mce-data-marked=\"1\"\u003eThird\u0026nbsp;\u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eJ\u003c\/span\u003e\u003cspan class=\"NormalTextRun SCXW153281085 BCX8\" data-mce-fragment=\"1\"\u003eersey\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-contrast=\"auto\"\u003eThe yellow and white striped third jersey is the starting signal for a jersey series that puts Union's home city centre stage. Until the space on the chest of Union’s football gods is given to a new main sponsor, the jerseys will be adorned with the red lettering \"BERLIN\".\u0026nbsp;\u0026nbsp;\u003c\/span\u003e\u003cspan data-contrast=\"auto\"\u003eUnion's kit supplier, adidas, will combine the new kit with yellow shorts and yellow socks, complemented by red details.\u0026nbsp;\u0026nbsp;\u003c\/span\u003e\u003cspan data-ccp-props=\"{\u0026quot;201341983\u0026quot;:0,\u0026quot;335559739\u0026quot;:160,\u0026quot;335559740\u0026quot;:259}\"\u003e\u0026nbsp;\u003c\/span\u003e\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":48473318719829,"sku":"UB332420XS","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":48473318752597,"sku":"UB332420S","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":48473318785365,"sku":"UB332420M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":48473318818133,"sku":"UB332420L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":48473318916437,"sku":"UB332420XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":48473318949205,"sku":"UB332420XXL","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":48473318981973,"sku":"UB3324203XL","price":35.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/Image_fill_Image_fill_FW24_FB_FCU_THIRD_SOCIAL_SCHAEFER-3_1x1_d7a2be24-a664-4893-8aa8-25d3947588b0.webp?v=1751968697"},{"product_id":"union-ausweichhose-24-25","title":"Union Third Kit Shorts - 24\/25","description":"Color: yellow","brand":"adidas AG","offers":[{"title":"XS","offer_id":48473115230549,"sku":"UB332422XS","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":48473115263317,"sku":"UB332422S","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":48473115296085,"sku":"UB332422M","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":48473115328853,"sku":"UB332422L","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":48473115394389,"sku":"UB332422XL","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":48473115427157,"sku":"UB332422XXL","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":48473115459925,"sku":"UB3324223XL","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332422_HMS_00.webp?v=1719910736"},{"product_id":"union-kinder-ausweichhose-24-25","title":"Union Children's Alternative Pants - 24\/25","description":"Color: yellow","brand":"adidas AG","offers":[{"title":"128","offer_id":48473338216789,"sku":"UB332423128","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"140","offer_id":48473338249557,"sku":"UB332423140","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"152","offer_id":48473338282325,"sku":"UB332423152","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"164","offer_id":48473338315093,"sku":"UB332423164","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332422_HMS_00_836463a7-f1a0-4697-8cdb-e16fe235868c.webp?v=1719920385"},{"product_id":"union-ausweichstutzen-24-25","title":"Union alternative socks - 24\/25","description":"Color: yellow\/red","brand":"adidas AG","offers":[{"title":"28-30","offer_id":48473430196565,"sku":"UB33242428-30","price":5.0,"currency_code":"EUR","in_stock":false},{"title":"25-27","offer_id":48473430229333,"sku":"UB33242425-27","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"31-33","offer_id":48473430262101,"sku":"UB33242431-33","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":48473430294869,"sku":"UB33242434-36","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":48473430360405,"sku":"UB33242437-39","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":48473430393173,"sku":"UB33242440-42","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":48473430425941,"sku":"UB33242443-45","price":5.0,"currency_code":"EUR","in_stock":true},{"title":"46-48","offer_id":48473430458709,"sku":"UB33242446-48","price":5.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332424_HMS_00.webp?v=1719911684"},{"product_id":"union-auswartstrikot-1-manner-23-24-kinder-1","title":"Union Away Jersey 1. Men 23\/24 - Kids","description":"subtle, stylized breakwater silhouettes\n\n\n\n white round neck and red details\n\n\n\n moisture-absorbing AEROREADY technology\n\n\n\n \"UNVEU\" inscription in the neck area\n\n\n\n\n\n\n\n\n\n Union away jersey season 23\/24\n\n This season, the Irons will wear white jerseys with stylized wave breaker silhouettes subtly printed in gray for their away games. The jerseys honor the stadium's renovation 15 years ago, along with 2,333 Union fans. The iconic wave breakers dominate the view of the standing areas of our An der alten Försterei stadium. The neck area is adorned with the club's signature \"UNVEU\" inscription and the club name, while the chest features our club logo. The soft material and moisture-absorbing AEROREADY technology guarantee maximum comfort.\n\n Color: white \/ gray\n Material: 100% recycled polyester\n\n\n\n  \nPrime Green - made with various functional recycled materials.\n\n With the Primegreen label, introduced in 2020, adidas identifies products made with recycled materials. They avoid waste and conserve natural resources while offering full functionality and durability for athletic use. adidas has set a goal to completely replace virgin polyester with recycled polyester in all its products by 2024, wherever technically feasible.","brand":"adidas AG","offers":[{"title":"128","offer_id":48450195816789,"sku":"UB332311-128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":48450195849557,"sku":"UB332311-140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":48450195882325,"sku":"UB332311-152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":48450195915093,"sku":"UB332311-164","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/4066759367944_away_white_trikot_Ansicht_1_759f6c0e-3301-4d51-aadd-abfcd93c2891.png?v=1717238956"},{"product_id":"union-auswartstrikot-manner-24-25-kopie","title":"Union Berlin Men's Away Jersey 24\/25","description":"","brand":"adidas AG","offers":[{"title":"XS","offer_id":49253025612117,"sku":"UB332410-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":49253025644885,"sku":"UB332410-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49253025677653,"sku":"UB332410-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49253025710421,"sku":"UB332410-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49253025743189,"sku":"UB332410-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49253025775957,"sku":"UB332410-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":49253025808725,"sku":"UB332410-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332410_HMS_00.webp?v=1748349326"},{"product_id":"union-heimtrikot-manner-24-25-kopie","title":"Union Berlin Men's Home Jersey 24\/25","description":"","brand":"adidas AG","offers":[{"title":"S","offer_id":49263267381589,"sku":"UB332400-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49263267414357,"sku":"UB332400-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49263267447125,"sku":"UB332400-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49263267479893,"sku":"UB332400-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49263267512661,"sku":"UB332400-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":49263267742037,"sku":"UB332400-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332497_HMS_00.webp?v=1750255207"},{"product_id":"union-heimtrikot-manner-24-25-tailliert-kopie","title":"Union Berlin Men's Home Jersey 24\/25 - fitted","description":"","brand":"adidas AG","offers":[{"title":"XS","offer_id":49263986737493,"sku":"UB332401-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":49263986770261,"sku":"UB332401-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49263986803029,"sku":"UB332401-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49263986835797,"sku":"UB332401-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49263986868565,"sku":"UB332401-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49263986901333,"sku":"UB332401-XXL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332496_HMS_00.webp?v=1722847626"},{"product_id":"union-heimtrikot-manner-24-25-kinder-kopie","title":"Union Berlin Men's Home Jersey 24\/25 - Kids","description":"","brand":"adidas AG","offers":[{"title":"128","offer_id":49264039100757,"sku":"UB332402-128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49264039133525,"sku":"UB332402-140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49264039166293,"sku":"UB332402-152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49264039199061,"sku":"UB332402-164","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332402_HMS_00.webp?v=1722847774"},{"product_id":"union-heimtrikot-1-frauen-24-25-kopie","title":"Union Women's Home Jersey 24\/25 (flocked)","description":"","brand":"adidas AG","offers":[{"title":"S","offer_id":49286514835797,"sku":"UB332406-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49286514868565,"sku":"UB332406-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49286514901333,"sku":"UB332406-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49286514934101,"sku":"UB332406-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49286514966869,"sku":"UB332406-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":49286514999637,"sku":"UB332406-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332406_HMS_00.webp?v=1722862630"},{"product_id":"union-heimtrikot-frauen-24-25-kinder-kopie","title":"Union Home Jersey Women 24\/25 - Kids","description":"","brand":"adidas AG","offers":[{"title":"128","offer_id":49287017169237,"sku":"UB332407-128","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49287017202005,"sku":"UB332407-140","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49287017234773,"sku":"UB332407-152","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49287017267541,"sku":"UB332407-164","price":25.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332494_HMS_00.webp?v=1722868776"},{"product_id":"union-ausweichtrikot-pro-af-24-25","title":"Union Third Jersey pro AF- 24\/25","description":"Color: yellow \/ white","brand":"adidas AG","offers":[{"title":"XS","offer_id":49597940105557,"sku":"UB332437XS","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":49597940007253,"sku":"UB332437S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":49597939974485,"sku":"UB332437M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49597939941717,"sku":"UB332437L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49597940040021,"sku":"UB332437XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49597940072789,"sku":"UB332437XXL","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":49597939908949,"sku":"UB3324373XL","price":35.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332499_HMS_001.webp?v=1727770047"},{"product_id":"union-ausweichtrikot-pro-af-24-25-beflockt","title":"Union proAF Men's Third Jersey 24\/25 (flocked)","description":"","brand":"adidas AG","offers":[{"title":"XS","offer_id":49597947052373,"sku":"UB332437-XS","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":49597946954069,"sku":"UB332437-S","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49597946921301,"sku":"UB332437-M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49597946888533,"sku":"UB332437-L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49597946986837,"sku":"UB332437-XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49597947019605,"sku":"UB332437-XXL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":49597946855765,"sku":"UB332437-3XL","price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332499_HMS_001.webp?v=1727770047"},{"product_id":"union-ausweichtrikot-pro-af-24-25-kinder","title":"Union Third Jersey proAF Men 24\/25 - Kids","description":"\u003cp\u003e Color: yellow\/white\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":49597953179989,"sku":"UB332438128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49597953245525,"sku":"UB332438140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49597953278293,"sku":"UB332438152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49597953311061,"sku":"UB332438164","price":30.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332498_HMS_00.webp?v=1727770066"},{"product_id":"union-ausweichtrikot-pro-af-24-25-kinder-beflockt","title":"Union Third Jersey proAF Men 24\/25 - Kids (flocked)","description":"\u003cp\u003eBrief Description:\u003c\/p\u003e\n\n\u003cp\u003eFormat:\n\u003cbr\u003eMaterial:\u003c\/p\u003e\n\n\u003cp\u003eDUFTE Seal:\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":49597961830741,"sku":"UB332438-128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49597961863509,"sku":"UB332438-140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49597961896277,"sku":"UB332438-152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49597961929045,"sku":"UB332438-164","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332498_HMS_00.webp?v=1727770066"},{"product_id":"union-heimtrikot-pro-af-24-25-beflockt","title":"Union Home Jersey proAF Men 24\/25 (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"S","offer_id":49597999513941,"sku":"UB332432-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49597999481173,"sku":"UB332432-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49597999448405,"sku":"UB332432-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49597999546709,"sku":"UB332432-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49597999579477,"sku":"UB332432-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":49597999415637,"sku":"UB332432-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332400_HMS_00_1_1.webp?v=1748349881"},{"product_id":"union-heimtrikot-pro-af-24-25-kinder-beflockt","title":"Union Home Jersey proAF Men 24\/25 - Kids (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"128","offer_id":49598004527445,"sku":"UB332434-128","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49598004560213,"sku":"UB332434-140","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49598004592981,"sku":"UB332434-152","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49598004625749,"sku":"UB332434-164","price":25.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332495_HMS_00.webp?v=1727775851"},{"product_id":"union-heimtrikot-tailliert-pro-af-24-25","title":"Union Home Jersey proAF Men 24\/25 - fitted","description":"\u003cp\u003e Color: red \/ white\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":49598011343189,"sku":"UB332433XS","price":40.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":49598011212117,"sku":"UB332433S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49598011179349,"sku":"UB332433M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49598011146581,"sku":"UB332433L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49598011244885,"sku":"UB332433XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49598011310421,"sku":"UB332433XXL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332401_HMS_00.webp?v=1727775133"},{"product_id":"union-heimtrikot-tailliert-pro-af-24-25-beflockt","title":"Union Home Jersey proAF Men 24\/25 - fitted (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"XS","offer_id":49598018650453,"sku":"UB332433-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":49598018453845,"sku":"UB332433-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":49598018421077,"sku":"UB332433-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":49598018388309,"sku":"UB332433-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":49598018486613,"sku":"UB332433-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":49598018617685,"sku":"UB332433-XXL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332401_HMS_00.webp?v=1727775133"},{"product_id":"union-torwarttrikot-kinder-24-25-grun-kopie","title":"Union Goalkeeper Jersey Kids 24\/25 - green (flocked)","description":"\u003cp\u003eBrief Description: Long sleeve\n\u003cbr\u003ewith orange stripes on the sleeves \n\u003cbr\u003eorange Adidas logo \n\u003cbr\u003eClub lettering in white on the back\u003c\/p\u003e","brand":"Union Zeughaus","offers":[{"title":"116","offer_id":49684103922005,"sku":"UB332431-116","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"128","offer_id":49684103790933,"sku":"UB332431-128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":49684103823701,"sku":"UB332431-140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":49684103856469,"sku":"UB332431-152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":49684103889237,"sku":"UB332431-164","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332431_HMS_00.webp?v=1731506321"},{"product_id":"union-heimtrikot-maenner-24-25","title":"Union Home Jersey - 24\/25","description":"\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003eColor: red \/ white\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\u0026quot;advertiser\u0026quot;:{\u0026quot;config\u0026quot;:{\u0026quot;advertiserId\u0026quot;:\u0026quot;40626\u0026quot;,\u0026quot;campaignId\u0026quot;:\u0026quot;10292\u0026quot;,\u0026quot;pagetype\u0026quot;:\u0026quot;product\u0026quot;,\u0026quot;identifier\u0026quot;:\u0026quot;All\u0026quot;,\u0026quot;category\u0026quot;:\u0026quot;Jerseys \u0026amp; Co.\u0026quot;,\u0026quot;accessConfig\u0026quot;:{\u0026quot;location\u0026quot;:false,\u0026quot;referrer\u0026quot;:false,\u0026quot;sale\u0026quot;:true,\u0026quot;basket\u0026quot;:true,\u0026quot;zxParams\u0026quot;:[\u0026quot;pagetype\u0026quot;,\u0026quot;products\u0026quot;,\u0026quot;category\u0026quot;,\u0026quot;identifier\u0026quot;]}}},\u0026quot;plugin\u0026quot;:{\u0026quot;publisherId\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;advertiserId\u0026quot;:41734,\u0026quot;protocol\u0026quot;:\u0026quot;https:\/\/\u0026quot;,\u0026quot;zxParams\u0026quot;:{},\u0026quot;basket\u0026quot;:[]}};AWIN.pluginName = \u0026quot;ReachGroup\u0026quot;;\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026amp;\u0026amp; sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026amp;';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026amp;');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026amp;gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026amp;\u0026amp; success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026amp;gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026amp;version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026amp;' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e","brand":"adidas AG","offers":[{"title":"S","offer_id":54988315525501,"sku":"UB332417S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54988315492733,"sku":"UB332417M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54988315459965,"sku":"UB332417L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54988315558269,"sku":"UB332417XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54988315591037,"sku":"UB332417XXL","price":40.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":54988315427197,"sku":"UB3324173XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332417_OS_00.webp?v=1748350088"},{"product_id":"union-heimtrikot-24-25-beflockt","title":"Union Home Jersey Men 24\/25 (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"S","offer_id":54988315754877,"sku":"UB332417-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54988315722109,"sku":"UB332417-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54988315689341,"sku":"UB332417-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54988315787645,"sku":"UB332417-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54988315820413,"sku":"UB332417-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":54988315656573,"sku":"UB332417-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332417_OS_00.webp?v=1748350088"},{"product_id":"union-heimtrikot-manner-24-25-tailliert","title":"Union Home Jersey Men 24\/25 - fitted","description":"\u003cp\u003e Color: red \/ white\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":54988383191421,"sku":"UB332418XS","price":40.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":54988383093117,"sku":"UB332418S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54988383060349,"sku":"UB332418M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54988383027581,"sku":"UB332418L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54988383125885,"sku":"UB332418XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54988383158653,"sku":"UB332418XXL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332418_OS_00.webp?v=1739439172"},{"product_id":"union-heimtrikot-manner-24-25-tailliert-beflockt","title":"Union Home Jersey Men 24\/25 - fitted (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"XS","offer_id":54988384371069,"sku":"UB332418-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":54988384272765,"sku":"UB332418-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54988384239997,"sku":"UB332418-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54988384207229,"sku":"UB332418-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54988384305533,"sku":"UB332418-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54988384338301,"sku":"UB332418-XXL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332418_OS_00.webp?v=1739439172"},{"product_id":"union-heimtrikot-manner-24-25-kinder-beflockt","title":"Union Home Jersey Men 24\/25 - Kids (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"128","offer_id":54988442435965,"sku":"UB332419-128","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":54988442468733,"sku":"UB332419-140","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":54988442501501,"sku":"UB332419-152","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":54988442534269,"sku":"UB332419-164","price":25.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332419_OS_00.webp?v=1739439138"},{"product_id":"union-auswartstrikot-manner-24-25-beflockt","title":"Union Away Jersey Men 24\/25 (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"XS","offer_id":54989299319165,"sku":"UB332491-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":54989299220861,"sku":"UB332491-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54989299188093,"sku":"UB332491-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54989299155325,"sku":"UB332491-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54989299253629,"sku":"UB332491-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54989299286397,"sku":"UB332491-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":54989299122557,"sku":"UB332491-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332491_OS_00.webp?v=1748349312"},{"product_id":"union-auswartstrikot-manner-24-25-kinder-beflockt-kopie","title":"Union Away Jersey Men 24\/25 - Kids (flocked) (Copy)","description":"","brand":"Union Zeughaus","offers":[{"title":"128","offer_id":54989373669757,"sku":"UB332492-128","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":54989373702525,"sku":"UB332492-140","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":54989373735293,"sku":"UB332492-152","price":25.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":54989373768061,"sku":"UB332492-164","price":25.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332492_OS_00.webp?v=1739439077"},{"product_id":"union-ausweichtrikot-manner-24-25","title":"Union Third Jersey - 24\/25","description":"Color: yellow \/ white","brand":"adidas AG","offers":[{"title":"XS","offer_id":54989646922109,"sku":"UB332493XS","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":54989646823805,"sku":"UB332493S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":54989646791037,"sku":"UB332493M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54989646758269,"sku":"UB332493L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54989646856573,"sku":"UB332493XL","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":54989646889341,"sku":"UB332493XXL","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":54989646725501,"sku":"UB3324933XL","price":35.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332493_OS_00.webp?v=1748349018"},{"product_id":"union-ausweichtrikot-manner-24-25-beflockt","title":"Union Men's Third Jersey 24\/25 (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"XS","offer_id":54989649346941,"sku":"UB332493-XS","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":54989649248637,"sku":"UB332493-S","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":54989649215869,"sku":"UB332493-M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":54989649183101,"sku":"UB332493-L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":54989649281405,"sku":"UB332493-XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":54989649314173,"sku":"UB332493-XXL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":54989649150333,"sku":"UB332493-3XL","price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332493_OS_00.webp?v=1748349018"},{"product_id":"union-heimtrikot-1-frauen-24-25-beflockt","title":"Union Home Jersey 1. Women 24-25 (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"S","offer_id":55273013019005,"sku":"UB332408-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":55273012986237,"sku":"UB332408-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":55273012953469,"sku":"UB332408-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":55273013051773,"sku":"UB332408-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":55273013084541,"sku":"UB332408-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":55273012920701,"sku":"UB332408-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332408_OS_001.webp?v=1738770037"},{"product_id":"union-heimtrikot-1-frauen-24-25-kinder-beflockt","title":"Union Home Jersey 1. Women 24-25 - Kids (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"128","offer_id":55273074295165,"sku":"UB332409-128","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":55273074327933,"sku":"UB332409-140","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":55273074360701,"sku":"UB332409-152","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":55273074393469,"sku":"UB332409-164","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332409_OS_001.webp?v=1738770202"},{"product_id":"union-auswartstrikot-1-frauen-24-25-beflockt-1","title":"Union Women's Away Jersey 1. 24-25 - fitted (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"XS","offer_id":55273097331069,"sku":"UB332495-XS","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":55273097232765,"sku":"UB332495-S","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":55273097199997,"sku":"UB332495-M","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":55273097167229,"sku":"UB332495-L","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":55273097265533,"sku":"UB332495-XL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":55273097298301,"sku":"UB332495-XXL","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":55273097134461,"sku":"UB332495-3XL","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332495_OS_001.webp?v=1738769726"},{"product_id":"union-kinder-auswartstrikot-1-frauen-24-25-beflockt-1","title":"Union Away Jersey 1. Women 24-25 - Kids (flocked)","description":"","brand":"Union Zeughaus","offers":[{"title":"128","offer_id":55273123578237,"sku":"UB332496-128","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":55273123611005,"sku":"UB332496-140","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":55273123643773,"sku":"UB332496-152","price":40.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":55273123676541,"sku":"UB332496-164","price":40.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332496_OS_001_31da3bea-0ee3-40c0-9ece-cc530dcc511d.webp?v=1738769645"},{"product_id":"union-heimhose-25-26","title":"Home shorts - 25\/26","description":"\u003cp\u003eRed color\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":55475545342333,"sku":"UB332503XS","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":55475545244029,"sku":"UB332503S","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":55475545211261,"sku":"UB332503M","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":55475545178493,"sku":"UB332503L","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":55475545276797,"sku":"UB332503XL","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":55475545309565,"sku":"UB332503XXL","price":25.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":55475545145725,"sku":"UB3325033XL","price":25.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250717-Heim-07572.webp?v=1753884101"},{"product_id":"union-kinder-heimhose-25-26","title":"Kids Home Shorts - 25\/26","description":"\u003cp\u003eRed color\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":55475616350589,"sku":"UB332504128","price":22.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":55475616383357,"sku":"UB332504140","price":22.0,"currency_code":"EUR","in_stock":false},{"title":"152","offer_id":55475616416125,"sku":"UB332504152","price":22.0,"currency_code":"EUR","in_stock":false},{"title":"164","offer_id":55475616448893,"sku":"UB332504164","price":22.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332503_OS_00.webp?v=1753884139"},{"product_id":"union-heimstutzen-25-26","title":"Home Socks - 25\/26","description":"\u003cp\u003eRed color\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"31-33","offer_id":55476032635261,"sku":"UB33250531-33","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":55476032668029,"sku":"UB33250534-36","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":55476032700797,"sku":"UB33250537-39","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":55476032733565,"sku":"UB33250540-42","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":55476032766333,"sku":"UB33250543-45","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"46-48","offer_id":55476032799101,"sku":"UB33250546-48","price":10.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250717-Heim-09936_stutze.webp?v=1753884197"},{"product_id":"union-auswartsstutzen-25-26","title":"Away Socks - 25\/26","description":"\u003cp\u003eColor green\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"31-33","offer_id":55476139688317,"sku":"UB33251431-34","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":55476139721085,"sku":"UB33251434-36","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":55476139753853,"sku":"UB33251437-39","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":55476139786621,"sku":"UB33251440-42","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":55476139819389,"sku":"UB33251443-45","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"46-48","offer_id":55476139852157,"sku":"UB33251446-48","price":10.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250716-Auswaerts-06948.webp?v=1754892720"},{"product_id":"union-ausweichstutzen-25-26","title":"Union Third Kit Socks 25\/26","description":"\u003cp\u003e Color: blue\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"31-33","offer_id":55476527071613,"sku":"UB33252531-33","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"34-36","offer_id":55476527104381,"sku":"UB33252534-36","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"37-39","offer_id":55476527137149,"sku":"UB33252537-39","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"40-42","offer_id":55476527169917,"sku":"UB33252540-42","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"43-45","offer_id":55476527202685,"sku":"UB33252543-45","price":10.0,"currency_code":"EUR","in_stock":true},{"title":"46-48","offer_id":55476527235453,"sku":"UB33252546-48","price":10.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332525_OS_00.webp?v=1751871671"},{"product_id":"union-auswartshose-25-26","title":"Away shorts - 25\/26","description":"\u003cp\u003eColor green\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":55483151647101,"sku":"UB332512XS","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":55483151548797,"sku":"UB332512S","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":55483151516029,"sku":"UB332512M","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":55483151483261,"sku":"UB332512L","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":55483151581565,"sku":"UB332512XL","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"XXL","offer_id":55483151614333,"sku":"UB332512XXL","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":55483151450493,"sku":"UB3325123XL","price":20.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250716-Auswaerts-06708.webp?v=1754892690"},{"product_id":"union-ausweichhose-25-26","title":"Union Third Kit Shorts 25\/26","description":"\u003cp\u003eColor: blue\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":55483282817405,"sku":"UB332523XS","price":20.0,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":55483282719101,"sku":"UB332523S","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":55483282686333,"sku":"UB332523M","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":55483282653565,"sku":"UB332523L","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":55483282751869,"sku":"UB332523XL","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":55483282784637,"sku":"UB332523XXL","price":20.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":55483282620797,"sku":"UB3325233XL","price":20.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332523_OS_00.webp?v=1751872733"},{"product_id":"union-kinder-ausweichhose-25-26","title":"Union Child's Third Kit Shorts 25\/26","description":"\u003cp\u003e Color: blue\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"128","offer_id":55483314536829,"sku":"UB332524128","price":22.0,"currency_code":"EUR","in_stock":false},{"title":"140","offer_id":55483314569597,"sku":"UB332524140","price":22.0,"currency_code":"EUR","in_stock":true},{"title":"152","offer_id":55483314602365,"sku":"UB332524152","price":22.0,"currency_code":"EUR","in_stock":true},{"title":"164","offer_id":55483314635133,"sku":"UB332524164","price":22.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332523_OS_00.webp?v=1751872733"},{"product_id":"union-heimtrikot-minikit-25-26","title":"Home Jersey 25\/26 - Minikit","description":"\u003cp\u003e Color: red \/ white\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"92","offer_id":55483425325437,"sku":"UB33250692","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"98","offer_id":55483425259901,"sku":"UB33250698","price":30.0,"currency_code":"EUR","in_stock":true},{"title":"104","offer_id":55483425292669,"sku":"UB332506104","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"110","offer_id":55483425227133,"sku":"UB332506110","price":30.0,"currency_code":"EUR","in_stock":false},{"title":"116","offer_id":55483425194365,"sku":"UB332506116","price":30.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB332506_OS_00.webp?v=1753791092"},{"product_id":"union-heimtrikot-1-frauen-25-26","title":"Women's Home Jersey 25\/26","description":"\u003cp\u003e\u003cspan\u003eColor: red \/ white\u003c\/span\u003e\u003c\/p\u003e","brand":"adidas AG","offers":[{"title":"XS","offer_id":55827256967549,"sku":"UB332507XS","price":45.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":55827256869245,"sku":"UB332507S","price":45.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":55827256836477,"sku":"UB332507M","price":45.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":55827256803709,"sku":"UB332507L","price":45.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":55827256902013,"sku":"UB332507XL","price":45.0,"currency_code":"EUR","in_stock":true},{"title":"XXL","offer_id":55827256934781,"sku":"UB332507XXL","price":45.0,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":55827256770941,"sku":"UB3325073XL","price":45.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250717-Heim-07612_b41b5c29-f44a-4af6-9d3b-e894c8166532.webp?v=1755080442"}],"url":"https:\/\/fanartikel.union-zeughaus.de\/en\/collections\/trikots-co-outlet.oembed?page=2","provider":"Union Zeughaus","version":"1.0","type":"link"}