<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DataCrew Blog</title>
	<atom:link href="https://blog.datacrew.agency/en/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.datacrew.agency</link>
	<description>The official blog of DataCrew Agency</description>
	<lastBuildDate>Thu, 10 Sep 2026 08:11:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://blog.datacrew.agency/wp-content/uploads/2025/03/favicon.png</url>
	<title>DataCrew Blog</title>
	<link>https://blog.datacrew.agency</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How We Built a B2B Prospect List for LinkedIn Ads</title>
		<link>https://blog.datacrew.agency/en/data-driven-decisions/b2b-prospect-list-linkedin-ads/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 12:44:32 +0000</pubDate>
				<category><![CDATA[Data-Driven Decision-Making]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/b2b-prospect-list-linkedin-ads/</guid>

					<description><![CDATA[<p>We built a B2B prospect list from free public databases, audited every domain for Meta blocking, and turned it into a LinkedIn Company List audience that pulled a 7.69% CTR.</p>
<p>The post <a href="https://blog.datacrew.agency/en/data-driven-decisions/b2b-prospect-list-linkedin-ads/">How We Built a B2B Prospect List for LinkedIn Ads</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">A few eyebrows went up when our last post laid out what we found auditing more than <a href="https://blog.datacrew.agency/en/server-side-tagging/meta-data-sharing-restrictions/" target="_blank" rel="noopener" title="">36,000 sites running the Meta pixel</a>. Time for a confession: pure curiosity wasn&#8217;t what drove us to check how often Meta blocks healthcare providers. What we really needed was a B2B prospect list: the companies worth advertising a workaround to.</p>



<p class="wp-block-paragraph">A B2B prospect list like that works beautifully in LinkedIn Ads. You upload a CSV of companies, and the platform builds an audience out of the people who work at them. There&#8217;s huge potential here: B2B advertising is a tough game to begin with, but a list filtered on something real makes pinpoint targeting possible.</p>



<h2 class="wp-block-heading">Is this even legal?</h2>



<p class="wp-block-paragraph">We never touch personal data, only publicly available company data. LinkedIn takes that company data and builds an audience from the people who work there, and we never see who ended up on it. So the process most likely doesn&#8217;t create legal headaches. Even so, bring in a privacy lawyer who is willing to put their name on it.</p>



<h2 class="wp-block-heading">What does LinkedIn need for a good match?</h2>



<p class="wp-block-paragraph">LinkedIn tries to match the B2B prospect list you hand it against the companies on the platform. Then it puts the people working there into an audience you can advertise to. The <a href="https://www.linkedin.com/help/lms/answer/a423102" target="_blank" rel="noopener" title="">B2B prospect list</a> has to include, among other things, the company name, website domain, category, city, postal code, and country. The joker in the deck is the LinkedIn company URL: hand that over and there&#8217;s no question which company you&#8217;re targeting.</p>



<p class="wp-block-paragraph">You can only upload a list if it holds at least 300 companies, and no more than 300,000. In Hungary, our home market, we identified exactly 300 blocked healthcare providers, so yes, we do have a Hungarian blocked-healthcare list too. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">After the upload, LinkedIn spends two to three days matching your data against its own companies. Wherever a company matches, the people who work there go into an audience you can start advertising to. At the end you get a match rate telling you how well it went. Anything above 80% counts as good, though we often end up with lists above 90%.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="368" src="https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-1024x368.png" alt="LinkedIn Ads matched audiences table: the B2B prospect list uploaded as a Company List, matching above 90%" class="wp-image-1303" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-1024x368.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-300x108.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-768x276.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-1536x553.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-2048x737.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-400x144.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-800x288.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-832x299.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-1664x599.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-1248x449.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-2496x898.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-audiences-tabla-scaled.png 2560w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">What about the other ad platforms?</h2>



<p class="wp-block-paragraph">Unfortunately this is limited to LinkedIn Ads. On the other big platforms you can only upload first-party user data, and to have any of that, the user has to explicitly consent to going on a list. </p>



<p class="wp-block-paragraph">LinkedIn works completely differently: we&#8217;re not using personal data, we&#8217;re building a list out of publicly available information. Legal angles aside, the approach probably wouldn&#8217;t even be effective elsewhere. Google, Meta and the rest expect personal data, email addresses and phone numbers, and a pile of hello@ addresses scraped off websites is never going to hit a usable match rate. On top of that, the upload itself would break those platforms&#8217; terms of service, so we don&#8217;t recommend using it that way.</p>



<h2 class="wp-block-heading">How did our audit work?</h2>



<p class="wp-block-paragraph">Meta&#8217;s blocking is a technical thing. When the Meta pixel fires, it loads a config file. That config holds whether the site is under restriction and, if so, at what level. You can read a domain&#8217;s restriction level straight out of the config, as long as the pixel actually runs on it.</p>



<p class="wp-block-paragraph">So all we need is a domain name to tell whether Meta is blocking it. It isn&#8217;t quite that simple, of course, because on plenty of sites the Meta pixel only fires after <a href="https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/" target="_blank" rel="noopener" title="">consent is accepted</a> (exactly as it should). So auditing site after site through an automated process calls for a headless browser that</p>



<ol class="wp-block-list">
<li>Opens the domain</li>



<li>Accepts the marketing cookies</li>



<li>Checks whether a Meta pixel is there</li>



<li>If it is, checks the Facebook pixel config for a restriction</li>



<li>If there is one, collects every data point LinkedIn needs to identify the company, from structured data or wherever else it can find it</li>



<li>And finally rolls all of that into a B2B prospect list we can upload to LinkedIn Ads</li>
</ol>



<!-- DataCrew - illustration of the domain audit process (icons only, no explanatory text).
     The numbers refer to the numbered list in the post, so this belongs directly below it.
     WordPress: Custom HTML block, paste it in as is.
     The styles are scoped with the dcf- prefix, so nothing leaks onto the theme. -->
<style>
.dcf{
  --dcf-teal:#0099a6; --dcf-deep:#00707a; --dcf-muted:#9aacaf;
  --dcf-ribbon-a:#eff8fa; --dcf-ribbon-b:#d7edf1; --dcf-rule:#bfdfe4;
  --dcf-node:#ffffff; --dcf-badge:#6f797c; --dcf-cap:#6f797c;
  font-family:'Sora',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  max-width:720px;margin:34px auto;
}
.dcf svg{width:100%;height:auto;}
.dcf svg.dcf__defs{width:0;height:0;position:absolute;}
.dcf svg.dcf__wide{display:block;}
.dcf svg.dcf__tall{display:none;}

.dcf-node{fill:var(--dcf-node);stroke:var(--dcf-rule);stroke-width:1.4;}
.dcf-ico{fill:none;stroke:var(--dcf-deep);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.dcf-out{fill:var(--dcf-teal);}
.dcf-out-ico{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.dcf-dot{fill:var(--dcf-muted);}
.dcf-hit{fill:var(--dcf-teal);}
.dcf-arrow{fill:none;stroke:var(--dcf-rule);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.dcf-badge{fill:var(--dcf-node);stroke:var(--dcf-rule);stroke-width:1.2;}
.dcf-num{
  fill:var(--dcf-badge);font-size:11px;font-weight:600;letter-spacing:.03em;
  text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums;
  font-family:'Sora',system-ui,sans-serif;
}
.dcf__cap{
  margin:14px auto 0;max-width:720px;color:var(--dcf-cap);
  font-size:13px;line-height:1.55;
}

/* --- compact view + expand (pure CSS, no script) --- */
.dcf__box{margin:0;}
.dcf__sum{
  list-style:none;cursor:pointer;display:block;padding:4px 0 2px;border-radius:12px;
}
.dcf__sum::-webkit-details-marker{display:none;}
.dcf svg.dcf__mini{display:block;max-width:440px;margin:0 auto;}
.dcf__box[open] svg.dcf__mini{display:none;}
.dcf__hint{
  display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;
  color:var(--dcf-deep);font-size:13px;font-weight:600;letter-spacing:-.005em;
}
.dcf__hint::after{content:"↓";font-weight:400;}
.dcf__box[open] .dcf__hint::after{content:"↑";}
.dcf__hint b{display:none;font-weight:600;}
.dcf__box[open] .dcf__hint i{display:none;}
.dcf__box[open] .dcf__hint b{display:inline;}
.dcf__hint i{font-style:normal;}
.dcf__box[open] .dcf__hint{margin-top:0;margin-bottom:6px;}
.dcf__sum:focus-visible{outline:2px solid var(--dcf-teal);outline-offset:4px;}

@media (max-width:640px){
  .dcf svg.dcf__wide{display:none;}
  .dcf svg.dcf__tall{display:block;}
}

/* --- the theme's dark scheme --- */
[data-scheme="dark"] .dcf{
  --dcf-teal:#14c2d1; --dcf-deep:#7fe0e9; --dcf-muted:#5d7276;
  --dcf-ribbon-a:#131f22; --dcf-ribbon-b:#1b373d; --dcf-rule:#2b4f56;
  --dcf-node:#101a1c; --dcf-badge:#9fb3b5; --dcf-cap:#9fb3b5;
}
[data-scheme="dark"] .dcf-out-ico{stroke:#04181a;}
</style>

<figure class="dcf">

  <!-- icon set: never rendered directly, only referenced -->
  <svg class="dcf__defs" aria-hidden="true" focusable="false">
    <defs>
      <symbol id="dcf-i1" viewBox="0 0 24 24"><rect x="3" y="4.5" width="18" height="15" rx="2.5"/><path d="M3 9.5h18M6.2 7h.01M9 7h.01"/></symbol>
      <symbol id="dcf-i2" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.6"/><path d="M9.2 9.4h.01M14.8 10.6h.01M10.4 14.9h.01M15.1 14.4h.01"/></symbol>
      <symbol id="dcf-i3" viewBox="0 0 24 24"><circle cx="12" cy="12" r="2.1"/><path d="M8.6 8.6a4.8 4.8 0 0 0 0 6.8M15.4 15.4a4.8 4.8 0 0 0 0-6.8M5.9 5.9a8.6 8.6 0 0 0 0 12.2M18.1 18.1a8.6 8.6 0 0 0 0-12.2"/></symbol>
      <symbol id="dcf-i4" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.4"/><path d="M6.1 17.9 17.9 6.1"/></symbol>
      <symbol id="dcf-i5" viewBox="0 0 24 24"><rect x="3" y="5" width="18" height="14" rx="2.5"/><circle cx="8.6" cy="11" r="2"/><path d="M5.6 16.4c.6-1.5 1.7-2.3 3-2.3s2.4.8 3 2.3M14.6 10h3.8M14.6 13.4h3.8"/></symbol>
      <symbol id="dcf-i6" viewBox="0 0 24 24"><path d="M4 6.5h9M4 11.5h9M4 16.5h6M17.5 19.5v-8M17.5 11.5 14.8 14.2M17.5 11.5l2.7 2.7"/></symbol>
    </defs>
  </svg>

  <details class="dcf__box">
    <summary class="dcf__sum">

      <!-- compact view -->
      <svg class="dcf__mini" viewBox="0 0 440 76" role="img" aria-label="The six steps of the domain audit, in brief">
        <defs>
          <linearGradient id="dcf-g0" x1="0" y1="0" x2="1" y2="0">
            <stop offset="0" stop-color="var(--dcf-ribbon-a)"/>
            <stop offset="1" stop-color="var(--dcf-ribbon-b)"/>
          </linearGradient>
        </defs>

        <path fill="url(#dcf-g0)" d="M4 16 L436 28 L436 48 L4 60 Z"/>

        <g class="dcf-dot" opacity=".85">
          <circle cx="11" cy="26" r="2.2"/><circle cx="18" cy="38" r="1.8"/><circle cx="10" cy="50" r="2"/>
          <circle cx="72" cy="24" r="1.7"/><circle cx="146" cy="52" r="1.9"/><circle cx="220" cy="28" r="1.6"/>
        </g>
        <g class="dcf-dot" opacity=".5">
          <circle cx="80" cy="66" r="2.2"/><circle cx="90" cy="73" r="1.6"/>
          <circle cx="228" cy="62" r="2"/><circle cx="238" cy="70" r="1.5"/>
          <circle cx="300" cy="58" r="1.8"/>
        </g>
        <g class="dcf-hit"><circle cx="366" cy="32" r="2"/><circle cx="372" cy="45" r="1.7"/></g>

        <circle class="dcf-node" cx="34" cy="38" r="22"/>
        <use href="#dcf-i1" class="dcf-ico" x="19" y="23" width="30" height="30"/>
        <circle class="dcf-node" cx="108" cy="38" r="22"/>
        <use href="#dcf-i2" class="dcf-ico" x="93" y="23" width="30" height="30"/>
        <circle class="dcf-node" cx="182" cy="38" r="22"/>
        <use href="#dcf-i3" class="dcf-ico" x="167" y="23" width="30" height="30"/>
        <circle class="dcf-node" cx="256" cy="38" r="22"/>
        <use href="#dcf-i4" class="dcf-ico" x="241" y="23" width="30" height="30"/>
        <circle class="dcf-node" cx="330" cy="38" r="22"/>
        <use href="#dcf-i5" class="dcf-ico" x="315" y="23" width="30" height="30"/>
        <rect class="dcf-out" x="382" y="16" width="44" height="44" rx="12"/>
        <use href="#dcf-i6" class="dcf-out-ico" x="389" y="23" width="30" height="30"/>
      </svg>

      <span class="dcf__hint"><i>Detailed diagram</i><b>Smaller diagram</b></span>
    </summary>

  <!-- wide view -->
  <svg class="dcf__wide" viewBox="0 0 720 244" role="img" aria-labelledby="dcf-t1 dcf-d1">
    <title id="dcf-t1">The domain audit process</title>
    <desc id="dcf-d1">A narrowing flow diagram with six icons: page load, cookie acceptance, Meta pixel detection, restriction check, company data collection, and finally the finished list. A few domains drop out at every step.</desc>
    <defs>
      <linearGradient id="dcf-g1" x1="0" y1="0" x2="1" y2="0">
        <stop offset="0" stop-color="var(--dcf-ribbon-a)"/>
        <stop offset="1" stop-color="var(--dcf-ribbon-b)"/>
      </linearGradient>
    </defs>

    <path fill="url(#dcf-g1)" d="M6 30 L714 88 L714 152 L6 210 Z"/>

    <!-- what comes in -->
    <g class="dcf-dot" opacity=".9">
      <circle cx="15" cy="52" r="3.4"/><circle cx="31" cy="70" r="2.6"/><circle cx="16" cy="88" r="2.9"/>
      <circle cx="35" cy="104" r="3.6"/><circle cx="18" cy="122" r="2.5"/><circle cx="33" cy="140" r="3.2"/>
      <circle cx="15" cy="158" r="2.8"/><circle cx="30" cy="176" r="3.4"/><circle cx="17" cy="192" r="2.4"/>
      <circle cx="50" cy="60" r="2.4"/><circle cx="53" cy="94" r="3.1"/><circle cx="47" cy="130" r="2.6"/>
      <circle cx="52" cy="164" r="3.3"/><circle cx="45" cy="188" r="2.2"/>
      <circle cx="132" cy="62" r="2.8"/><circle cx="146" cy="172" r="3.1"/><circle cx="168" cy="84" r="2.4"/>
      <circle cx="250" cy="74" r="2.9"/><circle cx="266" cy="160" r="2.5"/><circle cx="286" cy="104" r="2.2"/>
      <circle cx="372" cy="92" r="2.6"/><circle cx="386" cy="146" r="2.2"/>
      <circle cx="492" cy="108" r="2.3"/>
    </g>

    <!-- what drops out -->
    <g class="dcf-dot" opacity=".5">
      <circle cx="128" cy="204" r="3.2"/><circle cx="146" cy="219" r="2.6"/><circle cx="114" cy="228" r="2.2"/><circle cx="158" cy="234" r="1.8"/>
      <circle cx="358" cy="188" r="3"/><circle cx="376" cy="204" r="2.4"/><circle cx="348" cy="214" r="2"/><circle cx="390" cy="226" r="1.7"/>
      <circle cx="482" cy="178" r="2.8"/><circle cx="498" cy="196" r="2.3"/><circle cx="472" cy="208" r="1.9"/>
    </g>

    <!-- what makes it through -->
    <g class="dcf-hit">
      <circle cx="516" cy="128" r="3"/><circle cx="604" cy="112" r="2.6"/><circle cx="618" cy="134" r="3.2"/>
    </g>

    <!-- direction of travel -->
    <g class="dcf-arrow">
      <path d="M135 113 l7 7 -7 7"/><path d="M253 113 l7 7 -7 7"/><path d="M371 113 l7 7 -7 7"/>
      <path d="M489 113 l7 7 -7 7"/><path d="M607 113 l7 7 -7 7"/>
    </g>

    <circle class="dcf-node" cx="80" cy="120" r="36"/>
    <use href="#dcf-i1" class="dcf-ico" x="56" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="55" cy="95" r="13"/><text class="dcf-num" x="55" y="95">01</text>

    <circle class="dcf-node" cx="198" cy="120" r="36"/>
    <use href="#dcf-i2" class="dcf-ico" x="174" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="173" cy="95" r="13"/><text class="dcf-num" x="173" y="95">02</text>

    <circle class="dcf-node" cx="316" cy="120" r="36"/>
    <use href="#dcf-i3" class="dcf-ico" x="292" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="291" cy="95" r="13"/><text class="dcf-num" x="291" y="95">03</text>

    <circle class="dcf-node" cx="434" cy="120" r="36"/>
    <use href="#dcf-i4" class="dcf-ico" x="410" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="409" cy="95" r="13"/><text class="dcf-num" x="409" y="95">04</text>

    <circle class="dcf-node" cx="552" cy="120" r="36"/>
    <use href="#dcf-i5" class="dcf-ico" x="528" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="527" cy="95" r="13"/><text class="dcf-num" x="527" y="95">05</text>

    <rect class="dcf-out" x="632" y="84" width="72" height="72" rx="18"/>
    <use href="#dcf-i6" class="dcf-out-ico" x="644" y="96" width="48" height="48"/>
    <circle class="dcf-badge" cx="638" cy="90" r="13"/><text class="dcf-num" x="638" y="90">06</text>
  </svg>

  <!-- narrow view -->
  <svg class="dcf__tall" viewBox="0 0 360 566" role="img" aria-labelledby="dcf-t2 dcf-d2">
    <title id="dcf-t2">The domain audit process</title>
    <desc id="dcf-d2">A narrowing flow diagram with six icons: page load, cookie acceptance, Meta pixel detection, restriction check, company data collection, and finally the finished list. A few domains drop out at every step.</desc>
    <defs>
      <linearGradient id="dcf-g2" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0" stop-color="var(--dcf-ribbon-a)"/>
        <stop offset="1" stop-color="var(--dcf-ribbon-b)"/>
      </linearGradient>
    </defs>

    <path fill="url(#dcf-g2)" d="M42 8 L318 8 L228 558 L132 558 Z"/>

    <g class="dcf-dot" opacity=".9">
      <circle cx="60" cy="26" r="3.4"/><circle cx="88" cy="44" r="2.6"/><circle cx="124" cy="22" r="2.9"/>
      <circle cx="236" cy="26" r="3.3"/><circle cx="272" cy="42" r="2.5"/><circle cx="300" cy="24" r="3"/>
      <circle cx="66" cy="66" r="2.4"/><circle cx="296" cy="64" r="2.7"/><circle cx="118" cy="52" r="2.2"/>
      <circle cx="78" cy="140" r="2.8"/><circle cx="284" cy="132" r="2.5"/>
      <circle cx="96" cy="232" r="2.6"/><circle cx="268" cy="222" r="2.3"/>
      <circle cx="112" cy="318" r="2.4"/><circle cx="252" cy="306" r="2.1"/>
    </g>

    <g class="dcf-dot" opacity=".5">
      <circle cx="308" cy="108" r="3.2"/><circle cx="330" cy="126" r="2.5"/><circle cx="316" cy="146" r="2"/>
      <circle cx="52" cy="268" r="3"/><circle cx="30" cy="288" r="2.4"/><circle cx="46" cy="306" r="1.9"/>
      <circle cx="292" cy="352" r="2.8"/><circle cx="314" cy="372" r="2.2"/><circle cx="300" cy="390" r="1.8"/>
    </g>

    <g class="dcf-hit">
      <circle cx="152" cy="452" r="3"/><circle cx="208" cy="466" r="2.6"/><circle cx="168" cy="486" r="3.1"/>
    </g>

    <g class="dcf-arrow">
      <path d="M173 100 l7 7 7 -7"/><path d="M173 190 l7 7 7 -7"/><path d="M173 280 l7 7 7 -7"/>
      <path d="M173 367 l7 7 7 -7"/><path d="M173 452 l7 7 7 -7"/>
    </g>

    <circle class="dcf-node" cx="180" cy="58" r="36"/>
    <use href="#dcf-i1" class="dcf-ico" x="156" y="34" width="48" height="48"/>
    <circle class="dcf-badge" cx="155" cy="33" r="13"/><text class="dcf-num" x="155" y="33">01</text>

    <circle class="dcf-node" cx="180" cy="148" r="36"/>
    <use href="#dcf-i2" class="dcf-ico" x="156" y="124" width="48" height="48"/>
    <circle class="dcf-badge" cx="155" cy="123" r="13"/><text class="dcf-num" x="155" y="123">02</text>

    <circle class="dcf-node" cx="180" cy="238" r="36"/>
    <use href="#dcf-i3" class="dcf-ico" x="156" y="214" width="48" height="48"/>
    <circle class="dcf-badge" cx="155" cy="213" r="13"/><text class="dcf-num" x="155" y="213">03</text>

    <circle class="dcf-node" cx="180" cy="325" r="36"/>
    <use href="#dcf-i4" class="dcf-ico" x="156" y="301" width="48" height="48"/>
    <circle class="dcf-badge" cx="155" cy="300" r="13"/><text class="dcf-num" x="155" y="300">04</text>

    <circle class="dcf-node" cx="180" cy="410" r="36"/>
    <use href="#dcf-i5" class="dcf-ico" x="156" y="386" width="48" height="48"/>
    <circle class="dcf-badge" cx="155" cy="385" r="13"/><text class="dcf-num" x="155" y="385">05</text>

    <rect class="dcf-out" x="144" y="486" width="72" height="72" rx="18"/>
    <use href="#dcf-i6" class="dcf-out-ico" x="156" y="498" width="48" height="48"/>
    <circle class="dcf-badge" cx="150" cy="492" r="13"/><text class="dcf-num" x="150" y="492">06</text>
  </svg>

  </details>

  <figcaption class="dcf__cap">
    Every step filters something out: whatever survives all six ends up on the list.
  </figcaption>
</figure>



<p class="wp-block-paragraph">We put the whole thing together with Claude Code, and Claude supervised the runs as well. The run took about a week. Claude didn&#8217;t eat many tokens over that stretch, because the machine ran the script Claude had written. Along the way Claude produced all sorts of statistics about the audit results, and reported in every few hours on where the process stood. So screening prospects like this won&#8217;t blow up your AI bill either.</p>



<h2 class="wp-block-heading">But how did the headless browser know which sites to check?</h2>



<p class="wp-block-paragraph">From public databases. We used two of them, both completely free and nicely structured:</p>



<ul class="wp-block-list">
<li><a href="https://www.openstreetmap.org/" target="_blank" rel="noopener" title="">OpenStreetMap</a></li>



<li><a href="https://overturemaps.org/" target="_blank" rel="noopener" title="">Overture Maps</a></li>
</ul>



<p class="wp-block-paragraph">Really it came down to filtering for healthcare providers in a given country. The list that came back already carried some of what LinkedIn needs: company email address, city, postal code. But the most valuable field in these databases is the company&#8217;s website. As we showed above, a single URL is all we need to run the audit.</p>



<p class="wp-block-paragraph">Once we have a company&#8217;s domain, we can walk it through the audit steps. No two websites are alike, though, so the headless browser might fail to get past the consent bar, or the site might carry no structured data at all. Then it has to go digging around the site itself, hunting for the Contact page, say, hoping the information we&#8217;re after is sitting there.</p>



<p class="wp-block-paragraph">Those extra rounds are why the audit deserves a reasonably powerful machine with plenty of RAM. Keep an eye on how many sites the headless browser audits in parallel, too.</p>



<h2 class="wp-block-heading">What is a B2B prospect list actually good for?</h2>



<p class="wp-block-paragraph">We used the process to find out one specific thing about a prospect&#8217;s website. The same process runs behind the <a href="https://metamorph.ad/audit" target="_blank" rel="noopener" title="">Metamorph audit</a> page, except there it happens in real time. So when we promote that audit page on LinkedIn to the audience we just built, it&#8217;s a safe bet. The people seeing the ad are ones we already know Meta is blocking, which makes the outcome of the on-site audit pretty much a given.</p>



<p class="wp-block-paragraph">Auditing the websites isn&#8217;t mandatory either. You can also build a B2B prospect list straight off the databases above, seasoned with extra data collected from the sites. We&#8217;ve put together a global PPC agency list this way, purely from what the databases hold. </p>



<h2 class="wp-block-heading">Limits</h2>



<p class="wp-block-paragraph">The process has its limits, of course. These databases only list companies with a physical store, headquarters, or site. Fully online businesses, like a lot of PPC agencies, aren&#8217;t in there, so they&#8217;re not on our B2B prospect list either. With healthcare providers that&#8217;s rarely a problem.</p>



<h2 class="wp-block-heading">Results: how the B2B prospect list performed</h2>



<p class="wp-block-paragraph">So how did the list actually perform? We ran a Thought Leader Ad against that 300-company B2B prospect list of Meta-blocked Hungarian healthcare providers. For anyone less familiar with LinkedIn: that&#8217;s the ad format where an employee of the company (usually a leader) writes a post in their own LinkedIn feed, and the company then promotes it. So our Péter wrote a post, in Hungarian, linking to the blog post about Meta&#8217;s blocking.</p>



<p class="wp-block-paragraph">We narrowed the identified healthcare companies further, down to those with 1 to 50 employees, to filter out the largest blocked companies. LinkedIn would also let us filter by seniority, but we skipped that this time. </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="172" src="https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-1024x172.png" alt="LinkedIn Ads campaign report: the Thought Leader Ad running at a 7.69% average CTR" class="wp-image-1307" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-1024x172.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-300x50.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-768x129.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-1536x258.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-2048x344.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-400x67.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-800x134.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-832x140.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-1664x280.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-1248x210.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-2496x419.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/09/blog-linkedin-campaign-aktiv-scaled.png 2560w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The result was a 7.69% CTR, which for a plain image ad on LinkedIn is, in our view, a genuinely good number.</p><p>The post <a href="https://blog.datacrew.agency/en/data-driven-decisions/b2b-prospect-list-linkedin-ads/">How We Built a B2B Prospect List for LinkedIn Ads</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Everything about Meta&#8217;s data sharing restrictions</title>
		<link>https://blog.datacrew.agency/en/server-side-tagging/meta-data-sharing-restrictions/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 31 Aug 2026 11:42:18 +0000</pubDate>
				<category><![CDATA[Server-side tagging]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/meta-data-sharing-restrictions/</guid>

					<description><![CDATA[<p>We audited 36,717 healthcare sites running a Meta pixel and 41.2% were hit by Meta data sharing restrictions. What they block, and what actually fixes them.</p>
<p>The post <a href="https://blog.datacrew.agency/en/server-side-tagging/meta-data-sharing-restrictions/">Everything about Meta’s data sharing restrictions</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">As a PPC campaign manager, accurate measurement is everything. Without it your campaigns are flying blind, and the results show it. And few things break measurement as quietly as Meta data sharing restrictions.</p>



<p class="wp-block-paragraph">So what happens when everything looked fine on Friday in the Meta campaigns for the dental practice you run ads for, and on Monday you find out that not a single lead came in all weekend? The campaign starts drying up: on Friday it could see the conversions, on Monday it can&#8217;t. Nobody changed anything in between. Strange. Very strange. Analytics looks fine, but Meta simply doesn&#8217;t see the conversions. Time to start worrying.</p>



<h2 class="wp-block-heading">What&#8217;s going on?</h2>



<p class="wp-block-paragraph">Meta continuously watches the data coming in through the pixel and the CAPI, and infers from it what a given site is about. It looks at the hostname, the page path and the URL parameters. Then it sorts sites into categories based on the URLs it finds. The point of all this is to catch sites that may be sending Meta data they shouldn&#8217;t under the <a href="https://www.facebook.com/legal/technology_terms" target="_blank" rel="noopener">Business Tools Terms</a>.</p>



<p class="wp-block-paragraph">And the terms do include a clause saying you can&#8217;t send health information to Meta. So if the Meta pixel fires on, say, bestever.md/ear-nose-throat-surgery (made up), you&#8217;re sending Meta health information, plain and simple. Anyone browsing that page probably has a condition that calls for that kind of treatment, and there you have it, prohibited data shared with Meta.</p>



<p class="wp-block-paragraph">So now you&#8217;re on the wrong side of the terms, even though you didn&#8217;t really do anything wrong. The pixel is just sitting there on the site. It&#8217;s alarmingly easy to walk into a restriction like this, and getting back out is another story entirely.</p>



<h2 class="wp-block-heading">Which topics does Meta restrict?</h2>



<p class="wp-block-paragraph">Beyond healthcare sites, it restricts gambling, adult, firearms, religion, tobacco and fintech topics, among plenty of others. Customer portals and sites behind a registration gate often get restricted too.</p>



<p class="wp-block-paragraph">Still, the restriction that causes the most headaches for advertisers is the one hitting healthcare and dental sites. That&#8217;s an enormous market, and a huge number of clients can be caught up in it.</p>



<h2 class="wp-block-heading">Third-party booking systems</h2>



<p class="wp-block-paragraph">Worth calling out: healthcare providers using a third-party booking system may be in luck. If the booking doesn&#8217;t happen on the provider&#8217;s own restricted domain but on an external URL, those providers can dodge the restriction. Medio, a booking platform popular in our home market of Hungary, carries no Meta restriction at all. The reason is that they don&#8217;t use URLs that could trigger one. Take a made-up Medio URL: besteverdoctor.mymedio.hu/doctors?specializationId=86435. There&#8217;s nothing in there that reveals sensitive health information. So Meta doesn&#8217;t restrict the mymedio.hu domain, and the healthcare providers using it don&#8217;t lose conversions.</p>



<p class="wp-block-paragraph">We&#8217;re not getting paid by Medio for the free advertising, sadly. We just wanted to use them to show how the restriction logic works. If you dropped the Medio booking widget into the restricted bestever.md site inside an iframe, you&#8217;d have no conversion tracking for Meta. Use the external booking flow and you would.</p>



<h2 class="wp-block-heading">Our audit</h2>



<p class="wp-block-paragraph">We ran an automated audit against more than 36,000 healthcare sites running a Meta pixel. 41.2% of them turned out to be living with Meta data sharing restrictions.</p>



<!-- ============================================================
     DataCrew - "Our audit" data block, English rendering.
     Paste into WordPress as a Custom HTML block.
     Self-contained: no external CSS, images, fonts or JavaScript.
     Data source: DataCrew Meta restriction audit, August 2026.
     Same dataset as the Hungarian block, with English labels and
     US number formatting.
     ============================================================ -->
<div class="dc-audit">
<style>
.dc-audit{--t:#0099a6;--t-lt:#5cc0ca;--t-dk:#08535e;--ink:#16191a;--mut:#5c6669;--dim:#7c868b;
  --surf:#f7fbfb;--line:#dfeaeb;
  font-family:'Sora','DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:var(--surf);border:1px solid var(--line);border-radius:14px;
  padding:26px 24px 22px;margin:32px 0;color:var(--ink);line-height:1.5;
  font-size:15px;-webkit-font-smoothing:antialiased;text-align:left}
.dc-audit *{box-sizing:border-box}
.dc-audit p{margin:0}
.dc-eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  font-weight:600;margin:0 0 8px}
.dc-audit .dc-title{font-size:21px;line-height:1.25;font-weight:700;letter-spacing:-.02em;
  margin:0 0 6px;color:var(--ink)}
.dc-sub{font-size:13px;color:var(--mut);margin:0 0 20px;max-width:54ch}

/* --- KPI row --- */
.dc-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 22px}
.dc-kpi{background:#fff;padding:12px 12px 11px}
.dc-kpi b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.dc-kpi span{display:block;font-size:11px;color:var(--mut);margin-top:3px;line-height:1.3}

/* --- headline number --- */
.dc-hero{display:flex;align-items:center;gap:16px;margin:0 0 22px}
.dc-hero b{font-size:52px;font-weight:700;letter-spacing:-.045em;line-height:1;color:var(--t);flex:0 0 auto}
.dc-hero p{font-size:13.5px;color:var(--mut);line-height:1.45}

/* --- figures --- */
.dc-fig{margin:0 0 22px}
.dc-cap{font-size:12px;font-weight:600;color:var(--ink);margin:0 0 8px}
.dc-note{font-size:11.5px;color:var(--dim);margin:16px 0 0;line-height:1.45}

/* ratio bar: a 2px gap in the surface color separates the two segments */
.dc-split{display:flex;height:34px;border-radius:5px;overflow:hidden;gap:2px;background:var(--surf)}
.dc-split--sm{height:13px;border-radius:3px}
.dc-seg{display:flex;align-items:center;padding:0 10px;font-size:11.5px;font-weight:600;
  color:#04181a;white-space:nowrap;overflow:hidden}
.dc-seg--b{background:var(--t);border-radius:5px 0 0 5px}
.dc-seg--c{background:var(--t-lt);border-radius:0 5px 5px 0}
.dc-split--sm .dc-seg{padding:0;border-radius:3px 0 0 3px}
.dc-split--sm .dc-seg--c{border-radius:0 3px 3px 0}

/* continent rows */
.dc-row{margin:0 0 14px}
.dc-row:last-child{margin-bottom:0}
.dc-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 5px}
.dc-name{font-size:13px;font-weight:600;color:var(--ink)}
.dc-val{font-size:13px;font-weight:700;color:var(--t);font-variant-numeric:tabular-nums}
.dc-meta{font-size:11px;color:var(--dim);margin:5px 0 0}
.dc-row--hi{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}
.dc-row--hi .dc-seg--b{background:var(--t-dk)}
.dc-row--hi .dc-val{color:var(--t-dk)}

/* legend */
.dc-key{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 14px;font-size:11.5px;color:var(--mut)}
.dc-key span{display:flex;align-items:center;gap:6px}
.dc-key i{width:10px;height:10px;border-radius:2px;display:block}

/* --- toggle: country breakdown (no JavaScript, <details>) --- */
.dc-audit details{border-top:1px solid var(--line);padding-top:16px;margin:0}
.dc-audit summary{display:inline-block;list-style:none;cursor:pointer;
  font-size:12.5px;font-weight:600;color:var(--t);background:#fff;
  border:1px solid var(--t);border-radius:999px;padding:8px 16px;
  transition:background .15s,color .15s}
.dc-audit summary:hover{background:var(--t);color:#fff}
.dc-audit summary:focus-visible{outline:2px solid var(--t);outline-offset:3px}
.dc-audit summary::-webkit-details-marker{display:none}
.dc-audit summary::before{content:"\25B8";margin-right:7px;font-size:11px}
.dc-audit details[open] summary::before{content:"\25BE"}
.dc-open{display:inline}
.dc-close{display:none}
.dc-audit details[open] .dc-open{display:none}
.dc-audit details[open] .dc-close{display:inline}
.dc-more{padding-top:22px}

/* country bars */
.dc-bars{position:relative;padding-top:17px}
.dc-ref{position:absolute;top:17px;bottom:16px;width:1px;background:#b9c6c8;
  left:calc(124px + (100% - 170px) * 0.6874)}
.dc-ref b{position:absolute;top:-16px;left:-1px;font-size:10px;font-weight:600;color:var(--dim);
  white-space:nowrap;background:var(--surf);padding:0 3px}
.dc-crow{display:grid;grid-template-columns:124px 1fr 46px;align-items:center;height:21px}
.dc-crow:hover .dc-cbar{filter:brightness(.9)}
.dc-cname{font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;padding-right:10px}
.dc-ctrack{display:block;height:12px;position:relative}
.dc-cbar{display:block;height:12px;background:var(--t);border-radius:0 3px 3px 0;min-width:2px}
.dc-cval{font-size:11.5px;color:var(--mut);text-align:right;font-variant-numeric:tabular-nums}
.dc-crow--hi .dc-cbar{background:var(--t-dk)}
.dc-crow--hi .dc-cname,.dc-crow--hi .dc-cval{color:var(--ink);font-weight:700}
.dc-axis{display:grid;grid-template-columns:124px 1fr 46px;margin-top:5px}
.dc-axis span{grid-column:2;position:relative;height:16px;border-top:1px solid var(--line)}
.dc-axis i{position:absolute;top:3px;font-size:10px;font-style:normal;color:var(--dim);
  transform:translateX(-50%)}

/* table */
.dc-audit .dc-tbl{width:100%;border-collapse:collapse;margin-top:20px;font-size:11.5px;
  font-variant-numeric:tabular-nums}
.dc-audit .dc-tbl caption{caption-side:top;text-align:left;font-size:12px;font-weight:600;
  color:var(--ink);padding:0 0 6px}
.dc-audit .dc-tbl th,.dc-audit .dc-tbl td{padding:6px;text-align:right;
  border-bottom:1px solid var(--line);color:var(--mut)}
.dc-audit .dc-tbl thead th{color:var(--ink);font-weight:600;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.04em}
.dc-audit .dc-tbl th[scope=row]{text-align:left;color:var(--ink);font-weight:500}

@media (max-width:600px){
  .dc-audit{padding:20px 16px 18px;font-size:14px}
  .dc-audit .dc-title{font-size:19px}
  .dc-kpis{grid-template-columns:1fr 1fr}
  .dc-kpis .dc-kpi:last-child{grid-column:1 / -1}
  .dc-hero{gap:12px}
  .dc-hero b{font-size:42px}
  .dc-seg{font-size:10.5px;padding:0 8px}
  .dc-crow,.dc-axis{grid-template-columns:104px 1fr 40px}
  .dc-cname,.dc-cval{font-size:10px}
  .dc-ref{left:calc(104px + (100% - 144px) * 0.6874)}
  .dc-audit .dc-tbl{font-size:10.5px}
}
/* The toggle is meaningless in print, but its content should stay. */
@media print{.dc-audit summary{display:none}.dc-audit .dc-more{padding-top:0}}
</style>

  <p class="dc-eyebrow">DataCrew audit · August 2026</p>
  <p class="dc-title">What we found on the Meta pixels of 36,717 healthcare sites</p>
  <p class="dc-sub">We ran an automated audit across healthcare and wellness websites in 33
    countries on three continents. Only sites actually running a Meta pixel are in these
    numbers. The question was whether Meta had placed a data sharing restriction on the
    domain.</p>

  <div class="dc-kpis">
    <div class="dc-kpi"><b>36,717</b><span>healthcare sites running a Meta pixel</span></div>
    <div class="dc-kpi"><b>15,144</b><span>of them are under restriction</span></div>
    <div class="dc-kpi"><b>33</b><span>countries, three continents</span></div>
  </div>

  <div class="dc-hero">
    <b>41.2%</b>
    <p><strong>That&#8217;s the share</strong> of healthcare sites running a Meta pixel that Meta
      restricts. This isn&#8217;t a handful of edge cases: roughly one advertiser in three is
      affected.</p>
  </div>

  <div class="dc-fig">
    <p class="dc-cap">How the 36,717 pixel-running sites break down</p>
    <div class="dc-split">
      <div class="dc-seg dc-seg--b" style="flex:15144">15,144 restricted · 41.2%</div>
      <div class="dc-seg dc-seg--c" style="flex:21573">21,573 clear · 58.8%</div>
    </div>
  </div>

  <div class="dc-fig">
    <p class="dc-cap">Share of restricted sites by continent</p>
    <div class="dc-key">
      <span><i style="background:#0099a6"></i>restricted</span>
      <span><i style="background:#5cc0ca"></i>no restriction</span>
    </div>
      <div class="dc-row">
        <div class="dc-row-head"><span class="dc-name">Oceania</span><span class="dc-val">45.9%</span></div>
        <div class="dc-split dc-split--sm">
          <div class="dc-seg dc-seg--b" style="flex:2427"></div>
          <div class="dc-seg dc-seg--c" style="flex:2857"></div>
        </div>
        <p class="dc-meta">2,427 restricted · 5,284 sites running a pixel · 2 countries</p>
      </div>
      <div class="dc-row">
        <div class="dc-row-head"><span class="dc-name">North America</span><span class="dc-val">44.4%</span></div>
        <div class="dc-split dc-split--sm">
          <div class="dc-seg dc-seg--b" style="flex:4204"></div>
          <div class="dc-seg dc-seg--c" style="flex:5255"></div>
        </div>
        <p class="dc-meta">4,204 restricted · 9,459 sites running a pixel · 2 countries</p>
      </div>
      <div class="dc-row">
        <div class="dc-row-head"><span class="dc-name">Europe</span><span class="dc-val">38.7%</span></div>
        <div class="dc-split dc-split--sm">
          <div class="dc-seg dc-seg--b" style="flex:8513"></div>
          <div class="dc-seg dc-seg--c" style="flex:13461"></div>
        </div>
        <p class="dc-meta">8,513 restricted · 21,974 sites running a pixel · 29 countries</p>
      </div>
    <p class="dc-note">Each bar represents 100% of the pixel-running sites on that continent.
      Country-level numbers are in the breakdown below.</p>
  </div>

  <details>
    <summary><span class="dc-open">Show the country breakdown</span><span
      class="dc-close">Hide the country breakdown</span></summary>
    <div class="dc-more">
      <p class="dc-cap">Share of restricted sites by country</p>
      <div class="dc-bars">
        <div class="dc-ref"><b>average 41.2%</b></div>
        <div class="dc-crow" title="Italy: 1,203 restricted out of 2,238 sites running a pixel">
          <span class="dc-cname">Italy</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:89.59%"></span></span>
          <span class="dc-cval">53.8%</span>
        </div>
        <div class="dc-crow" title="Romania: 335 restricted out of 625 sites running a pixel">
          <span class="dc-cname">Romania</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:89.33%"></span></span>
          <span class="dc-cval">53.6%</span>
        </div>
        <div class="dc-crow" title="Spain: 992 restricted out of 1,995 sites running a pixel">
          <span class="dc-cname">Spain</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:82.87%"></span></span>
          <span class="dc-cval">49.7%</span>
        </div>
        <div class="dc-crow" title="Lithuania: 127 restricted out of 256 sites running a pixel">
          <span class="dc-cname">Lithuania</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:82.68%"></span></span>
          <span class="dc-cval">49.6%</span>
        </div>
        <div class="dc-crow" title="Australia: 2,171 restricted out of 4,624 sites running a pixel">
          <span class="dc-cname">Australia</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:78.25%"></span></span>
          <span class="dc-cval">47.0%</span>
        </div>
        <div class="dc-crow" title="Portugal: 196 restricted out of 423 sites running a pixel">
          <span class="dc-cname">Portugal</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:77.23%"></span></span>
          <span class="dc-cval">46.3%</span>
        </div>
        <div class="dc-crow" title="United States: 2,269 restricted out of 4,922 sites running a pixel">
          <span class="dc-cname">United States</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:76.83%"></span></span>
          <span class="dc-cval">46.1%</span>
        </div>
        <div class="dc-crow" title="Canada: 1,935 restricted out of 4,537 sites running a pixel">
          <span class="dc-cname">Canada</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:71.08%"></span></span>
          <span class="dc-cval">42.6%</span>
        </div>
        <div class="dc-crow" title="Sweden: 170 restricted out of 403 sites running a pixel">
          <span class="dc-cname">Sweden</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:70.31%"></span></span>
          <span class="dc-cval">42.2%</span>
        </div>
        <div class="dc-crow" title="Ireland: 146 restricted out of 348 sites running a pixel">
          <span class="dc-cname">Ireland</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:69.92%"></span></span>
          <span class="dc-cval">42.0%</span>
        </div>
        <div class="dc-crow" title="United Kingdom: 1,593 restricted out of 3,870 sites running a pixel">
          <span class="dc-cname">United Kingdom</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:68.60%"></span></span>
          <span class="dc-cval">41.2%</span>
        </div>
        <div class="dc-crow" title="New Zealand: 256 restricted out of 660 sites running a pixel">
          <span class="dc-cname">New Zealand</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:64.65%"></span></span>
          <span class="dc-cval">38.8%</span>
        </div>
        <div class="dc-crow" title="Slovakia: 97 restricted out of 274 sites running a pixel">
          <span class="dc-cname">Slovakia</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:59.00%"></span></span>
          <span class="dc-cval">35.4%</span>
        </div>
        <div class="dc-crow" title="Poland: 701 restricted out of 1,984 sites running a pixel">
          <span class="dc-cname">Poland</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:58.89%"></span></span>
          <span class="dc-cval">35.3%</span>
        </div>
        <div class="dc-crow" title="Czechia: 172 restricted out of 493 sites running a pixel">
          <span class="dc-cname">Czechia</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:58.15%"></span></span>
          <span class="dc-cval">34.9%</span>
        </div>
        <div class="dc-crow" title="Germany: 695 restricted out of 1,999 sites running a pixel">
          <span class="dc-cname">Germany</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:57.95%"></span></span>
          <span class="dc-cval">34.8%</span>
        </div>
        <div class="dc-crow" title="Denmark: 285 restricted out of 831 sites running a pixel">
          <span class="dc-cname">Denmark</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:57.16%"></span></span>
          <span class="dc-cval">34.3%</span>
        </div>
        <div class="dc-crow" title="Switzerland: 199 restricted out of 600 sites running a pixel">
          <span class="dc-cname">Switzerland</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:55.28%"></span></span>
          <span class="dc-cval">33.2%</span>
        </div>
        <div class="dc-crow" title="Bulgaria: 91 restricted out of 291 sites running a pixel">
          <span class="dc-cname">Bulgaria</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:52.12%"></span></span>
          <span class="dc-cval">31.3%</span>
        </div>
        <div class="dc-crow" title="Hungary: 257 restricted out of 826 sites running a pixel">
          <span class="dc-cname">Hungary</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:51.86%"></span></span>
          <span class="dc-cval">31.1%</span>
        </div>
        <div class="dc-crow" title="Austria: 107 restricted out of 344 sites running a pixel">
          <span class="dc-cname">Austria</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:51.84%"></span></span>
          <span class="dc-cval">31.1%</span>
        </div>
        <div class="dc-crow" title="Netherlands: 405 restricted out of 1,366 sites running a pixel">
          <span class="dc-cname">Netherlands</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:49.41%"></span></span>
          <span class="dc-cval">29.6%</span>
        </div>
        <div class="dc-crow" title="Greece: 128 restricted out of 500 sites running a pixel">
          <span class="dc-cname">Greece</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:42.67%"></span></span>
          <span class="dc-cval">25.6%</span>
        </div>
        <div class="dc-crow" title="France: 212 restricted out of 859 sites running a pixel">
          <span class="dc-cname">France</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:41.13%"></span></span>
          <span class="dc-cval">24.7%</span>
        </div>
        <div class="dc-crow" title="Finland: 70 restricted out of 291 sites running a pixel">
          <span class="dc-cname">Finland</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:40.09%"></span></span>
          <span class="dc-cval">24.1%</span>
        </div>
        <div class="dc-crow" title="Belgium: 107 restricted out of 501 sites running a pixel">
          <span class="dc-cname">Belgium</span>
          <span class="dc-ctrack"><span class="dc-cbar" style="width:35.60%"></span></span>
          <span class="dc-cval">21.4%</span>
        </div>
        <div class="dc-axis"><span>
          <i style="left:0%">0%</i><i style="left:33.33%">20%</i>
          <i style="left:66.67%">40%</i><i style="left:100%">60%</i>
        </span></div>
      </div>
      <p class="dc-note">These are the 26 countries where we audited at least 250 sites
        running a Meta pixel. The full sample covers 33 countries; in the remaining seven
        the sample is too small to publish a standalone rate, though those sites are
        included in the overall and continent-level numbers.</p>
      <table class="dc-tbl">
        <caption>Counts by country</caption>
        <thead><tr><th scope="col">Country</th><th scope="col">Sites running a pixel</th>
          <th scope="col">Restricted</th><th scope="col">Share</th></tr></thead>
        <tbody>
          <tr><th scope="row">Italy</th><td>2,238</td><td>1,203</td><td>53.8%</td></tr>
          <tr><th scope="row">Romania</th><td>625</td><td>335</td><td>53.6%</td></tr>
          <tr><th scope="row">Spain</th><td>1,995</td><td>992</td><td>49.7%</td></tr>
          <tr><th scope="row">Lithuania</th><td>256</td><td>127</td><td>49.6%</td></tr>
          <tr><th scope="row">Australia</th><td>4,624</td><td>2,171</td><td>47.0%</td></tr>
          <tr><th scope="row">Portugal</th><td>423</td><td>196</td><td>46.3%</td></tr>
          <tr><th scope="row">United States</th><td>4,922</td><td>2,269</td><td>46.1%</td></tr>
          <tr><th scope="row">Canada</th><td>4,537</td><td>1,935</td><td>42.6%</td></tr>
          <tr><th scope="row">Sweden</th><td>403</td><td>170</td><td>42.2%</td></tr>
          <tr><th scope="row">Ireland</th><td>348</td><td>146</td><td>42.0%</td></tr>
          <tr><th scope="row">United Kingdom</th><td>3,870</td><td>1,593</td><td>41.2%</td></tr>
          <tr><th scope="row">New Zealand</th><td>660</td><td>256</td><td>38.8%</td></tr>
          <tr><th scope="row">Slovakia</th><td>274</td><td>97</td><td>35.4%</td></tr>
          <tr><th scope="row">Poland</th><td>1,984</td><td>701</td><td>35.3%</td></tr>
          <tr><th scope="row">Czechia</th><td>493</td><td>172</td><td>34.9%</td></tr>
          <tr><th scope="row">Germany</th><td>1,999</td><td>695</td><td>34.8%</td></tr>
          <tr><th scope="row">Denmark</th><td>831</td><td>285</td><td>34.3%</td></tr>
          <tr><th scope="row">Switzerland</th><td>600</td><td>199</td><td>33.2%</td></tr>
          <tr><th scope="row">Bulgaria</th><td>291</td><td>91</td><td>31.3%</td></tr>
          <tr><th scope="row">Hungary</th><td>826</td><td>257</td><td>31.1%</td></tr>
          <tr><th scope="row">Austria</th><td>344</td><td>107</td><td>31.1%</td></tr>
          <tr><th scope="row">Netherlands</th><td>1,366</td><td>405</td><td>29.6%</td></tr>
          <tr><th scope="row">Greece</th><td>500</td><td>128</td><td>25.6%</td></tr>
          <tr><th scope="row">France</th><td>859</td><td>212</td><td>24.7%</td></tr>
          <tr><th scope="row">Finland</th><td>291</td><td>70</td><td>24.1%</td></tr>
          <tr><th scope="row">Belgium</th><td>501</td><td>107</td><td>21.4%</td></tr>
        </tbody>
        <tfoot><tr><th scope="row">Total (33 countries)</th><td>36,717</td><td>15,144</td>
          <td>41.2%</td></tr></tfoot>
      </table>
    </div>
  </details>
</div>



<p class="wp-block-paragraph">More than 15,000 of the advertisers we audited are restricted, which is a staggering number. These sites can&#8217;t advertise the way their competitors can, the ones Meta isn&#8217;t restricting. Flip it around and it&#8217;s also an enormous business opportunity for the advertisers who aren&#8217;t restricted, because solving the restriction puts you in a much thinner field.</p>



<p class="wp-block-paragraph">Even after auditing this many sites, no clear picture emerged of why Meta restricts site X but not site Y. Not even when both sites belong to the same Business Manager. Meta restricts one site and not the next in what looks like a completely arbitrary pattern.</p>



<h2 class="wp-block-heading">What kind of restriction does a site get?</h2>



<p class="wp-block-paragraph">Meta data sharing restrictions come in <a href="https://business.facebook.com/business/help/511197658391698" target="_blank" rel="noopener">three levels</a>:</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e2.png" alt="🟢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Minimal: core setup</h3>



<p class="wp-block-paragraph">Here Meta only makes page paths and/or URL parameters unavailable. So it found URL parameters it would rather hide. On a financial site, for example, if the loan term is passed as a URL parameter, that typically gets restricted. This restriction level isn&#8217;t much of a problem in practice. Just watch out that you can&#8217;t define custom conversions and audiences based on the blocked parameters or pages.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e0.png" alt="🟠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Medium: certain standard events blocked</h3>



<p class="wp-block-paragraph">Now you have a real problem. You can&#8217;t send Meta just any event. Meta usually blocks the mid and lower funnel events, CompleteRegistration and Lead among them. From that point on you can&#8217;t optimize campaigns toward those events, and any campaign already optimizing toward them stops receiving fresh events. Campaigns can still optimize toward events that aren&#8217;t blocked, or toward landing page views.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f534.png" alt="🔴" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Full restriction</h3>



<p class="wp-block-paragraph">Meta completely blocks data sharing from a site categorized this way. Not even PageView really comes through, or it does in very limited numbers. With a full restriction, the best you can optimize toward is an ad click, which is a long way from a conversion.</p>



<h2 class="wp-block-heading">What does the advertiser see?</h2>



<p class="wp-block-paragraph">Not much, by default. On some gloomy day, the admin of the Meta Business Manager gets an email saying the site will fall under Meta data sharing restrictions in 30 days. The email looks like every other Meta BM system email: easy to ignore. That&#8217;s especially dangerous when the PPC campaign manager isn&#8217;t an admin in the Business Manager, because then only the client receives it, and since roughly no client understands what it&#8217;s about, the news that conversion tracking breaks in 30 days quietly evaporates. Here&#8217;s what the email looks like:</p>



<!-- DataCrew - Meta "data sharing restrictions" email replica block.
     WordPress: Custom HTML block, paste as is.
     Styles are namespaced with the dc-mail- prefix so nothing leaks into the theme. -->
<style>
.dc-mail{
  --dc-teal:#0099a6; --dc-teal-deep:#00707a; --dc-teal-ink:#04181a;
  --dc-tint:#e4f4f6; --dc-ink:#1b2224; --dc-text:#3d4749; --dc-muted:#6f797c;
  --dc-line:#e2e7e8; --dc-alert:#b3671a;
  font-family:'Sora',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  max-width:720px;margin:32px auto;color:var(--dc-text);
  font-size:15px;line-height:1.62;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
}
.dc-mail *{box-sizing:border-box;}
.dc-mail__card{
  background:#fff;border:1px solid var(--dc-line);border-radius:12px;overflow:hidden;
  box-shadow:0 1px 2px rgba(11,14,15,.04),0 12px 28px -18px rgba(11,14,15,.28);
}
.dc-mail__bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 20px;background:#f6f9f9;border-bottom:1px solid var(--dc-line);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dc-muted);
}
.dc-mail__bar b{color:var(--dc-teal-deep);font-weight:600;letter-spacing:.14em;}
.dc-mail__bar span{margin-left:auto;letter-spacing:.08em;text-transform:none;}

.dc-mail__head{padding:20px 24px 18px;border-bottom:1px solid var(--dc-line);}
.dc-mail__from{display:flex;align-items:center;gap:12px;}
.dc-mail__avatar{
  width:34px;height:34px;border-radius:50%;flex:0 0 34px;
  background:var(--dc-tint);color:var(--dc-teal-deep);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;letter-spacing:0;
}
.dc-mail__who{min-width:0;}
.dc-mail__who b{display:block;color:var(--dc-ink);font-size:14px;font-weight:600;}
.dc-mail__who span{display:block;color:var(--dc-muted);font-size:12.5px;word-break:break-all;}
.dc-mail__date{margin-left:auto;color:var(--dc-muted);font-size:12.5px;white-space:nowrap;padding-left:12px;}
.dc-mail__subject{
  margin:16px 0 0;color:var(--dc-ink);font-size:20px;line-height:1.3;
  font-weight:700;letter-spacing:-.02em;
}

.dc-mail__body{padding:22px 24px 26px;}
.dc-mail__body p{margin:0 0 14px;}
.dc-mail__body p:last-child{margin-bottom:0;}
.dc-mail__body h4{
  margin:24px 0 10px;color:var(--dc-ink);font-size:15.5px;font-weight:700;
  letter-spacing:-.015em;line-height:1.35;
}
.dc-mail__body ul{margin:0 0 14px;padding-left:20px;}
.dc-mail__body li{margin:0 0 4px;}
.dc-mail a{color:var(--dc-teal-deep);text-decoration:underline;text-underline-offset:2px;}
.dc-mail__pixel{color:var(--dc-teal-deep);font-weight:600;}
.dc-mail__note{
  margin-top:18px;padding:12px 14px;border-left:2px solid var(--dc-alert);
  background:#fdf8f2;color:var(--dc-text);font-size:14px;border-radius:0 6px 6px 0;
}
.dc-mail__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.dc-mail__btn{
  display:inline-flex;align-items:center;height:38px;padding:0 18px;border-radius:8px;
  font-size:13.5px;font-weight:600;letter-spacing:-.005em;
  background:var(--dc-teal);color:var(--dc-teal-ink);border:1px solid var(--dc-teal);
}
.dc-mail__btn--ghost{background:#fff;color:var(--dc-teal-deep);border-color:#bfe2e6;}

.dc-mail__foot{
  padding:14px 24px;border-top:1px solid var(--dc-line);background:#f6f9f9;
  color:var(--dc-muted);font-size:12px;
}

/* pure CSS disclosure - no script */
.dc-mail__more{border-top:1px dashed var(--dc-line);margin-top:20px;padding-top:4px;}
.dc-mail__more>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  margin-top:14px;color:var(--dc-teal-deep);font-size:13.5px;font-weight:600;
}
.dc-mail__more>summary::-webkit-details-marker{display:none;}
.dc-mail__more>summary::after{content:"↓";font-weight:400;}
.dc-mail__more[open]>summary::after{content:"↑";}
.dc-mail__more[open]>summary{margin-bottom:6px;}
.dc-mail__more>h4:first-of-type{margin-top:14px;}

.dc-mail__caption{
  margin:12px auto 0;max-width:720px;color:var(--dc-muted);
  font-size:13px;line-height:1.55;
}

@media (max-width:600px){
  .dc-mail{font-size:14.5px;}
  .dc-mail__head,.dc-mail__body{padding-left:18px;padding-right:18px;}
  .dc-mail__bar,.dc-mail__foot{padding-left:18px;padding-right:18px;}
  .dc-mail__subject{font-size:18px;}
  .dc-mail__date{margin-left:0;padding-left:46px;white-space:normal;}
  .dc-mail__from{flex-wrap:wrap;}
}
</style>
<figure class="dc-mail">
  <div class="dc-mail__card">

    <div class="dc-mail__bar">
      <b>Email copy</b> · Meta for Business
      <span>July 30, 2026</span>
    </div>

    <div class="dc-mail__head">
      <div class="dc-mail__from">
        <div class="dc-mail__avatar">M</div>
        <div class="dc-mail__who">
          <b>Meta for Business</b>
          <span>notification@facebookmail.com</span>
        </div>
        <div class="dc-mail__date">5:02 PM</div>
      </div>
      <p class="dc-mail__subject">Important: Additional data sharing restrictions start soon</p>
    </div>

    <div class="dc-mail__body">
      <p>Hi [client],</p>
      <p>At Meta, we&#8217;re continuing our work to help businesses share data through Meta Business Tools that&#8217;s consistent with our terms. As part of that, one or more of your websites or apps are in a category with restrictions.</p>

      <h4>Impacted business tool</h4>
      <p><span class="dc-mail__pixel">bestever.md</span>: 8123456789012345</p>

      <details class="dc-mail__more">
        <summary>Read the rest of the email</summary>

        <h4>Impacted domains and/or app IDs</h4>
        <ul><li>bestever.md</li></ul>

        <h4>About the restrictions</h4>
        <p>Your website or app is in a category that applies core setup to some or all events. This means the transmission of custom parameters and data in a URL following the domain is restricted for web traffic.</p>
        <p>Additional restrictions on data sharing may start soon, and you can get more details and a timeline for each domain by reviewing your categories in Events Manager.</p>

        <h4>Impacts to performance</h4>
        <p>When your website or app is in category with restrictions, performance may be impacted for any ads optimizing on blocked events received from impacted data sources. As part of this, you&#8217;ll also get warnings about affected campaigns in the Ads Manager Campaigns table and when you create or edit campaigns.</p>

        <h4>Next steps</h4>
        <p>You can get more details about the restrictions and/or ask us to review the categorization of your website or app if you think the category and/or categories haven&#8217;t been applied appropriately. If you don&#8217;t recognize the website sending data, you may be able to block it by adding it to your block list in Events Manager.</p>

        <p class="dc-mail__note">Note: We can use the website&#8217;s category to help us determine and restrict certain kinds of information you can share through Meta Business Tools.</p>

        <div class="dc-mail__btns">
          <span class="dc-mail__btn">Review source categories</span>
          <span class="dc-mail__btn dc-mail__btn--ghost">Go to block list</span>
        </div>

        <p style="margin-top:22px">Thanks,<br>The Meta Business Team</p>
      </details>
    </div>

    <div class="dc-mail__foot">
      © 2026 Meta Platforms, Inc., 1601 Willow Rd. Menlo Park, CA 94025
    </div>

  </div>

  <figcaption class="dc-mail__caption">
    This is the email that tells you conversion tracking ends in 30 days.
  </figcaption>
</figure>



<p class="wp-block-paragraph">When the Meta BM admin gets one of these, it means that in 30 days conversion tracking as you know it is over. Around the time the email lands, a notice also appears in Meta Events Manager:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="410" src="https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-1024x410.png" alt="Meta Events Manager warning that additional data sharing restrictions will start on the data source in 30 days" class="wp-image-1202" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-1024x410.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-300x120.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-768x307.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-1536x614.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-2048x819.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-400x160.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-800x320.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-832x333.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-1664x666.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-1248x499.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1-2496x998.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager-2@2x-1.png 2560w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Anyone with access to Events Manager who isn&#8217;t a Meta BM admin can find out here that trouble is coming, and soon. But I doubt many PPC campaign managers spend much time in Events Manager, so this isn&#8217;t an easy way to find out either.</p>



<p class="wp-block-paragraph">Events Manager is also where you appeal the decision, through the Manage categories button. Only bother if Meta&#8217;s automation genuinely got it wrong and put the site in a category it doesn&#8217;t belong to. If the categorization is correct, your job is to adapt to the new situation.</p>



<h2 class="wp-block-heading">What happens after 30 days?</h2>



<p class="wp-block-paragraph">As soon as the grace period runs out, another system email arrives from Meta, and again only the Meta BM admins get it:</p>



<!-- DataCrew - Meta "category with data sharing restrictions" email replica block.
     WordPress: Custom HTML block, paste as is.
     Styles are namespaced with the dc-mail- prefix so nothing leaks into the theme. -->
<style>
.dc-mail{
  --dc-teal:#0099a6; --dc-teal-deep:#00707a; --dc-teal-ink:#04181a;
  --dc-tint:#e4f4f6; --dc-ink:#1b2224; --dc-text:#3d4749; --dc-muted:#6f797c;
  --dc-line:#e2e7e8; --dc-alert:#b3671a;
  font-family:'Sora',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  max-width:720px;margin:32px auto;color:var(--dc-text);
  font-size:15px;line-height:1.62;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
}
.dc-mail *{box-sizing:border-box;}
.dc-mail__card{
  background:#fff;border:1px solid var(--dc-line);border-radius:12px;overflow:hidden;
  box-shadow:0 1px 2px rgba(11,14,15,.04),0 12px 28px -18px rgba(11,14,15,.28);
}
.dc-mail__bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 20px;background:#f6f9f9;border-bottom:1px solid var(--dc-line);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dc-muted);
}
.dc-mail__bar b{color:var(--dc-teal-deep);font-weight:600;letter-spacing:.14em;}
.dc-mail__bar span{margin-left:auto;letter-spacing:.08em;text-transform:none;}

.dc-mail__head{padding:20px 24px 18px;border-bottom:1px solid var(--dc-line);}
.dc-mail__from{display:flex;align-items:center;gap:12px;}
.dc-mail__avatar{
  width:34px;height:34px;border-radius:50%;flex:0 0 34px;
  background:var(--dc-tint);color:var(--dc-teal-deep);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;letter-spacing:0;
}
.dc-mail__who{min-width:0;}
.dc-mail__who b{display:block;color:var(--dc-ink);font-size:14px;font-weight:600;}
.dc-mail__who span{display:block;color:var(--dc-muted);font-size:12.5px;word-break:break-all;}
.dc-mail__date{margin-left:auto;color:var(--dc-muted);font-size:12.5px;white-space:nowrap;padding-left:12px;}
.dc-mail__subject{
  margin:16px 0 0;color:var(--dc-ink);font-size:20px;line-height:1.3;
  font-weight:700;letter-spacing:-.02em;
}

.dc-mail__body{padding:22px 24px 26px;}
.dc-mail__body p{margin:0 0 14px;}
.dc-mail__body p:last-child{margin-bottom:0;}
.dc-mail__body h4{
  margin:24px 0 10px;color:var(--dc-ink);font-size:15.5px;font-weight:700;
  letter-spacing:-.015em;line-height:1.35;
}
.dc-mail__body ul{margin:0 0 14px;padding-left:20px;}
.dc-mail__body li{margin:0 0 4px;}
.dc-mail a{color:var(--dc-teal-deep);text-decoration:underline;text-underline-offset:2px;}
.dc-mail__pixel{color:var(--dc-teal-deep);font-weight:600;}
.dc-mail__note{
  margin-top:18px;padding:12px 14px;border-left:2px solid var(--dc-alert);
  background:#fdf8f2;color:var(--dc-text);font-size:14px;border-radius:0 6px 6px 0;
}
.dc-mail__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.dc-mail__btn{
  display:inline-flex;align-items:center;height:38px;padding:0 18px;border-radius:8px;
  font-size:13.5px;font-weight:600;letter-spacing:-.005em;
  background:var(--dc-teal);color:var(--dc-teal-ink);border:1px solid var(--dc-teal);
}
.dc-mail__btn--ghost{background:#fff;color:var(--dc-teal-deep);border-color:#bfe2e6;}

.dc-mail__foot{
  padding:14px 24px;border-top:1px solid var(--dc-line);background:#f6f9f9;
  color:var(--dc-muted);font-size:12px;
}

/* pure CSS disclosure - no script */
.dc-mail__more{border-top:1px dashed var(--dc-line);margin-top:20px;padding-top:4px;}
.dc-mail__more>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  margin-top:14px;color:var(--dc-teal-deep);font-size:13.5px;font-weight:600;
}
.dc-mail__more>summary::-webkit-details-marker{display:none;}
.dc-mail__more>summary::after{content:"↓";font-weight:400;}
.dc-mail__more[open]>summary::after{content:"↑";}
.dc-mail__more[open]>summary{margin-bottom:6px;}
.dc-mail__more>h4:first-of-type{margin-top:14px;}

.dc-mail__caption{
  margin:12px auto 0;max-width:720px;color:var(--dc-muted);
  font-size:13px;line-height:1.55;
}

@media (max-width:600px){
  .dc-mail{font-size:14.5px;}
  .dc-mail__head,.dc-mail__body{padding-left:18px;padding-right:18px;}
  .dc-mail__bar,.dc-mail__foot{padding-left:18px;padding-right:18px;}
  .dc-mail__subject{font-size:18px;}
  .dc-mail__date{margin-left:0;padding-left:46px;white-space:normal;}
  .dc-mail__from{flex-wrap:wrap;}
}
</style>
<figure class="dc-mail">
  <div class="dc-mail__card">

    <div class="dc-mail__bar">
      <b>Email copy</b> · Meta for Business
      <span>August 30, 2026</span>
    </div>

    <div class="dc-mail__head">
      <div class="dc-mail__from">
        <div class="dc-mail__avatar">M</div>
        <div class="dc-mail__who">
          <b>Meta for Business</b>
          <span>notification@facebookmail.com</span>
        </div>
        <div class="dc-mail__date">4:20 PM</div>
      </div>
      <p class="dc-mail__subject">Important: One or more of your websites or apps is in a category with data sharing restrictions</p>
    </div>

    <div class="dc-mail__body">
      <p>Hi [client],</p>
      <p>To help ensure the data you send to Meta is in compliance with our Meta Business Tool Terms, we&#8217;ve categorized data sources such as websites and apps associated with your business tools. Depending on the content of the data source, Meta may assign a category with data restrictions.</p>
      <p>We&#8217;re writing to inform you that at least one of the data sources (websites or apps) sending events to your Meta Business Tool is in a category with data sharing restrictions.</p>

      <h4>Meta Business Tool:</h4>
      <p><span class="dc-mail__pixel">bestever.md</span>: 8123456789012345</p>

      <details class="dc-mail__more">
        <summary>Read the rest of the email</summary>

        <p>Specifically, some data sources may be in a core setup, have blocked events (like certain standard events), or have fully blocked data. The data source is in a category with restrictions because it:</p>
        <ul><li>Provides or facilitates access to healthcare or healthcare and wellness providers, products or services</li></ul>

        <p>When your data source is in a category with restrictions, performance may be impacted for any ads optimizing on blocked events received from impacted data sources. You will also receive warnings about affected campaigns in the Ads Manager Campaigns table and when you create or edit campaigns.</p>

        <p>Review your data sources to make sure they&#8217;re in the right category. If you think they aren&#8217;t, you can ask us to review them in Events Manager.</p>

        <p class="dc-mail__note">Note: We can use the data source&#8217;s category to help us determine and restrict certain kinds of information you can share through Meta Business Tools.</p>

        <div class="dc-mail__btns">
          <span class="dc-mail__btn">Review source categories</span>
        </div>

        <p style="margin-top:22px">Thanks,<br>The Meta Business Team</p>
      </details>
    </div>

    <div class="dc-mail__foot">
      © 2026 Meta Platforms, Inc., 1601 Willow Rd. Menlo Park, CA 94025
    </div>

  </div>

  <figcaption class="dc-mail__caption">
    This is the email that tells you the restriction has actually kicked in.
  </figcaption>
</figure>



<p class="wp-block-paragraph">And of course the Events Manager message changes too:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="389" src="https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-1024x389.png" alt="Meta Events Manager showing that the data source is now in a category with active data sharing restrictions" class="wp-image-1205" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-1024x389.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-300x114.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-768x292.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-1536x583.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-2048x778.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-400x152.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-800x304.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-832x316.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-1664x632.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-1248x474.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x-2496x948.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/08/datacrew-events-manager@2x.png 2560w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Does this mean you&#8217;ll never run a proper conversion campaign on Meta again? Thankfully not. But it definitely won&#8217;t work the way it used to.</p>



<h2 class="wp-block-heading">What doesn&#8217;t fix Meta data sharing restrictions</h2>



<p class="wp-block-paragraph">The problem is the domain name. Which is exactly why dropping a new pixel into the site isn&#8217;t the answer. The domain is restricted, so a new pixel can&#8217;t send data from there to Meta either.</p>



<p class="wp-block-paragraph">Implementing the <a href="https://blog.datacrew.agency/en/server-side-tagging/everything-about-server-side-tracking/" target="_blank" rel="noopener">Meta Conversions API</a> is a great move in general, since Meta gets more data and pays you back with better results. But if you&#8217;re doing it to lift the restriction on your pixel, you&#8217;ll be disappointed. It won&#8217;t lift. Meta categorized the domain name itself, and the Meta data sharing restrictions came with that category.</p>



<p class="wp-block-paragraph">One thing that could work is registering a new domain, moving the entire site over there, and shaping the page paths so Meta never figures out that you&#8217;re running a healthcare site. Kill that idea in the cradle. From a brand and SEO standpoint it&#8217;s the worst thing you can do.</p>



<h2 class="wp-block-heading">What actually fixes Meta data sharing restrictions</h2>



<p class="wp-block-paragraph">The medium and full restrictions above have the same fix. Whether Meta blocks a couple of events or the entire domain, the business impact is roughly the same. Either way your ability to advertise takes a serious hit.</p>



<p class="wp-block-paragraph">So the goal is to keep Meta from seeing the domain the data comes from, and to keep it from receiving a page path that could trigger the restriction all over again. Which means the Meta pixel has to go, because you can&#8217;t control what data it sends: wherever it fires, it hands over the site URL. The answer is a 100% Meta Conversions API setup, where Meta can only receive data through CAPI and the event source parameter in that data is rewritten so you&#8217;re not sending a restricted domain, or a page path that would likely trigger a restriction again.</p>



<h3 class="wp-block-heading">Data sharing through CAPI only</h3>



<p class="wp-block-paragraph">You can build this properly with sGTM or with backend tracking. That can get expensive, and either way you&#8217;ll want an experienced team (a <a href="https://datacrew.agency/en/" target="_blank" rel="noopener">Crew</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />) on the project to solve it. One thing to watch closely during the build: don&#8217;t let event match quality sink through the floor afterward, or Meta won&#8217;t attribute properly.</p>



<p class="wp-block-paragraph">In a CAPI-only setup that&#8217;s the biggest hurdle to clear. The mere presence of the Meta pixel does a lot of work for attribution, and without it you&#8217;re solving a lot of that by hand. Build a CAPI-only server-side setup badly and you&#8217;ll fall between two stools: you&#8217;ll have measurement, it just won&#8217;t be attributable. Given the complexity, a project like this can easily run into several thousand euros if you want data flowing to Meta again. Plenty of smaller businesses don&#8217;t have that budget.</p>



<h3 class="wp-block-heading">And now the ace: Metamorph</h3>



<p class="wp-block-paragraph">We built <a href="https://metamorph.ad/" target="_blank" rel="noopener">Metamorph</a> to cut through this Gordian knot. It&#8217;s subscription software at €100 per pixel per month plus VAT, which even the smallest restricted healthcare practice can earn back.</p>



<p class="wp-block-paragraph">Under the hood, using Metamorph does essentially what sGTM tracking would do, only far more simply. Metamorph can step fully into the pixel&#8217;s shoes, storing the cookies you need for proper attribution, for instance. It then hands the data to Meta through the Conversions API, using a domain name generated for your site as the data source.</p>



<p class="wp-block-paragraph">That&#8217;s how it gets around the restriction: Meta sees data arriving from a domain it has never encountered, one that isn&#8217;t on its restriction list. And since the data goes over without a page path, there&#8217;s nothing there to trigger a restriction on the new domain either.</p>



<p class="wp-block-paragraph">Anyone with solid GTM-focused technical skills can roll out Metamorph, but for a limited time we&#8217;ll do the setup for you free of charge. The subscription starts with a free 7-day trial, which is plenty of time to see whether the tool works for you. And you can cancel Metamorph at any point.</p>



<h2 class="wp-block-heading">Is your site restricted?</h2>



<p class="wp-block-paragraph">Meta data sharing restrictions are a fairly technical business, and they&#8217;re hard to spot from a client&#8217;s or a PPC manager&#8217;s seat. That&#8217;s what the <a href="https://metamorph.ad/audit" target="_blank" rel="noopener">Metamorph audit</a> is for. Give it any site and it&#8217;ll tell you whether Meta is currently restricting it. Enter the domain name and the tool reports whether the site is:</p>



<ul class="wp-block-list">
<li>Not restricted</li>



<li>Under a level one restriction</li>



<li>Under a level two or three restriction <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b05.png" alt="⬅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> this is where Metamorph, or an sGTM setup that solves the restriction, may be needed.</li>
</ul>



<p class="wp-block-paragraph">If a healthcare PPC prospect walks through your agency&#8217;s door, it&#8217;s worth running the Metamorph audit on their site before you send a proposal, so you know what you&#8217;re dealing with.</p>



<p class="wp-block-paragraph">From all of us at DataCrew, we&#8217;re rooting for every advertiser and client caught up in this to get out from under it.</p>



<h2 class="wp-block-heading">Key takeaways</h2>



<ul class="wp-block-list">
<li>Meta data sharing restrictions don&#8217;t hit the pixel, they hit the domain name itself, which is why a new pixel won&#8217;t lift the restriction.</li>



<li>There are three restriction levels, and the first one isn&#8217;t a serious problem.</li>



<li>Roughly 41.2% of healthcare businesses across the countries we audited are affected. The rate ranges from 21.4% in Belgium to 53.8% in Italy.</li>



<li>The restriction can be solved with a proper server-side setup or by rolling out Metamorph.</li>
</ul><p>The post <a href="https://blog.datacrew.agency/en/server-side-tagging/meta-data-sharing-restrictions/">Everything about Meta’s data sharing restrictions</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Offline conversion tracking, the way the pros do it</title>
		<link>https://blog.datacrew.agency/en/offline-conversions/offline-conversion-tracking-like-the-pros/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2026 11:38:26 +0000</pubDate>
				<category><![CDATA[Offline conversions]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/offline-conversion-tracking-like-the-pros/</guid>

					<description><![CDATA[<p>Offline conversion tracking used to be enterprise-only. Not anymore. Here is how calls, forms and email deals make it into your ad platforms as real conversions.</p>
<p>The post <a href="https://blog.datacrew.agency/en/offline-conversions/offline-conversion-tracking-like-the-pros/">Offline conversion tracking, the way the pros do it</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">For a very long time, offline conversion tracking was a playground for the biggest companies only. Thanks to the AI era, it&#8217;s now within reach for smaller businesses too.</p>



<h2 class="wp-block-heading">What is it, and why should you care?</h2>



<p class="wp-block-paragraph">Offline conversion tracking is when you send data from an event that didn&#8217;t happen online to your ad platforms. You can optimize campaigns toward those conversions exactly the way you would toward online ones.</p>



<p class="wp-block-paragraph">Lead gen sites are the obvious use case, but we also know an agricultural supplies store that badly needed accurate tracking of conversions happening over the phone. Sites like these typically have a contact form, maybe a phone number, and possibly a clickable email address. What can you actually measure there with online conversion tracking alone? Form submissions, phone number clicks and email clicks. And those are thin gruel as conversions go:</p>



<ul class="wp-block-list">
<li>Sure, somebody filled in the form, but the submission might be completely irrelevant and never turn into anything;</li>



<li>There&#8217;s no guarantee that someone who taps a phone number actually places the call. In fact most people don&#8217;t tap the number at all, they punch it into their phone by hand. We measured it. And even when the tapper does call, there&#8217;s no guarantee anything relevant to your business happens on that call;</li>



<li>Email clicks are an even bigger lottery. That only works if the user wants to fire off an email from their default mail client right then and there, which isn&#8217;t exactly how people behave.</li>
</ul>



<p class="wp-block-paragraph">Measuring the conversions that come through these channels is fundamental if you want the ad platform optimizing toward real outcomes. In our view, clicks of any kind are micro conversions at best. A form submission at least signals some intent, but let&#8217;s be honest, it&#8217;s still not the real thing.</p>



<p class="wp-block-paragraph">So how do you do conversion tracking properly on a site where these are the channels you&#8217;d want to build your campaign optimization around? Offline conversions.</p>



<h2 class="wp-block-heading">How it works under the hood</h2>



<p class="wp-block-paragraph">Offline conversions always have an online prequel. Say the visitor who closed a deal originally landed on your site from a Google Ads campaign. To send an offline conversion, you reference the click ID (gclid) captured when they landed. That&#8217;s what lets Ads attribute the later offline conversion to the right campaign. There are three ways to get an offline conversion into Google Ads:</p>



<ol class="wp-block-list">
<li><a href="https://support.google.com/google-ads/answer/15713840?hl=en" target="_blank" rel="noopener">Enhanced conversions for leads</a>. You send Ads the hashed personal data of whoever filled in the form (email address, phone number) along with the gclid recorded by the conversion linker. Google stores which hashes go with which gclid. So when it later receives, say, a hashed email address, it can look up the matching gclid and pull the conversion into the right campaign;</li>



<li>You store the gclid yourself, and when you send the offline conversion you pass that stored gclid along, which is how Ads knows which campaign gets the credit;</li>



<li>Combine the two: send user data on form submission and store the gclid as well, then send both when the offline conversion happens. <a href="https://support.google.com/google-ads/answer/2998031?hl=en" target="_blank" rel="noopener">Google says</a> this is worth a median 10% lift in match rate.</li>
</ol>



<p class="wp-block-paragraph">Offline conversions work a little differently on Meta, TikTok, LinkedIn and the rest. The principle is the same though: an offline conversion needs an online prequel. That means capturing click IDs, cookie values and similar identifiers from the visitor&#8217;s device, so you can reference them when you send the offline conversion later.</p>



<h2 class="wp-block-heading">How do you actually measure offline conversions?</h2>



<p class="wp-block-paragraph">This used to take serious development work. Your developers had to store all sorts of IDs, cookie values and <a href="https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/" target="_blank" rel="noopener">consent levels</a> in an internal database. It&#8217;s much easier now, because off-the-shelf solutions exist. We built one ourselves, and that&#8217;s what we&#8217;ll walk through here. Meet <a href="https://phonevert.ai" target="_blank" rel="noopener">Phonevert</a>.</p>



<p class="wp-block-paragraph">Phonevert integrates with any website regardless of the platform it runs on. Tracking phone numbers or emails takes one line of code in your site, and you can deploy it straight from Google Tag Manager. There&#8217;s even a GTM tag template for it. Adding the form to your site is similarly easy, though you may want a developer&#8217;s help for that part.</p>



<h3 class="wp-block-heading">Call tracking</h3>



<p class="wp-block-paragraph">Phonevert uses Dynamic Number Insertion (DNI) to track the phone numbers on your site. Here&#8217;s what that looks like step by step:</p>



<ol class="wp-block-list">
<li>Phonevert finds the phone numbers on your site and swaps them for a unique proxy number. One user gets that number for the duration of a browser session. So when a call comes in on that number, you know exactly which user placed it, because nobody else ever saw that number. The person you&#8217;re calling still sees the caller&#8217;s real number, not the proxy.</li>



<li>The call to the proxy number gets recorded. You can play it back later in the Phonevert interface;</li>



<li>The recording is transcribed, and you can read the transcript in Phonevert</li>



<li>An AI agent reads the transcript and looks for a conversion. What counts as a conversion is up to you, defined in plain language. Something like &#8216;an appointment is booked&#8217; or &#8216;the caller ordered the super vacuum cleaner&#8217;</li>



<li>If a conversion happened, it goes into your ad platforms referencing the attribution IDs you stored earlier</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="303" src="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-1024x303.png" alt="The Phonevert Dynamic Number Insertion flow: a unique proxy number is shown to the visitor, the call is recorded and transcribed, an AI agent finds the conversion, and it is sent to the ad platforms" class="wp-image-1183" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-1024x303.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-300x89.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-768x228.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-1536x455.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-2048x607.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-400x119.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-800x237.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-832x246.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-1664x493.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-1248x370.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-2496x739.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Phonevert_DNI_folyamat-scaled.png 2560w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">In the flow above, the completed call itself goes into your ad platforms as an offline conversion, which carries far more information than a phone number click event. And if the AI agent spots a conversion in the transcript, the closed deal goes in as a separate conversion. On top of that, <a href="https://phonevert.ai/help/integrations/google-analytics-integracio" target="_blank" rel="noopener">Analytics</a> receives considerably more data, which makes your calls much easier to analyze in detail.</p>



<h4 class="wp-block-heading">Other call tracking features</h4>



<p class="wp-block-paragraph">There&#8217;s plenty of interesting data in a call beyond the conversion itself. With an appointment booking, for example, it&#8217;s worth capturing the appointment time, the treatment duration, the product purchased and so on. Phonevert can store these as custom dimensions and pass them to Google Analytics.</p>



<p class="wp-block-paragraph">Sometimes you&#8217;ll want to track calls that don&#8217;t originate on your website. Phonevert has a dedicated number feature for exactly that. You get a fixed number that always forwards to the destination number you set in Phonevert, and it still runs through the whole pipeline: recording, AI analysis, the works. Use these numbers for offline placements. Print them on business cards, posters, T-shirts (<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f606.png" alt="😆" class="wp-smiley" style="height: 1em; max-height: 1em;" />).</p>



<p class="wp-block-paragraph">You can also call customers back through Phonevert. Your agent gets a proxy number, and calling it from their own phone rings the customer. Handy for the times you couldn&#8217;t pick up.</p>



<p class="wp-block-paragraph">We took a lot of steps to keep Phonevert&#8217;s call tracking GDPR compliant. Before the call connects, the caller hears a notice:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Please note that this call is being recorded by DataCrew Kft. for the purpose of preparing a quote, and will be retained for one year. Our privacy notice is available on our website. If you do not agree, please contact us directly on +36201234567. By staying on the line you consent to the recording.</p>
</blockquote>



<p class="wp-block-paragraph">Conversion tracking follows the Consent Mode v2 flags too. The conversion reaches your ad platforms (or doesn&#8217;t) with exactly the consent level the visitor granted on your site.</p>



<p class="wp-block-paragraph">Recordings can only be played back inside Phonevert, and they&#8217;re end-to-end encrypted.</p>



<h3 class="wp-block-heading">Form tracking</h3>



<p class="wp-block-paragraph">There&#8217;s no shortage of form tools out there. You can build forms inside Phonevert too. The app includes a form editor that makes it easy to put together good-looking forms like this one:</p>



<!-- Phonevert Callback Form -->
<script
  async
  src="https://staging.phonevert.ai/phonevert-formloader.js?formid=jvA10ZVfk1ou&#038;key=pk_live_Q0g8N9C3CCB6bZjRVyTPig5zSRCT1NXf">
</script>
<!-- End Phonevert Callback Form -->



<p class="wp-block-paragraph">(no promises that I&#8217;ll actually call you back, this one&#8217;s here for the demo <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">You can receive form submissions by email, or push them into a CRM through a webhook. When somebody fills in the form, gets a callback and turns into a deal, one click marks the lead as converted and the deal lands in your ad platforms as an offline conversion.<br>Best part: if all you want is offline conversions from website forms, that&#8217;s available on the free Phonevert plan, with some limits.</p>



<h3 class="wp-block-heading">Tracking deals that start over email</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="465" src="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-1024x465.png" alt="Instead of opening the visitor's mail client, an email address click opens a small Phonevert form in a bubble on the page" class="wp-image-1186" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-1024x465.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-300x136.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-768x349.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-1536x698.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-2048x930.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-400x182.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-800x363.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-832x378.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-1664x756.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-1248x567.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-2496x1134.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Email_tracking-scaled.png 2560w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Phonevert can also make an email click open a mini form in a bubble instead of launching the visitor&#8217;s default mail client. It&#8217;s the same kind of form as the one above, so if an inquiry that starts here turns into a deal, that deal can go into your ad platforms as an offline conversion too.</p>



<h3 class="wp-block-heading">Everything else</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="422" src="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-1024x422.png" alt="The Phonevert dashboard showing calls, transcripts and the conversions detected in them" class="wp-image-1188" srcset="https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-1024x422.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-300x124.png 300w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-768x317.png 768w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-1536x633.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-2048x844.png 2048w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-400x165.png 400w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-800x330.png 800w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-832x343.png 832w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-1664x686.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-1248x514.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-2496x1029.png 2496w, https://blog.datacrew.agency/wp-content/uploads/2026/08/DataCrew_Dashboard-scaled.png 2560w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Phonevert can pass conversions to Google Ads, Google Analytics, Meta, LinkedIn and TikTok.</p>



<p class="wp-block-paragraph">We could go on about Phonevert features for a while. There&#8217;s the unified, CRM-style customer handling, sGTM support, and the fact that it can work around Meta&#8217;s data sharing restrictions, so Phonevert is usable even on sites Meta has restricted, healthcare being the classic example. But none of that matters as much as the main point: with Phonevert, your ad platform can finally see the conversions that actually closed, and optimize toward those instead of the small stuff along the way.</p>



<p class="wp-block-paragraph">To give you a nudge to try it, the coupon code <strong>DCBLOG20</strong> gets you 20% off your first month. Worth a shot <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Agency clients can register a dedicated agency account. As an agency you can send invites to your own clients, and you earn 10% commission on every transaction those clients make. The details are on the <a href="https://phonevert.ai/agency" target="_blank" rel="noopener">agency page</a>. Agencies can also log into the Phonevert account of any client they invited, so you can wire up the integrations yourself and see the install code you need.</p><p>The post <a href="https://blog.datacrew.agency/en/offline-conversions/offline-conversion-tracking-like-the-pros/">Offline conversion tracking, the way the pros do it</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Everything about server-side tracking</title>
		<link>https://blog.datacrew.agency/en/server-side-tagging/everything-about-server-side-tracking/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 27 Mar 2025 04:43:39 +0000</pubDate>
				<category><![CDATA[Server-side tagging]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/everything-about-server-side-tracking/</guid>

					<description><![CDATA[<p>Send more data to the ad platforms and your costs go down while your conversions go up. Server-side tracking is how you get there, from gateways to a full sGTM build.</p>
<p>The post <a href="https://blog.datacrew.agency/en/server-side-tagging/everything-about-server-side-tracking/">Everything about server-side tracking</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Client or server?</h2>



<p class="wp-block-paragraph">Client-side tracking means the tracking code runs in the visitor&#8217;s browser and hands data off to an external analytics or advertising platform from there. Dropping an Analytics tag or an ad platform&#8217;s <em>pixel</em> onto your website is exactly this.</p>



<p class="wp-block-paragraph">Server-side tracking, by contrast, brings a server you own or rent into the loop and sends the data on to the destination platforms (Analytics, Meta, TikTok and friends) from there. Which means a plain server log technically counts as server-side tracking, just as much as a lavishly built server-side Google Tag Manager setup does.</p>



<h2 class="wp-block-heading">When do you need server-side tracking?</h2>



<h3 class="wp-block-heading">When you want to cut your ad spend</h3>



<p class="wp-block-paragraph">Cookies are in the crosshairs in modern browsers. Third-party cookies are already blocked outright by plenty of them (Safari and Firefox, for instance), and even <em>first-party cookies</em> get their lifetime cut short in certain cases. Server-side setups don&#8217;t necessarily use cookies at all, and sometimes they don&#8217;t even touch the visitor&#8217;s browser, which makes for far more reliable and accurate delivery to the ad platforms.</p>



<p class="wp-block-paragraph">And ad platforms do their best work when they get plenty of data. They need to know how the people they send to your site actually behave there. When the system sees that one visitor segment converts much better than another, it goes looking for more people like that segment, and your conversion rate goes up. So the path to more conversions runs through more data, because that&#8217;s what lets the AI sharpen its ad delivery.</p>



<p class="wp-block-paragraph">More data, then, lowers your cost per result and raises the number of conversions you actually measure. By how much? It depends heavily on your audience, but <a href="https://www.facebook.com/business/tools/conversions-api" target="_blank" rel="noopener">Meta reports</a> a 13% drop in cost per result and 19% more measured conversions on a global average.</p>



<h3 class="wp-block-heading">When you want more accurate data</h3>



<p class="wp-block-paragraph">If you spend time in Analytics, you&#8217;ve probably noticed the gap between users and new users getting smaller, and the share of direct traffic creeping up. Same root cause: some browsers are shortening cookie lifetimes. Analytics identifies your visitors with a first-party cookie that&#8217;s set to expire in a year by default, but Safari, for example, knocks that down to seven days.</p>



<p class="wp-block-paragraph">Which means if your visitor comes back on day eight, they show up in your reports as a brand new user. And if that second visit doesn&#8217;t come from a campaign but does produce a conversion, the conversion lands under direct traffic, no matter what <a href="https://support.google.com/analytics/answer/7667196?hl=en&amp;utm_id=ad" target="_blank" rel="noopener">data retention</a> setting you&#8217;ve got in Analytics.</p>



<p class="wp-block-paragraph">A well-built server-side setup can get you all the way to 100% data accuracy. Picture running an online store and seeing exactly as many transactions and exactly as much revenue in Analytics as you see in your admin panel. That sounds like science fiction if client-side tracking is all you&#8217;ve known. It isn&#8217;t.</p>



<h3 class="wp-block-heading">When you want a faster site</h3>



<p class="wp-block-paragraph">Server-side setups don&#8217;t just improve data accuracy, they&#8217;re good for site speed too. The reason is simple: you&#8217;re no longer loading a pile of external scripts. Instead you send requests to your own nearby server. That speeds up page loads, which is good news for your SEO as well.</p>



<h3 class="wp-block-heading">When you want more control over the data you collect</h3>



<p class="wp-block-paragraph">Privacy is often the reason a server-side setup gets built in the first place. Your server can double as your own proxy, filtering data before it ever reaches your analytics platforms. We&#8217;ve had clients who wanted to see the value of every input field on the site in Analytics, for instance. Those fields can contain personal data, which you&#8217;re <a href="https://support.google.com/analytics/answer/6366371?hl=en#zippy=%2Cin-this-article" target="_blank" rel="noopener">not allowed</a> to send to Analytics. Your own server can strip that out.</p>



<p class="wp-block-paragraph">We&#8217;ve also run into a legal team that would only sign off on Analytics for a site if the data carried no IP address, since they treated it as personal data. In that case you can build a setup where the IP goes to Analytics as 0.0.0.0. Our client had to give up IP-based geo data, but in exchange the legal team cleared Analytics to run without consent, which did wonders for campaign attribution.</p>



<p class="wp-block-paragraph">Server-side tracking also opens the door to feeding profit figures into Analytics and your ad platforms. The idea is to use the profit realized on the products instead of the revenue. For an ecommerce site the revenue value is normally the total value of the purchase. Instead, you can pull the profit margin of the purchased products from a database and send that on to your destination platforms.</p>



<p class="wp-block-paragraph">That makes your ROAS real. You&#8217;ll see exactly how much profit each campaign brought in. And since your margins are a trade secret, it matters that the competition can&#8217;t sniff them out. Server-side handles that: nothing about your profit figures is visible on the client side.</p>



<h3 class="wp-block-heading">Off-site events</h3>



<p class="wp-block-paragraph">Everything above is a case where server-side tracking adds something on top of client-side. But there are things you simply cannot do without a server-side setup. Those are the events where your customer isn&#8217;t on your website at all, and you still want to measure something about them.</p>



<p class="wp-block-paragraph">Subscription models with recurring payments keep getting more common. When the card gets charged, the visitor isn&#8217;t on your site, so there&#8217;s no client-side code to run. Server-side lets you push that revenue into your platforms at the moment the charge goes through, attributed to the right campaign and source, exactly as if the visitor were right there. Their measured <em>lifetime value</em> can grow whether or not they&#8217;re on your site.</p>



<p class="wp-block-paragraph">Refunds are another case for server-side. If you want your numbers to be honest, revenue isn&#8217;t enough, you have to handle cancellations too. Those rarely happen while the customer is browsing your site, and server-side deals with them without breaking a sweat.</p>



<p class="wp-block-paragraph">Think about what that lets you automate: an online store voiding an order the courier delivered but the customer never picked up. Or a bank transfer that never arrives by the deadline. Getting cancellations into the data is fundamental if you want a realistic ROAS and realistic revenue in your analytics.</p>



<p class="wp-block-paragraph">Server-side is a powerhouse for lead gen sites too. If all a visitor can do on your site is fill in a form, and the actual deal closes offline, you still don&#8217;t have to give up revenue values. It gets really good when you pipe every meaningful lead milestone from your CRM into Analytics, so you can see the campaign source of every lead at every status, with a value attached. Compare that to treating a form submission as your conversion. It&#8217;s night and day.</p>



<h2 class="wp-block-heading">Fine, but is this legal?</h2>



<p class="wp-block-paragraph">Of course. Server-side tracking isn&#8217;t about measuring whatever you like without the visitor&#8217;s <a href="https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/" target="_blank" rel="noopener">consent</a>. It&#8217;s about actually having the data when they do consent. You aren&#8217;t measuring anything <em>different</em> server-side than you would client-side, you&#8217;re just measuring it <em>differently</em>.</p>



<p class="wp-block-paragraph">Server-side tracking isn&#8217;t a black-hat tool. It just helps you get the most accurate version of the data you&#8217;re already entitled to.</p>



<h2 class="wp-block-heading">How do you roll it out?</h2>



<p class="wp-block-paragraph">So there are plenty of situations where server-side tracking is useful, or flat-out required, if you want data you can work with. Time to talk about how you actually build it.</p>



<p class="wp-block-paragraph">A lot of very different setups go by the name &#8222;server-side tracking&#8221;. It&#8217;s server-side tracking when your hosted store platform supports Meta&#8217;s Conversions API (CAPI) out of the box, and it&#8217;s also server-side tracking when a request fired from your backend delivers data to Analytics&#8217; servers. With that many ways to build it, the price and the accuracy vary just as widely.</p>



<p class="wp-block-paragraph">Given all those options, the job is finding the setup that fits your environment and satisfies your appetite for data. Not every setup can be adapted to every stack. So rather than getting lost in the maze, it may be worth <a href="https://datacrew.agency/en/contact/" target="_blank" rel="noopener">bringing us in</a> to handle the rollout.</p>



<h2 class="wp-block-heading">Your options for building server-side tracking</h2>



<p class="wp-block-paragraph">Once you&#8217;ve decided to go server-side, you have several routes.</p>



<h3 class="wp-block-heading">sGTM</h3>



<p class="wp-block-paragraph">The most common option is server-side Tag Manager. The upside is the same as with client-side Tag Manager: one data source can feed several destination platforms.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="473" src="https://blog.datacrew.agency/wp-content/uploads/2025/03/image.png" alt="Server-side Google Tag Manager data flow: the browser sends events to the sGTM container, which forwards them to Analytics and the ad platforms" class="wp-image-1096" srcset="https://blog.datacrew.agency/wp-content/uploads/2025/03/image.png 768w, https://blog.datacrew.agency/wp-content/uploads/2025/03/image-300x185.png 300w, https://blog.datacrew.agency/wp-content/uploads/2025/03/image-400x246.png 400w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">What you&#8217;ll need for an sGTM rollout:</p>



<ul class="wp-block-list">
<li>A server you own or rent</li>



<li>GTM</li>



<li>Changes to your domain records</li>
</ul>



<h4 class="wp-block-heading">A server you own or rent</h4>



<p class="wp-block-paragraph">Your sGTM can run on a dedicated server you own or one you rent. Clients often figure that since they already run their own servers, they&#8217;ll host the sGTM server themselves too. In practice that rarely happens. Self-hosting usually works out considerably more expensive than renting. And it isn&#8217;t just the build cost: running the server, maintaining it and the staffing that comes with it are all recurring.</p>



<p class="wp-block-paragraph">It doesn&#8217;t help that Google shares very little about <a href="https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide" target="_blank" rel="noopener">manual server setup</a>, to the point that there aren&#8217;t even published minimum system requirements.</p>



<p class="wp-block-paragraph">In practice we host sGTM containers on rented infrastructure every time. Google Cloud is one option, and so are providers that specialize in exactly this. We usually recommend Stape.io. Their pricing is clear, predictable and cheaper than the Google Cloud route. On a low-traffic site sGTM hosting can even be free, and at moderate traffic it won&#8217;t run you more than €50 a month. You can work out the exact number with the <a href="https://stape.io/price-server-google-tag-manager" target="_blank" rel="noopener">calculator</a> on their site.</p>



<h4 class="wp-block-heading">GTM</h4>



<p class="has-text-align-left wp-block-paragraph">Before you roll out sGTM you&#8217;ll need GTM, assuming your tracking was built with native code up to now. Here&#8217;s why: the client-side GTM sends the data into the server-side GTM, and it travels on to the destination platforms from there. So you need the client-side container too.</p>



<h4 class="wp-block-heading">Changes to your domain records</h4>



<p class="wp-block-paragraph">To make your sGTM as resistant as possible to ad blockers, the container should live under your own URL. So if your site is example.com, the sGTM container can run at server.example.com, which means requests land on your own hostname. You create a subdomain like that by editing your DNS records.</p>



<p class="wp-block-paragraph">Better still is putting sGTM on a page path under your existing hostname, say example.com/server. In that case a service worker on /server forwards the request on to server.example.com.</p>



<p class="wp-block-paragraph">Picking the right subdomain matters. Steer clear of names that give the game away, like gtm.example.com or tracking.example.com, or the name alone will trigger an ad blocker and all your work goes out the window.</p>



<h4 class="wp-block-heading">Pros and cons</h4>



<p class="wp-block-paragraph">An sGTM rollout takes minimal developer time and buys you a lot of credibility with the ad platforms. You can build server-side tracking toward a long list of destinations with it. Meta, TikTok and X CAPI become available, and data can flow server-side into Google Ads, Analytics and plenty of other platforms.</p>



<p class="wp-block-paragraph">The downside is that client-side code still kicks off the handoff, so there&#8217;s no 100% guarantee that something won&#8217;t block it along the way. It also carries a recurring cost. Not a big one, but you have to budget for it.</p>



<h3 class="wp-block-heading">Backend tracking</h3>



<p class="wp-block-paragraph">You can also send events straight from your backend to the destination platforms&#8217; servers, with no server-side GTM in the picture. The advantage is that the visitor&#8217;s browser plays no part in the handoff, so 100% data accuracy is on the table. It&#8217;s also a one-time build cost with nothing recurring.</p>



<p class="wp-block-paragraph">The downside is that it&#8217;s rigid. Without GTM in the middle, every change means calling a developer again. And you have to build the tracking separately for every destination. If you want Meta and TikTok CAPI alongside Analytics, that&#8217;s three integrations and three development projects.</p>



<p class="wp-block-paragraph">Since your backend is what sends the data, the events arrive carrying your server&#8217;s location. If you need accurate geo data, this isn&#8217;t the setup for you.</p>



<p class="wp-block-paragraph">Backend tracking still needs code running client-side, too. If something blocks that client-side code, your backend events will still reach the destination platforms, but they&#8217;ll be useless for campaign attribution. In practice that means the conversion shows up in Analytics with a source of <em>(not set)</em>, and Meta won&#8217;t attribute it to a campaign at all.</p>



<h3 class="wp-block-heading">The hybrid</h3>



<p class="wp-block-paragraph">You can roll out server-side GTM and still send your key conversions from the backend. This combines the strengths of both: sGTM sharpens the accuracy of your client-side tracking, while the events you treat as real KPIs arrive from the backend, so 100% accuracy is achievable. As a bonus, you only build one integration on the backend and it can feed every destination.</p>



<p class="wp-block-paragraph">This is the genuinely advanced option, and it&#8217;s what most of our clients end up choosing.</p>



<h3 class="wp-block-heading">Gateways</h3>



<p class="wp-block-paragraph">The simplest and cheapest way into server-side tracking is a <em>gateway</em>. Each gateway forwards data to exactly one destination, so you&#8217;ll need as many gateways as you have platforms. The upside is the price: a gateway runs about €10 a month at stape.io, our preferred provider.</p>



<p class="wp-block-paragraph">For that money you get a fairly generous event cap, enough to cover a mid-to-high traffic site. Accuracy matches sGTM, which means the handoff can in theory be blocked, since this isn&#8217;t backend tracking.</p>



<p class="wp-block-paragraph">Setting up a gateway is very simple. With the right access in hand it&#8217;s a few minutes of work.</p>



<p class="wp-block-paragraph">If you need more than one or two destinations, it&#8217;s worth thinking about sGTM instead. Depending on your traffic it can come out cheaper, and it&#8217;s a far more flexible ecosystem.</p>



<p class="wp-block-paragraph">On our own site we run <a href="https://stape.io/google-tag-gateway" target="_blank" rel="noopener">Google Tag Gateway</a>, because we don&#8217;t need any other destination, we just want accurate numbers on our own traffic.</p>



<p class="wp-block-paragraph">Gateways come with the same geo caveat: you&#8217;ll be waving goodbye to precise location data. Analytics shows you the server&#8217;s location, which for European visitors usually means whichever nearby data center the provider runs. If geo data matters to you, we&#8217;d steer you away from gateways for the same reason we steer you away from pure backend tracking.</p>



<h2 class="wp-block-heading">The bottom line</h2>



<p class="wp-block-paragraph">Rolling out server-side tracking is a broad term that can mean a lot of things. It can mean a gateway for a few euros a month, or a development project running into the thousands. What matters is that even a cheap solution, implemented properly, moves you a long way forward on data accuracy and attribution. There&#8217;s always room to do better, of course, so if accuracy is critical, there&#8217;s no ceiling on how good a setup you can build.</p>



<p class="wp-block-paragraph">In 2025 server-side tracking is essentially unavoidable, even in segments that used to get by on client-side alone. But execution matters just as much:</p>



<ul class="wp-block-list">
<li>Work with what your site already gives you;</li>



<li>Be clear about the measurement goal;</li>



<li>Be honest about the resources you have</li>
</ul>



<p class="wp-block-paragraph">Build it badly and you won&#8217;t have more data than before, you&#8217;ll just have an extra line item. That&#8217;s why, if you&#8217;re about to take on a server-side project, we&#8217;d suggest you <a href="https://datacrew.agency/en/contact/" target="_blank" rel="noopener">ask us for a quote</a> and let us help.</p>



<p class="wp-block-paragraph">We were the first agency in Hungary to earn Stape partner status, and there still aren&#8217;t many of us. When it&#8217;s needed, we can back our clients with priority support and a lot of hard-won experience.</p>



<a href="https://stape.io/partner/data-crew" target="_blank">
<img decoding="async" src="https://cdn.stape.io/i/644286f038012250033022.svg" alt="Stape partner" width="130" height="62" style='object-fit: contain' loading="lazy"/>
</a><p>The post <a href="https://blog.datacrew.agency/en/server-side-tagging/everything-about-server-side-tracking/">Everything about server-side tracking</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Everything about cookie consent</title>
		<link>https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 17 Mar 2025 07:34:39 +0000</pubDate>
				<category><![CDATA[Consent management]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/everything-about-cookie-consent/</guid>

					<description><![CDATA[<p>How do you stay compliant, improve ad performance and still collect the data you need? Everything worth knowing about Consent Mode and consent banners.</p>
<p>The post <a href="https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/">Everything about cookie consent</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">A little trip down memory lane</h2>



<p class="wp-block-paragraph">Think back to the not-so-distant past, when you could open a website without reading a wall of text about cookies, storage and processing purposes, and then making an important decision on a screen like this one:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="432" height="252" src="https://blog.datacrew.agency/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-07.42.43.png" alt="simple cookie bar" class="wp-image-1052" srcset="https://blog.datacrew.agency/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-07.42.43.png 432w, https://blog.datacrew.agency/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-07.42.43-300x175.png 300w, https://blog.datacrew.agency/wp-content/uploads/2025/03/CleanShot-2025-03-17-at-07.42.43-400x233.png 400w" sizes="auto, (max-width: 432px) 100vw, 432px" /><figcaption class="wp-element-caption">Keeping it simple</figcaption></figure>



<p class="wp-block-paragraph">It really wasn&#8217;t that long ago. The whole circus kicked off in 2018, when the GDPR took effect. It introduced the roles of data controller and data processor, and it put a long list of obligations on service providers, including the right to have your personal data deleted. The big players didn&#8217;t get a free pass either, and Google had no interest in collecting fines, so it had to move.</p>



<h2 class="wp-block-heading">Enter Consent Mode</h2>



<p class="wp-block-paragraph">One thing you have to understand up front: when Google built Consent Mode, it wasn&#8217;t primarily thinking about its customers or its advertisers. It needed to stay out of trouble, and that&#8217;s why the thing works the way it works.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Nobody, ever, promised that rolling out Consent Mode makes you GDPR compliant.</p>
</blockquote>



<p class="wp-block-paragraph">So no, implementing Consent Mode does not guarantee that your website or mobile app complies with the GDPR. Getting the details right takes a privacy lawyer. We can&#8217;t give legal advice and we don&#8217;t want to, so please read everything below with that in mind.</p>



<h3 class="wp-block-heading">What is Consent Mode?</h3>



<p class="wp-block-paragraph">The idea behind Consent Mode is that Google tags fire according to the consent the visitor actually gave. Tags support several consent types:</p>



<ul class="wp-block-list">
<li>analytics_storage</li>



<li>ad_storage</li>



<li>ad_personalization</li>



<li>ad_user_data</li>
</ul>



<p class="wp-block-paragraph">There are a few more beyond these, but they don&#8217;t affect how Google tags behave. We call these consent signals <em>flags</em>. Each flag has its own job, and if you want to go deeper, Google&#8217;s <a href="https://developers.google.com/tag-platform/security/concepts/consent-mode#consent-types" target="_blank" rel="noopener">documentation on consent types</a> is worth a read.</p>



<p class="wp-block-paragraph">The short version: if you want the visitor to show up in Google Analytics, you need analytics_storage. If you want to use that visitor for advertising that actually performs, you need the ad_ flags accepted too.</p>



<h3 class="wp-block-heading">When do you actually need this?</h3>



<p class="wp-block-paragraph">Pretty much always. If you advertise on Google, it&#8217;s non-negotiable. Even if all you run is Analytics, you still want it. And this applies to your mobile app just as much as your website. Your app needs a consent screen and a proper Consent Mode implementation, exactly like the web does.</p>



<p class="wp-block-paragraph">Skip Consent Mode and Google will make your life harder in a lot of small ways: remarketing becomes impossible, campaign performance drops, and you end up watching your competitors pull ahead.</p>



<p class="wp-block-paragraph">Google is quite happy to reach for that stick when consent isn&#8217;t implemented properly on your site or in your app. Sure, there are loopholes, like simply telling Google that the visitor granted full consent. But take our word for it:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">It&#8217;s just not worth it.</p>
</blockquote>



<p class="wp-block-paragraph">Once Google penalizes you, getting good results out of the platform again is genuinely hard. When a site lands in an enforcement cycle, you have to fix the setup and then appeal through a form. That triggers another review, except now every little mistake gets picked apart, and it stays that way. Those post-appeal reviews aren&#8217;t fast either. For a larger company, one of these episodes can easily cost tens of thousands of euros.</p>



<p class="wp-block-paragraph">Consent Mode isn&#8217;t Google&#8217;s only requirement for advertising, by the way. There&#8217;s a <a href="https://www.google.com/about/company/user-consent-policy-help/" target="_blank" rel="noopener">checklist</a> that spells out exactly what boxes you need to tick before Google considers your site or app compliant.</p>



<p class="wp-block-paragraph">We&#8217;ve seen a case where Consent Mode worked flawlessly on a website, but Google noticed the site had no link to its <a href="https://business.safety.google/privacy/" target="_blank" rel="noopener">privacy page</a> and penalized our client with worse performance anyway. So take the holistic view: get the consent banner right, make sure Consent Mode respects the visitor&#8217;s actual preferences, and work through Google&#8217;s checklist.</p>



<h3 class="wp-block-heading">Advanced vs. basic implementation</h3>



<p class="wp-block-paragraph">Deciding to implement Consent Mode is just the start. The safest approach from a legal standpoint is to send Google nothing at all until the visitor makes a choice. That&#8217;s the <em>basic</em> implementation. It&#8217;s probably the most defensible option legally, but it&#8217;s the weakest one for data. You&#8217;ll know nothing about your visitors until they grant &#8222;adequate&#8221; consent.</p>



<p class="wp-block-paragraph">The <em>advanced</em> implementation, on the other hand, sends data to Google both before consent is given and when it&#8217;s denied. That data takes the form of <em>cookieless pings</em>. They contain no personal data, but they help the system model conversions from visitors who declined.</p>



<p class="wp-block-paragraph">Compare the two and modeling is the main difference. With basic mode, the only conversions you&#8217;ll see in your reports are the ones that were actually measured. With advanced mode, Google tries to model certain metrics for the visitors who said no. That&#8217;s a genuinely useful feature, because when modeling kicks in, the platforms tend to make pretty accurate guesses.</p>



<p class="wp-block-paragraph">Keep in mind, though, that this is modeled data, not measured data. It is not an exact number, no matter how confidently Analytics or Ads presents it. And modeling needs volume to work. Realistically, only mid-sized businesses and up generate enough declined consents to <a href="https://support.google.com/analytics/answer/11161109?hl=en#prerequisites" target="_blank" rel="noopener">meet the thresholds</a>. Below that, advanced Consent Mode adds <strong>nothing</strong> to your Analytics reporting.</p>



<p class="wp-block-paragraph">If you work with raw data, though, and export your Analytics data to BigQuery, advanced Consent Mode can be a real win. Those exports include the visitors who declined analytics_storage, anonymized behind <em>pseudo IDs</em>.</p>



<h2 class="wp-block-heading">The consent banner</h2>



<h3 class="wp-block-heading">Which cookie tool should you pick?</h3>



<p class="wp-block-paragraph">Once you&#8217;ve settled on an implementation mode, you need a consent tool, a CMP, for the visitor to give consent through. You&#8217;d think this part is easy. It isn&#8217;t. Look for a <a href="https://cmppartnerprogram.withgoogle.com/" target="_blank" rel="noopener">Google Certified CMP</a>, essentially off-the-shelf consent tools that support Consent Mode.</p>



<p class="wp-block-paragraph">We&#8217;re not here to sell you on any particular one. What matters is that the tool shouldn&#8217;t block things automatically. You want to build the blocking logic manually. Here&#8217;s why: your legal team might be fine with a particular setup, and automatic blocking can make that setup impossible. Manual configuration gives you far more room to move.</p>



<p class="wp-block-paragraph">The tool also needs to be properly customizable. The technical details matter enormously, but your acceptance rate only goes up when the banner looks right, meaning a high share of visitors grant full consent.</p>



<h3 class="wp-block-heading">Consent banner design</h3>



<p class="wp-block-paragraph">Design, or rather layout, is a big deal. You can do everything right, roll out Consent Mode, tick every box on Google&#8217;s checklist, and then strangle the whole thing with a banner that converts terribly. That&#8217;s an own goal. You&#8217;ll be beautifully compliant and your ad platforms will have no data.</p>



<p class="wp-block-paragraph">Three things matter in a consent layout:</p>



<ul class="wp-block-list">
<li>The visitor should give consent on the landing page</li>



<li>The banner should cover as much of the page as possible</li>



<li>Guide the visitor toward the choice that works best for you</li>
</ul>



<p class="wp-block-paragraph">Let&#8217;s take these one at a time.</p>



<h4 class="wp-block-heading">Consent on the landing page</h4>



<p class="wp-block-paragraph">Getting consent on the landing page is critical. Why? Because if it happens later, the campaign parameters can be gone by then, and the visitor ends up in your analytics as direct traffic.</p>



<p class="wp-block-paragraph">Picture this. A visitor arrives with XYZ UTM parameters. There&#8217;s a tiny consent banner on the landing page, they ignore it, but they like your product and start moving through checkout. On that first page the UTM parameters were still in the URL. On the next page they&#8217;re gone. If the visitor accepts consent there, it doesn&#8217;t matter how far down the funnel they go, they&#8217;re a direct visitor now, because there were no campaign parameters in the URL at the moment consent was granted.</p>



<p class="wp-block-paragraph">You can pass campaign parameters through internal links alongside Consent Mode, which works around the problem of visitors consenting somewhere other than the landing page. But it breaks plenty of sites, so test it seriously before rolling it out. And these days navigation doesn&#8217;t happen through links alone, while this workaround only covers links.</p>



<h4 class="wp-block-heading">The full-screen consent banner</h4>



<p class="wp-block-paragraph">The consent banners that convert are the ones that cover the entire page on arrival and force the visitor to choose. From a UX standpoint that sounds obnoxious, but it&#8217;s the best practice, and the reason is the point above: you want complete data in your analytics from the very first touchpoint.</p>



<p class="wp-block-paragraph">A lot of people balk at a full-screen consent banner, but at this point it&#8217;s so common that visitors click the friendliest-looking button on reflex. Sure, there are sites where it&#8217;s hard to pull off, but aim for it.</p>



<h4 class="wp-block-heading">Guiding the visitor toward the right choice</h4>



<p class="wp-block-paragraph">Now we&#8217;re in CRO territory. The goal is to get the visitor to grant the highest level of consent. Pre-selected consent levels are one way, assuming your legal team allows it. You can give the accept-all button a distinct color and shape, or even drop an emoji on the button that leads to the outcome you want. The sky&#8217;s the limit. Heatmap analysis and A/B tests are fair game too when you&#8217;re dialing in the perfect layout.</p>



<p class="wp-block-paragraph">Take a look at this consent banner, for example:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="149" src="https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-1024x149.png" alt="bad consent bar" class="wp-image-1045" srcset="https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-1024x149.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-300x44.png 300w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-768x112.png 768w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-1536x223.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-400x58.png 400w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-800x116.png 800w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-832x121.png 832w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-1664x242.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar-1248x181.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2025/03/of_bar.png 1900w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">How not to do it</figcaption></figure>



<p class="wp-block-paragraph">Just about everything that can be wrong here is wrong:</p>



<ul class="wp-block-list">
<li>A white consent bar on a white page, covering essentially nothing</li>



<li>The copy doesn&#8217;t meet Google&#8217;s checklist</li>



<li>The toggles default to off, so hitting save grants nothing at all, exactly like ignoring the banner or clicking &#8222;Reject all&#8221;. Two of the three buttons leave you with no consent</li>



<li>The accept-all button sits in the middle instead of at the top</li>



<li>The buttons are too close together. Even a visitor who wants to give consent can miss and end up giving none</li>
</ul>



<p class="wp-block-paragraph">For comparison, here&#8217;s another consent dialog:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="378" src="https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-1024x378.png" alt="great consent bar" class="wp-image-1047" srcset="https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-1024x378.png 1024w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-300x111.png 300w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-768x284.png 768w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-1536x567.png 1536w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-400x148.png 400w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-800x295.png 800w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-832x307.png 832w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-1664x614.png 1664w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1-1248x461.png 1248w, https://blog.datacrew.agency/wp-content/uploads/2025/03/lnr-1.png 1896w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">This is more like it</figcaption></figure>



<p class="wp-block-paragraph">It&#8217;s pretty obvious what behavior we&#8217;re steering the user toward here.</p>



<p class="wp-block-paragraph">We measured a <strong>16%</strong> acceptance rate on the first consent tool and <strong>over 94%</strong> on the second. That&#8217;s an enormous gap, and we got there while still giving users a real option to decline.</p>



<h2 class="wp-block-heading">Every other ad platform</h2>



<p class="wp-block-paragraph">We don&#8217;t want to leave you thinking Google is the only platform that needs consent to function. Every ad platform&#8217;s tracking code should fire, or not fire, according to the consent you did or didn&#8217;t receive. We focused on Google&#8217;s Consent Mode here because it&#8217;s the largest ecosystem, and because Google Analytics and Google Ads are more or less unavoidable.</p>



<p class="wp-block-paragraph">That said, plenty of other ad platforms have their own consent handling. We usually run the rest the way we&#8217;d run basic Consent Mode: if the visitor consents, the tag fires, and if not, it doesn&#8217;t. The Meta pixel, for example, typically runs on marketing consent. But again, the exact behavior should follow what your legal team asks for. Bing Ads is worth a mention too, since it needs a Consent Mode setup similar to Google&#8217;s to work properly.</p>



<h2 class="wp-block-heading">Turn the cookie problem into money</h2>



<p class="wp-block-paragraph">Ignoring consent and measuring everything without permission can land you in legal trouble. The GDPR is not optional, and mishandling visitor or customer data can cost you up to <a href="https://gdpr.eu/fines/#:~:text=Two%20tiers%20of%20GDPR%20fines,year%2C%20whichever%20amount%20is%20higher." target="_blank" rel="noopener">2% of your <em>corporate group&#8217;s</em> revenue</a> in fines. For a larger international company that&#8217;s several million euros, so it isn&#8217;t worth the gamble. Especially since, as we&#8217;ve seen, a good implementation means you barely have to give up any data.</p>



<p class="wp-block-paragraph">And the rest of the world is catching up fast. The UK GDPR, Switzerland&#8217;s revised FADP, Canada&#8217;s PIPEDA, Australia&#8217;s Privacy Act and the growing pile of US state privacy laws all push in the same direction. If you sell across borders, the strictest regime in your footprint is the one you should be building for.</p>



<p class="wp-block-paragraph">Exactly how much data you&#8217;ll give up, call it the cost of doing business legally, depends on where you&#8217;re starting from. If your site or app doesn&#8217;t account for consent at all today, expect less data after you implement it. The good news is that there are ways to make that drop as painless as possible.</p>



<p class="wp-block-paragraph">If you already account for consent, the work is about finding the pieces that can be improved, meaning more visitors granting full consent. One thing is certain: the more data your ad platforms get, the better they perform, and they&#8217;ll pay you back in revenue.</p>



<p class="wp-block-paragraph">The big drawback of off-the-shelf CMPs is the subscription model, and the prices sting. We built our own, which we can deploy on your site for a one-time fee, so there&#8217;s no recurring cost. It&#8217;s 100% Consent Mode compatible with a full-screen design, fully responsive so it looks right on mobile too. Another advantage over off-the-shelf tools: it loads no external scripts. All the code lives in the page source, so it loads instantly, which is a nice win for SEO as well. If our CMP sounds interesting, <a href="https://datacrew.agency/en/contact/" target="_blank" rel="noopener">get in touch</a> for a quote.</p><p>The post <a href="https://blog.datacrew.agency/en/consent-management/everything-about-cookie-consent/">Everything about cookie consent</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hello world! Why we started this blog</title>
		<link>https://blog.datacrew.agency/en/behind-the-scenes/hello-world-why-we-started-this-blog/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 12 Mar 2025 11:56:53 +0000</pubDate>
				<category><![CDATA[Behind the scenes]]></category>
		<guid isPermaLink="false">https://blog.datacrew.agency/kategoria-nelkuli-en/hello-world-why-we-started-this-blog/</guid>

					<description><![CDATA[<p>We'd been planning an educational blog for ages, and the time has finally come. Here's what we'll be writing about on the DataCrew blog, and who we're writing it for.</p>
<p>The post <a href="https://blog.datacrew.agency/en/behind-the-scenes/hello-world-why-we-started-this-blog/">Hello world! Why we started this blog</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">We&#8217;d been planning an educational blog for ages, and we&#8217;re happy to report that the time has finally come. <br>This is our very first post here, and there should be quite a few more behind it. We want to write a lot about current measurement trends and the solutions around them, going deep into the details and skipping none of the technical bits. We&#8217;ll do our best to stay readable, but if we miss the mark somewhere, ask away in the comments and we&#8217;ll try to clear it up.</p>



<h2 class="wp-block-heading">About what we do</h2>



<p class="wp-block-paragraph">We know our line of work can look like a dry technical sport from the outside. We see it differently: analytics is a challenging craft that gets better (and harder) by the day. No two analytics people are alike, and no two setups are alike either. There are industry standards, usually dictated by Google, but the road to the finished implementation is different for everybody. We&#8217;re pretty sure any given task would be solved a different way by every practitioner out there, so there&#8217;s no guarantee a setup will ever be built exactly the way you&#8217;d think through it. What we really love about this job is that the goal is always exact. Once something is measurable, you&#8217;re done. Setting up measurement is a project, not an ongoing effort. Which means both the start and the finish are something you can plan.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We think analytics is cool.</p>
</blockquote>



<h2 class="wp-block-heading">Is this going to be too technical for me?</h2>



<p class="wp-block-paragraph">We know the deep technical details are mostly interesting to fellow practitioners, and nobody should be expected to live inside digital analytics the way we do day after day. This content is written first and foremost for agencies that also work with analytics and for freelance analytics specialists, of whom there are strikingly few anywhere you look. It&#8217;s no big secret that we&#8217;re a digital analytics agency ourselves, and we make a living from client work. Feel free to <a href="https://datacrew.agency/en/contact/" target="_blank" rel="noopener">ask for a quote</a> on our site and we&#8217;ll help you adapt the solutions we cover here, or the ones we haven&#8217;t covered yet, to your company&#8217;s website or mobile app.</p>



<p class="wp-block-paragraph">Good luck with whatever brought you here, whether you&#8217;re a client, just browsing, or an enthusiastic amateur looking to make your own measurement better. Don&#8217;t worry, we&#8217;ve got you. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Stick around, and follow us on <a href="https://www.linkedin.com/company/106894896/" target="_blank" rel="noopener">LinkedIn</a> and <a href="https://github.com/DataCrew-Agency" target="_blank" rel="noopener">GitHub</a> too.</p>



<!-- Phonevert Callback Form -->
<script async="" src="https://tunnel.phonevert.ai/phonevert-formloader.js?formid=8298NpdQ37J5&#038;key=pk_live_Hwm5CkQm2l9XAaK5OCIZF9cxUImSmayz">
</script>
<!-- End Phonevert Callback Form --><p>The post <a href="https://blog.datacrew.agency/en/behind-the-scenes/hello-world-why-we-started-this-blog/">Hello world! Why we started this blog</a> first appeared on <a href="https://blog.datacrew.agency">DataCrew Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
