<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on Patryk Kalinowski</title>
    <link>/blog/</link>
    <description>Recent content in Blog on Patryk Kalinowski</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <lastBuildDate>Thu, 20 Mar 2025 21:00:00 +0100</lastBuildDate><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>I made an app for competitive hot air balloon pilots</title>
      <link>/blog/i-made-an-app-for-competitive-hot-air-balloon-pilots/</link>
      <pubDate>Thu, 20 Mar 2025 21:00:00 +0100</pubDate>
      
      <guid>/blog/i-made-an-app-for-competitive-hot-air-balloon-pilots/</guid>
      <description>This is a fairly long story of why I built Balloon Navigator, what&amp;rsquo;s involved to fly with centimeters level precision when you can only use wind and how technology is shaping modern ballooning today.
This is me (right) with my brother and a laptop for navigation.
Table of contents:
What the hell is competitive hot air ballooning? Flying with computers Principles Timeline of technology choices Present and future What the hell is competitive hot air ballooning?</description>
    </item>
    
    <item>
      <title>Analyze real usage cost of your BigQuery data warehouse</title>
      <link>/blog/analyze-real-usage-cost-of-your-bigquery-data-warehouse/</link>
      <pubDate>Thu, 27 Jul 2023 20:00:00 +0100</pubDate>
      
      <guid>/blog/analyze-real-usage-cost-of-your-bigquery-data-warehouse/</guid>
      <description>BigQuery is an amazing database. It will handle everything you throw at it, no matter the size… or cost.
And things are easy to overlook: BI tool doing full table scans hourly, new hire querying SELECT * on huge dataset or ETL script stuck in a loop&amp;hellip;
You should be able to discover these before you get smacked with huge bill at the end of the month.
Let&amp;rsquo;s figure out how to build a report to give us proper insights into what exactly we&amp;rsquo;re paying for.</description>
    </item>
    
    <item>
      <title>How to setup CORS for Cloudflare R2 bucket using AWS CLI</title>
      <link>/blog/how-to-setup-cors-for-cloudflare-r2-bucket-using-aws-cli/</link>
      <pubDate>Sun, 20 Nov 2022 20:00:00 +0100</pubDate>
      
      <guid>/blog/how-to-setup-cors-for-cloudflare-r2-bucket-using-aws-cli/</guid>
      <description>As of 2022-11-20:
Currently, you have to use the S3 API PutBucketCors to configure CORS for your bucket. ~Cloudflare
The simplest way to setup CORS for your R2 bucket is to use AWS CLI. To make it work with R2 properly, you need to include --endpoint-url pointing to your R2 bucket URL.
First of all, configure CLI according to instructions on Cloudflare docs
You need to use put-bucket-cors command.
Create JSON file containing CORS rules.</description>
    </item>
    
    <item>
      <title>Backfill user_id in GA4 events exported to Bigquery</title>
      <link>/blog/backfill-user_id-in-ga4-events-exported-to-bigquery/</link>
      <pubDate>Thu, 14 Jul 2022 20:00:00 +0100</pubDate>
      
      <guid>/blog/backfill-user_id-in-ga4-events-exported-to-bigquery/</guid>
      <description>Let&amp;rsquo;s say your SaaS analytics setup looks like this:
You have Google Analytics 4 implemented on both marketing website and app GA4 gathers data on anonymous users on marketing website You send user_id to GA4 in app GA4 data is exported to BigQuery Now, your data contains events where user is recognized (user_id is present) and events where you only have anonymous id (user_pseudo_id in GA4) - and these might be generated by the same person.</description>
    </item>
    
    <item>
      <title>Webinar: Hands-on Tech Stack for Account-Based Programs Using HubSpot</title>
      <link>/blog/webinar-hands-on-tech-stack-for-account-based-programs-using-hubspot/</link>
      <pubDate>Wed, 15 Sep 2021 18:00:00 +0100</pubDate>
      
      <guid>/blog/webinar-hands-on-tech-stack-for-account-based-programs-using-hubspot/</guid>
      <description>I took part in webinar on ABM tech stacks hosted by Man Digital.
Click on the image or here to watch the recording.</description>
    </item>
    
    <item>
      <title>Improve your B2B remarketing with content properties</title>
      <link>/blog/improve-your-b2b-remarketing-with-content-properties/</link>
      <pubDate>Tue, 01 Sep 2020 09:00:00 +0100</pubDate>
      
      <guid>/blog/improve-your-b2b-remarketing-with-content-properties/</guid>
      <description>Imagine Hans from Germany, manager in ABC GmbH, rising fintech SaaS startup. He is your potential customer as you already did some fintech SaaS work and even wrote a case study on that.
Hans visits your website and following pages:
Homepage (/) Services (/services) Case Studies (/case-studies) Case Study: ACME Inc. (/case-studies/acme) This is promising, he might be interested in your services (note that Hans is still anonymous visitor to you).</description>
    </item>
    
    <item>
      <title>How to get raw contact pageviews analytics data from Hubspot</title>
      <link>/blog/how-to-get-raw-contact-pageviews-analytics-data-from-hubspot/</link>
      <pubDate>Sat, 22 Feb 2020 18:00:00 +0100</pubDate>
      
      <guid>/blog/how-to-get-raw-contact-pageviews-analytics-data-from-hubspot/</guid>
      <description>If you tried to extract data from Hubspot to your data warehouse using tools like Stitch, Segment or Fivetran, you may have noticed that it gets only the most basic stuff.
There is some more detailed data hidden in Hubspot API. In this blogpost I&amp;rsquo;ll show you how to get all pageviews with full URLs for every contact in your Hubspot database.
You can use this data to properly model user journey and get information hidden from you by default (see Attribution analytics in Hubspot is bad).</description>
    </item>
    
    <item>
      <title>Attribution analytics in Hubspot is bad</title>
      <link>/blog/attribution-analytics-in-hubspot-is-bad/</link>
      <pubDate>Tue, 11 Feb 2020 20:00:00 +0100</pubDate>
      
      <guid>/blog/attribution-analytics-in-hubspot-is-bad/</guid>
      <description>All marketing powerhouses tell you they are your golden ticket to ultimate knowledge about your customers.
Grow your traffic, convert leads, and prove ROI. Track Customers and Report Your Impact on the Bottom Line Automatically record and organize every interaction customers have with your brand. Then, tie all your data to closed revenue with multi-touch revenue attribution. Gain insight into your entire customer journey Track the ROI of your Facebook, Instagram, LinkedIn, and Google advertising with precision, and stop struggling to justify your paid ad spend.</description>
    </item>
    
    <item>
      <title>Why blocking 3rd party cookies won&#39;t stop adtech</title>
      <link>/blog/why-blocking-3rd-party-cookies-wont-stop-adtech/</link>
      <pubDate>Thu, 23 Jan 2020 18:00:00 +0100</pubDate>
      
      <guid>/blog/why-blocking-3rd-party-cookies-wont-stop-adtech/</guid>
      <description>There are lot of misconceptions how 3rd party cookies affect website analytics and if marketing teams should be worried when they are being blocked.
I tried to explain inner workings of all this fuss as simple as possible.
Behold, 3rd party cookies for dummies: When you visit WebsiteA.com which has Adtech.com tracking code, this code asks Adtech.com domain for cookie (VisitorID: 123). Since you are on WebsiteA.com, Adtech.com is third party domain and adtech cookies are third party cookies.</description>
    </item>
    
    <item>
      <title>5 levels of automation in business</title>
      <link>/blog/5-levels-of-automation-in-business/</link>
      <pubDate>Tue, 21 Jan 2020 18:00:00 +0100</pubDate>
      
      <guid>/blog/5-levels-of-automation-in-business/</guid>
      <description>Whenever I talk about work with somebody, I&amp;rsquo;m always interested in how their processes look like. I talked with freelancers, one person businesses, people from small companies up to 10 employees, bigger companies up to 50, 100 and 1000 employees and corporations.
There are lot of recurring themes and most of these processes aren&amp;rsquo;t even special or in any way unique. I&amp;rsquo;d say all of them fit within one of 5 buckets.</description>
    </item>
    
    <item>
      <title>Make your analytics work with adblockers</title>
      <link>/blog/make-your-analytics-work-with-adblockers/</link>
      <pubDate>Thu, 21 Nov 2019 18:00:00 +0100</pubDate>
      
      <guid>/blog/make-your-analytics-work-with-adblockers/</guid>
      <description>Depending on country and industry, up to 40% of your users use adblockers. You know nothing about their activity on website, they are not on your remarketing lists and every CRM and marketing automation system reports their source as dreaded DIRECT TRAFFIC.
Of course it is possible to improve it. 100% attribution sounds enticing and is worth a lot of money, so let&amp;rsquo;s try to reach it.
Disclaimer: do not implement this in any reputable company you&amp;rsquo;re working for.</description>
    </item>
    
    <item>
      <title>Content variables in Hubspot - How to have your content always up-to-date</title>
      <link>/blog/content-variables-in-hubspot-how-to-have-your-content-always-up-to-date/</link>
      <pubDate>Tue, 19 Feb 2019 18:00:00 +0100</pubDate>
      
      <guid>/blog/content-variables-in-hubspot-how-to-have-your-content-always-up-to-date/</guid>
      <description>Let&amp;rsquo;s say you want to include number of company employees in your blogpost, landing page or custom module. You just write a simple number, right? Fast forward few months, company is growing and you need to update this number. Are you 100% sure you know where you can find all of its occurences?
At Netguru we weren&amp;rsquo;t. Landing pages created in various points in time had number of employees ranging from 200 to 600.</description>
    </item>
    
    <item>
      <title>How Marketing Automation Works</title>
      <link>/blog/how-marketing-automation-works/</link>
      <pubDate>Mon, 10 Dec 2018 10:00:00 +0100</pubDate>
      
      <guid>/blog/how-marketing-automation-works/</guid>
      <description>Today&amp;rsquo;s world, thanks to new technologies we get to use everyday, changes a lot. Computing power increases, new solutions emerge and various systems we use are getting more and more complicated.
Marketing is no different. Modern marketing tools make teams work faster and more efficient in reaching their audiences. Internet and computers enable reaching huge amount of people in a scale never experienced before.
&amp;ldquo;How marketing automation works&amp;rdquo; is a technical description of marketing automation systems and solutions which greatly improve effectiveness of marketing efforts on the Internet.</description>
    </item>
    
    <item>
      <title>Automating Myself Out of the Job - Quick Automation Wins</title>
      <link>/blog/automating-myself-out-of-the-job/</link>
      <pubDate>Mon, 24 Jul 2017 10:00:00 +0100</pubDate>
      
      <guid>/blog/automating-myself-out-of-the-job/</guid>
      <description>This post originally appeared on Netguru blog.
In every business setting, there are several dreaded, time-consuming and repetitive activities which we must carry out to keep the wheels spinning. Somebody has to do them regardless of the very low fun factor. We are a software company, though – we simplify and automate complicated things for a living, so why not do it for the boring part of our jobs, too?</description>
    </item>
    
    <item>
      <title>Google Analytics UserId in Hubspot</title>
      <link>/blog/google-analytics-userid-in-hubspot/</link>
      <pubDate>Fri, 12 May 2017 20:00:00 +0100</pubDate>
      
      <guid>/blog/google-analytics-userid-in-hubspot/</guid>
      <description>Paste this below your Analytics tracking code, in a template or content settings footer field:
&amp;lt;script&amp;gt; ga(&amp;#39;set&amp;#39;, &amp;#39;userId&amp;#39;, &amp;#39;{% raw %}{{contact.email|md5}}{% endraw %}&amp;#39;); &amp;lt;/script&amp;gt; How does it work? User ID enables the analysis of groups of sessions, across devices, using a unique, persistent, and non-personally identifiable ID string representing a user.
The easiest solution would be of course to identify visitors by their e-mail address, but we are not allowed to do that - as you can identify person using their e-mail.</description>
    </item>
    
    <item>
      <title>Custom Blog Search in Hubspot COS</title>
      <link>/blog/custom-blog-search-in-hubspot-cos/</link>
      <pubDate>Wed, 14 Dec 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/custom-blog-search-in-hubspot-cos/</guid>
      <description>Hubspot does not provide you with any search engine for your blogs, instead pointing you to use Google search. I have prepared a very simple solution which you can use to create good looking search without redirecting your visitors to external websites. Check out working example at netguru.co.
Its fast, quick and simple, but has two disadvantages - search is capped to 200 most popular blogposts and it looks through post titles only.</description>
    </item>
    
    <item>
      <title>Capture WooCommerce Abandoned Carts in Mautic</title>
      <link>/blog/capture-woocommerce-abandoned-carts-in-mautic/</link>
      <pubDate>Wed, 12 Oct 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/capture-woocommerce-abandoned-carts-in-mautic/</guid>
      <description>How to find abandoned WooCommerce carts and send information to Mautic? If its your returning customer and you have him/her email in your database, it shouldnt be hard - you just have to create a simple rule:
Visited Checkout Page AND Did Not Visit Order Confirmation Page
But if it&amp;rsquo;s first time visitor, we have no email or any contact information except of remarketing which has much lower success rate than abandoned cart emails.</description>
    </item>
    
    <item>
      <title>My Online Privacy Experiment</title>
      <link>/blog/my-online-privacy-experiment/</link>
      <pubDate>Wed, 10 Aug 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/my-online-privacy-experiment/</guid>
      <description>Working in online marketing, especially with automation and analytics tools, oftentimes you are watching various people activities performed on your website and their profiles. This is usually pretty basic information available publicly or submitted by given person willingly plus analytics data, like page views and e-mail opens. While this simple info seems very scarce, used smartly provides huge benefits and gives valuable insights where should you focus your marketing and sales efforts.</description>
    </item>
    
    <item>
      <title>How To Measure User Engagement With Hubspot and Google Analytics</title>
      <link>/blog/how-to-measure-user-engagement-with-hubspot-and-google-analytics/</link>
      <pubDate>Sat, 16 Jul 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/how-to-measure-user-engagement-with-hubspot-and-google-analytics/</guid>
      <description>This post originally appeared on Netguru blog
Not so long ago we came up against a big problem while analyzing the performance of our campaigns – there were no conversions at all. We had two versions of a campaign: blog content and sales/business content. The plan was to choose the better one. How do you choose the winner if there are seemingly no conversions?
We implemented more early engagements metrics, which would show us how our visitors behaved depending on which campaign they were coming from.</description>
    </item>
    
    <item>
      <title>How to Track Your Visit Sources in Hubspot</title>
      <link>/blog/how-to-track-your-visit-sources-in-hubspot/</link>
      <pubDate>Tue, 10 May 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/how-to-track-your-visit-sources-in-hubspot/</guid>
      <description>This post originally appeared on Netguru blog
Online marketing can be really complicated. You have to manage accounts on many advertising networks, take care of your databases, as well as set up integrations, workflows and email campaigns. Your customers are coming from absolutely everywhere - online and offline ads, newsletters, remarketing ads, referral sites and organic searches. Properly tracking all of these sources can give you a serious headache. How to make it easier?</description>
    </item>
    
    <item>
      <title>Blockchain as a decentralized watchdog</title>
      <link>/blog/blockchain-as-a-decentralized-watchdog/</link>
      <pubDate>Sat, 26 Mar 2016 20:00:00 +0100</pubDate>
      
      <guid>/blog/blockchain-as-a-decentralized-watchdog/</guid>
      <description>Some people say that blockchain is the invention of the same magnitude as internet. The idea for one supercomputer stretched around the whole planet still sounds like a science-fiction concept, but it&amp;rsquo;s already happening. Bitcoin network exceeded computing power of TOP 500 supercomputers combined few years ago. New ideas are emerging daily, new startups are funded and launching their products, but we still have no comparable implementation of blockchain technology in terms of popularity.</description>
    </item>
    
  </channel>
</rss>
