<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ #content marketing - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ #content marketing - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:51:13 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/content-marketing/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ The Best Time to Post on Instagram – The Best Days and Times To Reach Your IG Followers ]]>
                </title>
                <description>
                    <![CDATA[ If you're trying to build up a following on Instagram, you'll likely want to post at the best possible times. After all, if people don't actually see your posts, did they really even happen...? While there's no exact science that dictates the best po... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-best-time-to-post-on-instagram-the-best-days-and-times-to-reach-your-ig-followers/</link>
                <guid isPermaLink="false">66b1fa7c7dd34c3b72fe22ea</guid>
                
                    <category>
                        <![CDATA[ business strategy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ instagram ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Time management ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Abigail Rennemeyer ]]>
                </dc:creator>
                <pubDate>Thu, 31 Dec 2020 23:46:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/6007619d0a2838549dcb4f20.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>If you're trying to build up a following on Instagram, you'll likely want to post at the best possible times. After all, if people don't actually see your posts, did they really even happen...?</p>
<p>While there's no exact science that dictates the best possible times to share content on Instagram throughout time zones and disciplines, there are strategies you can use. And there are certain times and windows that seem to be consistently better than others.</p>
<p>In this article, we'll use the freeCodeCamp Instagram account as an example – since I run it, I'm the most familiar with its behavior and trends. </p>
<p>I'll share my reasoning behind our timing strategies along with what works best for us. I'll also discuss some general advice about posting times and how you can decide when to share your content.</p>
<p>Let's get started.</p>
<h2 id="heading-whats-the-best-time-to-post-to-instagram-in-general">What's the best time to post to Instagram, in general?</h2>
<p>As I mentioned above, there's not really a universally right or wrong time to post to Instagram. It depends on your audience, your goals, where you're located, and many other factors. But let's try to get some insights.</p>
<p>First, some data:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/01/ig-time-slots.png" alt="Image" width="600" height="400" loading="lazy">
<em>A graph showing how many posts people share in various time slots throughout the day (<a target="_blank" href="https://www.mdpi.com/2078-2489/11/9/453/htm">Source</a>)</em></p>
<p>This is a very general graph, but you can see that there tend to be the most posts between around 9am and 6pm. This makes sense, as people are generally awake and active during those hours.</p>
<p>To get a little more insight into when people post and why, let's dive in deeper.</p>
<h3 id="heading-put-yourselves-in-your-audiences-shoes">Put yourselves in your audience's shoes</h3>
<p>Alright, let's think about this logically. Perhaps, if you're an Instagram user, think of your own behavior on the app. </p>
<p>If you're a somewhat typical user, you likely check IG right when you wake up. Nothing like a little shot of inspiration/FOMO/political commentary to start off the day right.</p>
<p>Then, when you're eating lunch, you probably open up the app again to check out all the juicy goodness that's been shared while you were working or doing other things all morning.</p>
<p>As your day winds down, and your brain becomes tired or distracted from work or taking care of kids or job hunting – or however you spend your days – you might check in with Instagram again just to escape and browse for a minute.</p>
<p>See what I'm getting at? People tend to check Instagram before work, when they need a break, or when they want inspiration or information. </p>
<p>Of course, Instagram isn't always restful – many people use it for active learning, sharing their art, consuming and sharing information about politics and social justice, and so on. </p>
<p>But it's up to you to know your audience. Whether you're posting travel photos or tech tutorials, think about who might be interested in those images or videos and when they might be browsing the app.</p>
<h3 id="heading-how-to-choose-the-best-times-to-post-to-instagram">How to choose the best times to post to Instagram</h3>
<p>Now that you've thought about who might be viewing your posts (and whom you want to view those posts), let's talk about some general trends in Instagram viewership. I'll focus on the tech and education spheres, since those are where freeCodeCamp lives.</p>
<p>First of all, here's something to keep in mind: if you have a relatively global audience – meaning your viewers are spread all over the world – it matters less when you post. Or rather, you can't cater to all time zones at once. If you can figure out where <strong>most</strong> of your audience is, or even a small majority, focus on times that are ideal for that area.</p>
<p>This is one strategy I follow. I live on the west coast of the United States, and there are many people in the States that engage with freeCodeCamp in some way (whether through the <a target="_blank" href="https://www.freecodecamp.org/learn">curriculum</a>, publication, <a target="_blank" href="https://forum.freecodecamp.org/">forum</a>, <a target="_blank" href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ">YouTube channel</a>, or our <a target="_blank" href="https://twitter.com/freeCodeCamp">social</a> <a target="_blank" href="https://www.instagram.com/freecodecamp/">media</a> <a target="_blank" href="https://www.linkedin.com/school/free-code-camp/">channels</a>).</p>
<p>Part of freeCodeCamp's strategy is that we don't schedule posts ahead of time. I like to keep the content fresh and current, and I post to freeCodeCamp's account a few times a week.</p>
<p>By way of planning, I simply reach out to the people who's posts I want to re-share, and ask their permission to do so. Once I've gotten it, I add that post's URL to a spreadsheet so I can keep track of which posts I've shared and when.</p>
<p>Now the main question – once I have my planned posts, when do I share them?</p>
<p>Well, I think about the factors I've discussed above, and here's my general strategy.</p>
<h4 id="heading-focus-on-weekdays">Focus on weekdays</h4>
<p>I want to catch people when they're studying or working or doing something from which they might need a little break. A little zap of inspiration. Most of the content I share on freeCodeCamp's IG account is being re-shared, so it's content someone else has created and posted.</p>
<p>I do this, in part, to show the global nature of the freeCodeCamp community. Many of the images I share feature developers and new coders who have used or are using the freeCodeCamp curriculum to learn to code. And people are doing that everywhere, so I want our Instagram feed to reflect that.</p>
<p>So throughout the week, around lunchtime (Pacific Time), I share photos of people coding, photos of people's setups, and photos of people learning to code. That way, when a person scrolling through their feed sees something that freeCodeCamp has shared, they hopefully receive a jolt of positivity, inclusivity, support, and inspiration.</p>
<h3 id="heading-focus-on-daytime">Focus on daytime</h3>
<p>As an additional note, I do try to share content when a large part of the world is awake. </p>
<p>Of course, not everyone will be bright-eyed and bushy-tailed (as my mom says) when I post, but the goal is to give as many people as possible an opportunity to see the image before the world of IG moves on and floods people's feeds with too many more posts.</p>
<h4 id="heading-think-about-the-days-of-the-week">Think about the days of the week</h4>
<p>Lastly, I think about what people's schedules might be like. I realize that I don't have a completely typical schedule, but I admittedly use myself as a case study.</p>
<p>I generally work Monday-Friday, and spend my weekends focusing on other things. Sometimes something work-related requires my attention on a Saturday or Sunday, but I try to stick to a regular schedule.</p>
<p>When I start the week on Monday, my inboxes are quite full, various repeating tasks demand my attention, and I have a meeting or two. Tuesday is often much the same.</p>
<p>By Wednesday, I'm pretty much caught up and can work on larger projects or other tasks that aren't so time-sensitive. </p>
<p>Thursdays and Fridays are also more free-form and I often have time to write articles for freeCodeCamp's publication and catch up on backlogs.</p>
<p>All this being said, I'll generally share images on Tuesdays or Wednesdays, and then again on Thursdays or Fridays. It fits in nicely with my work schedule, and I imagine that other people find time on those days to check IG once or twice.</p>
<p>Turns out that these times are fairly ideal – people seem to use Instagram a lot on Wednesdays and Fridays (in the tech sphere, especially), and lunchtime is a popular time for perusing. </p>
<p>I check in on each post throughout the day after I post, and then a day or so later, to see how much engagement it's gotten. If it has over 1000 likes and at least 5-10 comments, I know it's done quite well.</p>
<h3 id="heading-ok-so-when-should-you-not-post-to-instagram">Ok, so when should you NOT post to Instagram?</h3>
<p>I've been discussing how I strategize and figure out when I <strong>should</strong> post to Instagram. But how do you determine when you <strong>shouldn't</strong>?</p>
<p>Well, I did some research, and the general consensus is that Sundays are the worst time. Fewer people use the app and share during that time, which makes sense if you think about it. </p>
<p>In my house, Sundays are often used to get done everything you didn't do during the week. Or, barring that, to decompress and rejuvenate before starting anew. I don't spend a lot of time on social media on the weekends in general, and sometimes I'm just tapped out on screens by the time Saturday and Sunday roll around.</p>
<p>Other than Sundays, there doesn't seem to be one day that, across the board, is bad for Instagram views and engagement. This is where you'll need to do some research specific to your situation.</p>
<h2 id="heading-figure-out-your-own-ideal-posting-times">Figure out your own ideal posting times</h2>
<p>You can also go through this mental process – thinking about your audience's potential schedules, cross-referencing with your own, and so on. It might take some trial and error, but keep track of the results and you'll be able to hone your strategy.</p>
<p>But perhaps you know that most of your audience is in a certain geographical area. Then you should do some research on when people use Instagram in your region, or country, and base your posting schedule off that (as it makes sense for you or your brand).</p>
<p>Here are some generalizations to think about as you conduct your research and figure out a posting schedule (again, based on the tech world):</p>
<ul>
<li>Weekdays tend to bring about higher engagement</li>
<li>Sometimes you can catch people when they first wake up, so early morning can work</li>
<li>Lunch time is pretty reliable, as many people check/browse their phones as they eat</li>
<li>Later in the workday is also decent, as people get tired of work/whatever they've been doing all day and need a break</li>
<li>Sundays tend to be relatively quiet in IG land</li>
</ul>
<p>Do you have data that you've gathered about the best times to post to Instagram? If you share it with us, we might be able to include it in this article :) Just <a target="_blank" href="https://twitter.com/abbeyrenn">reach out on Twitter</a>.</p>
<p>Good luck reaching as many people as you can with your Instagram content!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Grow Your Audience and Share Your Content with the World ]]>
                </title>
                <description>
                    <![CDATA[ Building quality content can be a really rewarding task. But for those just starting out or those who don't yet have a large audience, that content can easily get buried amongst the other million tweets on Twitter. How can we expand our reach and hel... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-grow-your-audience-and-share-your-content-with-the-world/</link>
                <guid isPermaLink="false">66b8e35f684cb75ad7f76d1e</guid>
                
                    <category>
                        <![CDATA[ blog ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Blogger ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Blogging ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ write ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing tips ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 11 Jun 2020 14:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/06/grow-audience.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Building quality content can be a really rewarding task. But for those just starting out or those who don't yet have a large audience, that content can easily get buried amongst the other million tweets on Twitter. How can we expand our reach and help our content impact more people?</p>
<ul>
<li><a class="post-section-overview" href="#heading-creating-our-content-for-the-masses">Creating our content for the masses</a></li>
<li><a class="post-section-overview" href="#heading-what-do-i-mean-by-building-an-audience">What do I mean by building an audience?</a></li>
<li><a class="post-section-overview" href="#heading-leveraging-larger-platforms-and-publications">Leveraging larger platforms and publications</a></li>
<li><a class="post-section-overview" href="#heading-syndicating-with-other-platforms">Syndicating with other platforms</a></li>
<li><a class="post-section-overview" href="#heading-contributing-to-other-publications">Contributing to other publications</a></li>
<li><a class="post-section-overview" href="#heading-sharing-on-content-curation-platforms">Sharing on content curation platforms</a></li>
<li><a class="post-section-overview" href="#heading-other-notable-places">Other notable places</a></li>
</ul>
<h2 id="heading-creating-our-content-for-the-masses">Creating our content for the masses</h2>
<p>Every content creator has been there – you just wrote an article that you're super excited about and think it's going to be a massive hit. But you quickly find that overnight success never came when you wake up hoping to find thousands of likes on the tweet only to find none.</p>
<p>But that might not have anything to do with your article. It could absolutely be groundbreaking, but unfortunately there's not many people around to see it.</p>
<p>Social networks don't tend to prioritize their feeds based on how good your article is, but how much interaction and engagement that post received. While that kind of makes sense, that doesn't play well for people just starting out.</p>
<p>So how do we expand that reach? While the obvious route is to buy your way to the top with ads, I'm going to focus on more natural ways we can build our audience.</p>
<h2 id="heading-what-do-i-mean-by-building-an-audience">What do I mean by building an audience?</h2>
<p>Your favorite web developers or social media influencers didn't start with 100,000 followers – most of them worked really hard to get where they are.  That process is what building an audience is all about.</p>
<p>By creating content, you're working to find others who enjoy your take or get inspired by it. Ideally, those same people will follow you on their favorite platform with the hope that your next piece will inspire them just the same.</p>
<p>Your audience is those people who followed you or are actively engaging with the content you create. The ones who are supporting you by giving a thumbs up to your new video. The ones who subscribe to <a target="_blank" href="https://www.colbyfayock.com/newsletter/">your newsletter</a> because they're eager to see the awesome work you did that week.</p>
<p>By working hard on your content, being consistent, and <a target="_blank" href="https://www.colbyfayock.com/2020/05/how-to-write-more-effectively-and-develop-your-unique-style/">finding your voice</a>, you'll naturally build that audience. But to build that audience, people first need to see it. So how can we get it in front of people?</p>
<h2 id="heading-leveraging-larger-platforms-and-publications">Leveraging larger platforms and publications</h2>
<p>While your new blog might not have anyone subscribed to your RSS feed, there are platforms out there with large audiences that are actively looking for more authors.</p>
<p>By leveraging these audiences, you're helping to get your foot in the door. While you might need to give up a little bit of ownership of the article by writing it somewhere that's not your own blog, you're providing a means for more people to read your content and find out who you are.</p>
<p>This process can take many forms, but I'm going to focus on a few things:</p>
<ul>
<li>Syndicating with other platforms</li>
<li>Contributing to other publications</li>
<li>Sharing on content curation platforms</li>
</ul>
<h2 id="heading-syndicating-with-other-platforms">Syndicating with other platforms</h2>
<p>Syndicating your content can be one of the more effective means of getting access to a larger network while holding on to a lot of the benefits of hosting your own content.</p>
<p>Not all platforms are the same, but most of the ones I'm going to go over allow you to provide a <a target="_blank" href="https://moz.com/learn/seo/canonicalization">canonical link</a> to your own website. What this does is allow you to publish your work on different platforms all while the "SEO juice" ultimately flows back to your own blog.</p>
<p>While it's important from an SEO perspective, it's also generally a good way to keep your content hosted on your own website where you know you'll maintain it for the foreseeable future. If one of those platforms ends up closing down, you still have all of your content safe at home.</p>
<p>So what are some platforms that we can syndicate with and how can you set it up?</p>
<h3 id="heading-devto">Dev.to</h3>
<p><a target="_blank" href="https://dev.to/">Dev.to</a> is the choice platform for developers who want to share their knowledge and open up conversation to the larger tech community. They provide an incredibly welcoming and safe space where developers experienced and new can publish their work.</p>
<p>The great part about it is that everyone seems to get a bit of a fair chance at getting their work out to the world. While they have similar features to other networks where you can follow your favorite authors, newer authors still show up in the content feed giving you a chance to be seen.</p>
<p>To syndicate on dev.to, you'll want to set up the canonical link in the post configuration. When editing the content, you'll want to look for the settings icon, where you'll then be provided with an input where you can add the original URL for your post.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/devto-post-canonical-url.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Adding a canonical URL to a dev.to post</em></p>
<h3 id="heading-medium">Medium</h3>
<p><a target="_blank" href="https://medium.com/">Medium</a> has suffered a lot of criticism lately due to its aggressive tactics and monetization strategies, but it's still an effective platform for newcomers who don't have an audience to get in front of.</p>
<p>Medium's large network of users and content curation makes it a great platform for expanding your reach. But it doesn't stop at posting there.</p>
<p>To be effective with your Medium posts, you want to look to get published with an existing Medium publication. <a target="_blank" href="https://medium.com/better-programming">Better Programming</a> is one of the larger developer publications that are always <a target="_blank" href="https://medium.com/better-programming/write-for-us-5c4bcba59397">looking for new authors</a> to contribute.</p>
<p>Submitting to a Medium publication will help you take advantage of not only Medium's network, but that publication's network that gives you a better chance of getting selected by Medium's curation team and landing in someone's newsletter inbox.</p>
<p>Adding a canonical link to your Medium posts is a bit trickier though. To do this, you must "import" your story rather than copy and pasting it in. The good news, is Medium also tries to import all of the content, ideally making it a bit easier to add (remember to review all of the formatting!).</p>
<p>On your Stories page, you can find the Import button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/medium-import-story.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Importing a story on Medium</em></p>
<p>Once it's imported, you won't really be able to see much, but once you preview the page, you can view the source and find the canonical link added.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/medium-post-source-canonical-link.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Canonical link in Medium post source</em></p>
<h2 id="heading-contributing-to-other-publications">Contributing to other publications</h2>
<p>While you might have to give up ownership of your content, writing for other publications or writing as a "guest post" is a great way to get started and gain some ground where you might not have had any before.</p>
<p>Depending on the publisher, you might not ever get the opportunity to post it on your own website, but you're trading that for the privilege to get your work out to potentially millions of people instead of the 10 unique visitors from the month of May.</p>
<p>This can even open up the door to more opportunities. This helps give your name recognition and authority that can help in your job search or simply another chance to write for the same publisher or a different bigger one.</p>
<p>The good news – is there's an endless supply of big name publishers that you can submit your work to. Here are a few you can get started with:</p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/developer-news-style-guide/">freeCodeCamp News</a></li>
<li><a target="_blank" href="https://www.smashingmagazine.com/write-for-us/">Smashing Magazine</a></li>
<li><a target="_blank" href="https://css-tricks.com/guest-posting/">CSS-Tricks</a></li>
<li><a target="_blank" href="https://sitepoint.typeform.com/to/DMmYfn">Sitepoint</a></li>
<li><a target="_blank" href="https://envato.formstack.com/forms/create_a_tutorial?Source=&amp;Medium=">Tuts+</a></li>
<li><a target="_blank" href="https://www.webdesignerdepot.com/write-for-us/">Web Designer Depot</a></li>
<li><a target="_blank" href="https://dzone.com/pages/contribute">DZone</a></li>
<li><a target="_blank" href="https://www.pluralsight.com/guides">Pluralsight Guides</a> (See "Teach" in footer)</li>
</ul>
<p>Each of these publications have different processes of getting published. So be patient and keep working hard at your content.</p>
<p><em>Note: know of another publisher that offers writing opportunities? <a target="_blank" href="https://twitter.com/colbyfayock">Let me know</a> and I'll add them above!</em></p>
<h2 id="heading-sharing-on-content-curation-platforms">Sharing on content curation platforms</h2>
<p>It would be great if we all had a massive Twitter following where we could post about our new blog, but that's typically not the case. So while you should absolutely set up a <a target="_blank" href="https://twitter.com/colbyfayock">social media profile</a> and get your content out there, I'll focus on other platforms here.</p>
<h3 id="heading-reddit">Reddit</h3>
<p>Though there are certainly rules about self-promotion depending on the subreddit, <a target="_blank" href="https://www.reddit.com/">Reddit's</a> a massive community of real people who are curious and eager to learn about something new.</p>
<p>Learn about the different tech or <a target="_blank" href="https://www.reddit.com/r/webdev/">webdev</a> subreddits that are out there. Start getting involved with other people's posts. Develop a relationship with the people there and show why your content has value.</p>
<h3 id="heading-hacker-news">Hacker News</h3>
<p><a target="_blank" href="https://news.ycombinator.com/">Hacker News</a> is tough. It's hard to get noticed and on the front page. And even when you get on the front page, there's a good chance you'll get a lot of criticism you never expected to get.</p>
<p>But if you can have thick skin and learn to take the heat should you get noticed, Hacker News can be an incredible way to broadcast to the world. People have turned into <a target="_blank" href="https://www.youtube.com/watch?v=ifq3xhik8tE">overnight successes</a> by ending up on the front page of Hacker News whether they're the ones who posted it there or not.</p>
<h3 id="heading-more-platforms">More platforms</h3>
<p>While those are two of the big ones, there are a ton more. Here are a few more to get you started:</p>
<ul>
<li><a target="_blank" href="https://www.echojs.com/">Echo JS</a></li>
<li><a target="_blank" href="http://www.rubyflow.com/">RubyFlow</a></li>
<li><a target="_blank" href="https://golangnews.com/">Golang News</a></li>
<li><a target="_blank" href="https://www.webdesignernews.com/">Web Designer News</a></li>
</ul>
<h2 id="heading-other-notable-places">Other notable places</h2>
<h3 id="heading-chat-based-communities">Chat-based Communities</h3>
<p>There are a ton of <a target="_blank" href="https://www.freecodecamp.org/news/freecodecamp-discord-chat-room-server/">communities</a> using platforms like <a target="_blank" href="https://slack.com/">Slack</a> or <a target="_blank" href="https://discord.com/">Discord</a> that are <a target="_blank" href="https://www.100daysofcode.com/resources/">incredibly supportive</a> in helping each other grow. While you shouldn't simply spam your content, try to start a conversation around it. Talk about why the topic is important to you or how your tutorial can help others in their code journey.</p>
<h3 id="heading-newsletters">Newsletters</h3>
<p>This is something a lot of people regret not starting earlier – myself included. It's not too much effort to start a newsletter <a target="_blank" href="https://app.convertkit.com/referrals/l/36ce3fce-f231-48b5-b878-e622d0265c3f">with a platform that has a free tier</a> and keep it in your back pocket until you see some growth. No one's going to judge you for waiting a few months to put out content, but once you begin to grow your audience, they'll be excited to see all of your new work.</p>
<h3 id="heading-other-peoples-newsletters">Other people's newsletters</h3>
<p>You don't have to have your own newsletter to get into someone's inbox, there are already a ton of newsletter curators doing a lot of hard work to find great content around the web, but if they don't see it, how can they include it?</p>
<p>Most newsletter publications love to receive submissions. This helps their publication grow and include content from people who might not have a good opportunity on their own.</p>
<p>While you can Google around and find a newsletter that makes sense for you, here are a few that I follow along with that I know would love to see your work:</p>
<ul>
<li>All <a target="_blank" href="https://cooperpress.com/publications/">Cooperpress</a> Publications including <a target="_blank" href="http://javascriptweekly.com/">Javascript Weekly</a>, <a target="_blank" href="https://serverless.email/">Serverless Status</a>, and <a target="_blank" href="https://cooperpress.com/publications/">a bunch more</a></li>
<li><a target="_blank" href="https://webtoolsweekly.com/">Web Tools Weekly</a></li>
<li><a target="_blank" href="https://css-weekly.com/">CSS Weekly</a></li>
</ul>
<h2 id="heading-building-your-brand">Building your "brand"</h2>
<p>"Brand" is a funny word and can come sometimes come with negative connotations. But really as an author, your goal should be to build a presence that you carry with you consistently through all of your different outlets of work.</p>
<p>For instance, when possible, try to always use the same username when creating author profiles. You can find me mostly anywhere at <a target="_blank" href="https://twitter.com/colbyfayock">@colbyfayock</a> – it makes it easy for people to find me on a new network.</p>
<p>Also try to use the same picture. While it's definitely fun to customize your different profiles depending on who's there, the benefit of using the same picture is people will come to recognize you by that picture. They'll instantly be able to remember they saw your blog post when they see your tweet come through their feed.</p>
<h2 id="heading-be-patient-your-time-will-come">Be patient, your time will come</h2>
<p>You're not going to find an overnight success without spending a lot of money, so be patient. Content development is hard, it takes time to both build an audience and figure out your voice.</p>
<p>But chances are, if this is your first article you've ever written, maybe that first publisher you sent it to wasn't interested in it.</p>
<p><strong>THAT'S OKAY!</strong> Don't give up! Send it to another publisher and try the original one for your next article. When I first started out, it took a few articles before I got accepted as an author to freeCodeCamp's Medium publication.</p>
<p>The more you write, the more <a target="_blank" href="https://www.colbyfayock.com/2020/05/how-to-write-more-effectively-and-develop-your-unique-style/">you'll learn about what's effective</a>. It's not a sprint – be patient and just keep up the hard work.</p>
<h2 id="heading-overcoming-the-fear-of-sharing-your-work">Overcoming the fear of sharing your work</h2>
<p>Most of these things aren't easy to do. The idea that you might have to face critical feedback of your work is absolutely scary!</p>
<p>But <a target="_blank" href="https://www.colbyfayock.com/2020/04/overcoming-your-fear-of-writing-and-how-you-can-find-motivation/">overcoming this fear</a> is an important step of the process. I personally struggled with this when I began writing, but the more you put yourself our there, the less scary it becomes and you'll quickly notice there aren't as many bad people out there looking to say bad things about your work.</p>
<p>Instead, you're opening yourself up to an opportunity to learn and grow. Though not everyone's the same, the tech community can be overwhelmingly welcoming and supportive. The more you share and put yourself out there, the more receptive people will be to wanting to hear what you have to say.</p>
<h2 id="heading-how-do-you-share-your-work">How do you share your work?</h2>
<p><a target="_blank" href="https://twitter.com/colbyfayock">Let me know on Twitter!</a></p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use QR Codes for Effective Marketing and Outreach ]]>
                </title>
                <description>
                    <![CDATA[ By Black Raven Efficient means doing things right. Effective is about doing the right things. I am an advocate for efficiency and effectiveness. There must be a more efficient way to share contact details other than manually typing details into my mo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/making-use-of-qr-codes-for-effective-marketing-and-reach/</link>
                <guid isPermaLink="false">66d45dd951f567b42d9f8439</guid>
                
                    <category>
                        <![CDATA[ industry 4.0 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ business strategy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Digital Transformation ]]>
                    </category>
                
                    <category>
                        <![CDATA[ qr code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 27 Mar 2020 21:53:05 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/Screenshot_1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Black Raven</p>
<p><strong>Efficient</strong> means doing things right. <strong>Effective</strong> is about doing the right things.</p>
<p>I am an advocate for efficiency and effectiveness. There must be a more efficient way to share contact details other than manually typing details into my mobile phone when I meet a new business contact.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/image-187.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Name cards with QR Code</em></p>
<h1 id="heading-add-a-new-contact-on-your-mobile-phone-by-scanning-a-qr-code">Add a new contact on your mobile phone by scanning a QR Code</h1>
<p>When Google launched the <strong>Google Contacts</strong> app in 2017, users could share contact information with QR codes. To add a new contact, simply scan a person's QR code to save their contact information on your phone.</p>
<p>I personally think that such an efficient way to save contact details should be implemented on business cards and marketing brochures.</p>
<p>The trend did not seem to take off, maybe because people did not know how to create the QR Codes in the first place.</p>
<h2 id="heading-create-a-list-of-customized-contacts-qr-codes">Create a list of customized contacts QR Codes</h2>
<p>I made use of a <strong>Google Sheets</strong> template to generate the contact QR codes.</p>
<p>Open the template (<a target="_blank" href="https://docs.google.com/spreadsheets/d/1jJdBgqQvYuQM-Bo0An2W7CUS5c4EQKjyRkHYZln3Wr0/edit?usp=sharing">template link here</a>) in another tab. Then click on “File -&gt; Make a copy” to save it to your own "My Drive" (Google Drive account).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_grwBMqbnT87naQki630AtA.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Google Sheets template to generate the contact QR codes</em></p>
<p><em>Note that this Google Sheets template seems to only work on desktops, not on mobile phones.</em></p>
<p>You can use this template by updating <strong>First Name</strong>, <strong>Last Name</strong>, <strong>Mobile Phone</strong> number and <strong>Email address</strong>. The contact QR Code will be generated in the next column based on these 4 fields.</p>
<pre><code class="lang-excel">=image(“htt<span class="hljs-symbol">ps:</span>//chart.googleapis.com/chart?chs=<span class="hljs-number">150</span>x150&amp;cht=qr&amp;chl=BEG<span class="hljs-symbol">IN:VC</span>ARD%<span class="hljs-number">0</span><span class="hljs-symbol">AN:</span><span class="hljs-string">" &amp; A3 &amp; “%20” &amp; B3 &amp; “%0ATEL;CELL:” &amp; C3 &amp; “%0AEMAIL:” &amp; D3 &amp; “%0AEND:VCARD”)</span>
</code></pre>
<p>Then another person can scan the generated QR code to add the contact details to their phone.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_fZzgOk0-Mc-zTzc3lCuGzA.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>New iOS and Android versions are equipped with QR Code scanner in camera mode</em></p>
<p>After scanning, simply click on “Save” to add the information to Contacts.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_tkEkTu94w7CBhVhMat1aCA.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Scan QR code and save contact</em></p>
<p>This contact list QR Code template will be useful when you meet new people in a team or at a tradeshow and want to gather everyone’s contact details.</p>
<h2 id="heading-to-create-a-single-customized-contacts-qr-code">To create a single customized contacts QR Code</h2>
<p>Go to <a target="_blank" href="https://www.qr-code-generator.com/">QR Code Generator</a>, and select ‘vCard’ where you can customize various fields. Remember to test it out, as some fields do not allow special characters like "," or "@".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_q5Yxh3Yrq_XSweBRBOLKtg.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://www.qr-code-generator.com/"><em>https://www.qr-code-generator.com/</em></a></p>
<p>You can also add this QR code to your business cards and marketing brochures. Customers and business people can then easily scan and save your contact details to their mobile phones.</p>
<h1 id="heading-go-to-a-website-by-scanning-a-qr-code">Go to a website by scanning a QR Code</h1>
<p>Newer versions of iPhone and Android phones are equipped with QR code scanning in the camera app. Simply turn on the camera and hover over the QR Code to scan it. Then you can click the popup to go to the web address URL embedded.</p>
<p>For example, try to scan this QR code:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_8Rk_gKSDJVfafeWiullsWw.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Web URL embedded</em> <a target="_blank" href="https://www.qrcode-monkey.com"><em>https://www.qrcode-monkey.com</em></a></p>
<h2 id="heading-to-create-your-own-customized-qr-codes">To create your own customized QR Codes</h2>
<p>I usually go to <a target="_blank" href="https://www.qrcode-monkey.com/">QR Code Monkey</a> to create a customized QR codes. It is friendly and <strong>free to use</strong>, and there are more options if you want to:</p>
<ul>
<li><p>add a logo image in the middle (this can be your <strong>company logo</strong>!)</p>
</li>
<li><p>set a color (to follow your <strong>corporate identity</strong>)</p>
</li>
<li><p>use some other other customized design</p>
</li>
</ul>
<p>So now you can easily create marketing materials with QR code of your company's website.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/1_-_nSVy6PxwJ9XKzU1PZ9iA.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Marketing materials with QR codes</em></p>
<hr>
<h2 id="heading-qr-codes-for-name-cards-and-marketing-brochures">QR Codes for name cards and marketing brochures</h2>
<p>I hope the tips above are useful for getting things done more efficiently and effectively. All the best to your marketing and outreach efforts!</p>
<p>Thank you for reading!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Open Graph and how can I use it for my website? ]]>
                </title>
                <description>
                    <![CDATA[ It can take a lot of time to build content and maintain a website. How can we make sure our content stands out when getting shared on social feeds around the internet? What is Open Graph? Why do I need it? What happens if I don’t have it? Starting w... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-open-graph-and-how-can-i-use-it-for-my-website/</link>
                <guid isPermaLink="false">66b8e39ac9bc6d235bb126b4</guid>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Digital Marketing  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open graph ]]>
                    </category>
                
                    <category>
                        <![CDATA[ social media ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 26 Mar 2020 14:51:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/open-graph.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>It can take a lot of time to build content and maintain a website. How can we make sure our content stands out when getting shared on social feeds around the internet?</p>
<ul>
<li><a class="post-section-overview" href="#heading-what-is-open-graph">What is Open Graph?</a></li>
<li><a class="post-section-overview" href="#heading-why-do-i-need-it">Why do I need it?</a></li>
<li><a class="post-section-overview" href="#heading-what-happens-if-i-dont-have-it">What happens if I don’t have it?</a></li>
<li><a class="post-section-overview" href="#heading-starting-with-the-basics-of-open-graph">Starting with the basics of open graph</a></li>
<li><a class="post-section-overview" href="#heading-website-open-graph-type">Website open graph type</a></li>
<li><a class="post-section-overview" href="#heading-some-other-open-graph-tags-that-are-worth-adding">Some other open graph tags that are worth adding</a></li>
<li><a class="post-section-overview" href="#heading-twitter-and-other-social-media-networks-using-open-graph">Twitter and other social media networks using open graph</a></li>
<li><a class="post-section-overview" href="#heading-images-in-open-graph">Images in open graph</a></li>
<li><a class="post-section-overview" href="#heading-testing-your-open-graph-tags">Testing your open graph tags</a></li>
<li><a class="post-section-overview" href="#heading-can-i-get-an-example">Can I get an example?</a></li>
</ul>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/QwEQKM4YRnU" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-what-is-open-graph">What is Open Graph?</h2>
<p><a target="_blank" href="https://ogp.me/">Open Graph</a> is an internet protocol that was originally created by <a target="_blank" href="http://fbdevwiki.com/wiki/Open_Graph_protocol">Facebook</a> to standardize the use of metadata within a webpage to represent the content of a page.</p>
<p>Within it, you can provide details as simple as the title of a page or as specific as the duration of a video. These pieces all fit together to form a representation of each individual page of the internet.</p>
<h2 id="heading-why-do-i-need-it">Why do I need it?</h2>
<p>Content on the internet is typically created with at least one goal in mind -- to share it with others. This might not necessarily matter if you’re just sending it to one friend, but if you want to share it or want it to be shared on any social network or app that utilizes rich previews, you’ll want that preview to be as effective as possible.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/colbyfayock/status/1237455806230077441"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>This will help encourage people to check out your content and inevitably click through to your content.</p>
<h2 id="heading-what-happens-if-i-dont-have-it">What happens if I don’t have it?</h2>
<p>Most social networks by default will try to make their best effort in creating a preview of your content. This more often than not doesn’t go so well.</p>
<p>Take for instance my website <a target="_blank" href="https://colbyfayock.com">colbyfayock.com</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/simple-twitter-card.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a simple Twitter Card</em></p>
<p>It correctly grabs the title of my page and the description, but it's not the most enticing looking tweet in a feed.</p>
<p>Contrast that to the preview of a single post and we see a different story.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/large-image-twitter-card.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a Twitter Card with a large image</em></p>
<p>So what happens if you don’t have open graph tags? Nothing bad will happen, but you won’t be taking advantage of some of the features that help make your content stand out next to the loads of other content getting posted on the internet.</p>
<h2 id="heading-starting-with-the-basics-of-open-graph">Starting with the basics of open graph</h2>
<p>The four basic open graph tags that are required for each page are <code>og:title</code>, <code>og:type</code>, <code>og:image</code>, and <code>og:url</code>. These tags should be unique for each page you serve, meaning your homepage’s tags should all be different from your blog post article’s page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/open-graph-twitter-card.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Anatomy of a Twitter Card using Open Graph tags</em></p>
<p>While it should be pretty straightforward, here’s a breakdown of what each of the tags mean:</p>
<ul>
<li><code>og:title</code>: The title of your page. This is typically the same as your webpage's <code>&lt;title&gt;</code> tag unless you’d like to present it differently.</li>
<li><code>og:type</code>: The “type” of website you have. I’ll explain more in the next section, though a generic “type” is “website”.</li>
<li><code>og:image</code>: This should be a link to an image that you’d like to represent your content. It should be a high resolution image that the social networks will use in their feeds.</li>
<li><code>og:url</code>: This should be the URL of the current page.</li>
</ul>
<p>When placing a tag on your website, you should place it in the <code>&lt;head&gt;</code> along with any other metadata. The tag used will be a <code>&lt;meta&gt;</code> tag and should look like this pattern:</p>
<pre><code>&lt;meta property=“[NAME]” content=“[VALUE]” /&gt;
</code></pre><p>So if I were to create a set four basic open graph tags for my website, <a target="_blank" href="https://colbyfayock.com">colbyfayock.com</a>, it might look like:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:title"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"Colby Fayock - A UX Designer <span class="hljs-symbol">&amp;amp;</span> Front-end Developer Blog"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:type"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"website"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:image"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"/static/website-social-card-44070c4a901df708aa1563ac4bbe595a.jpg"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:url"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://www.colbyfayock.com"</span> /&gt;</span>
</code></pre>
<h2 id="heading-website-open-graph-type">Website open graph type</h2>
<p>The open graph protocol has a few variations of the “type” of website it supports. This includes types like website, article, or video.</p>
<p>When setting up your open graph tags, you’ll want to have an idea of which type will make more sense for your website. If your page is focused on a single video, it probably makes sense to use the type “video”. If it’s a general website with no specific vertical, you would probably just want to use the type “website”.</p>
<p>Similar to the others, this is unique for each page. So if your homepage is "website,” you could always have another page of type “video”.</p>
<p>So if I were to create an open graph type for my website, it might look like the following on my homepage:</p>
<pre><code class="lang-html"><span class="hljs-comment">&lt;!-- colbyfayock.com --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">“og:type”</span> <span class="hljs-attr">content</span>=<span class="hljs-string">“profile”</span> /&gt;</span>
</code></pre>
<p>When navigating to a blog post, it would look like:</p>
<pre><code class="lang-html"><span class="hljs-comment">&lt;!-- https://www.colbyfayock.com/2020/03/anyone-can-map-inspiration-and-an-introduction-to-the-world-of-mapping/ --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">“og:type”</span> <span class="hljs-attr">content</span>=<span class="hljs-string">“article”</span> /&gt;</span>
</code></pre>
<p>You can find the most common open graph website types on the open graph webpage: <a target="_blank" href="https://ogp.me/#types">https://ogp.me/#types</a></p>
<h2 id="heading-some-other-open-graph-tags-that-are-worth-adding">Some other open graph tags that are worth adding</h2>
<p>Though you’ll generally be okay with the basics, here are a few more that would be worth adding:</p>
<ul>
<li><code>og:description</code>: A description of your page. Similarly to <code>og:title</code>, this may be the same as your website’s <code>&lt;meta type=“description”&gt;</code> tag, unless you’d like to present it differently.</li>
<li><code>og:locale</code>: If you want to localize your tags, it would probably make sense to include locale. The format is <code>language_TERRITORY</code>, where the default is <code>en_US</code>.</li>
<li><code>og:site_name</code>: The name of the overall website your content is on. If you're on a blog post page, you might have a <code>title</code> using that blog post’s title, where the <code>site_name</code> would be the name of your blog.</li>
<li><code>og:video</code>: Have a video that supports your content? Here’s a chance to include it. Add a link to your video using this tag.</li>
</ul>
<p>These tags will be added in the same pattern as before:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">“[NAME]”</span> <span class="hljs-attr">content</span>=<span class="hljs-string">“[VALUE]”</span> /&gt;</span>
</code></pre>
<h2 id="heading-twitter-and-other-social-media-networks-using-open-graph">Twitter and other social media networks using open graph</h2>
<p>Most of the social networks adhere to the basics of open graph standards, but a few of them also include their own extension to help customize the look and feel within their ecosystem.</p>
<p>Twitter for instance, allows you to specify <code>twitter:card</code>, which is the type of “card” you can use when they show your website. At this time, their card types include:</p>
<ul>
<li>summary</li>
<li>summary_large_image</li>
<li>app</li>
<li>player</li>
</ul>
<p>This will help you choose how your links are used in their feed. If you choose <code>summary_large_image</code> for instance, Twitter will show your links with big high resolution images as long as you’re providing it in the in the <code>og:image</code> tag.</p>
<p>Here are some quick references to the documentation of how to use open graph tags with some of the social media sites:</p>
<ul>
<li>Twitter: <a target="_blank" href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started">https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started</a></li>
<li>Facebook: <a target="_blank" href="https://developers.facebook.com/docs/sharing/webmasters/">https://developers.facebook.com/docs/sharing/webmasters/</a></li>
<li>Pinterest: <a target="_blank" href="https://developers.pinterest.com/docs/rich-pins/overview/">https://developers.pinterest.com/docs/rich-pins/overview/</a>?</li>
<li>LinkedIn: <a target="_blank" href="https://www.linkedin.com/help/linkedin/answer/46687/making-your-website-shareable-on-linkedin?lang=en">https://www.linkedin.com/help/linkedin/answer/46687/making-your-website-shareable-on-linkedin?lang=en</a></li>
</ul>
<h2 id="heading-images-in-open-graph">Images in open graph</h2>
<p>While adding your image as <code>og:image</code> should often be enough, sometimes it can be challenging to get your image to show up correctly. If you seem to be running into trouble, the open graph standard includes a few image tags such as <code>og:image:url</code> vs <code>og:image:secure_url</code> as well as the <code>og:image:width</code> and <code>og:image:height</code>.</p>
<p>Try to make sure you’re following all of the <a target="_blank" href="https://ogp.me/#structured">notes and examples in the open graph documentation</a>. Additionally, some of the social networks have image requirements. <a target="_blank" href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/summary-card-with-large-image">Twitter for instance requires</a> a ratio of 2:1 with a minimum size of 300x157 and a maximum size of 4096x4096 that’s under 5MB and of JPG, PNG, WEBP or GIF format.</p>
<p>If you’re stuck, test your tags using the social media network’s tools to see if you can find the issue.</p>
<h2 id="heading-testing-your-open-graph-tags">Testing your open graph tags</h2>
<p>Luckily, our favorite social networks also provide tools to help us debug our tags. Once you make sure that your tags are actually showing up in the source code of your website, you’ll be able to preview how your website will look in the feed.</p>
<ul>
<li>Twitter: <a target="_blank" href="https://cards-dev.twitter.com/validator">https://cards-dev.twitter.com/validator</a></li>
<li>Facebook: <a target="_blank" href="https://developers.facebook.com/tools/debug/">https://developers.facebook.com/tools/debug/</a></li>
<li>Pinterest: <a target="_blank" href="https://developers.pinterest.com/tools/url-debugger/">https://developers.pinterest.com/tools/url-debugger/</a></li>
</ul>
<h2 id="heading-digging-further-into-open-graph-tags">Digging further into open graph tags</h2>
<p>While most of these should cover a basic website, there are a few more tags that might help you and your business’s discoverability throughout social networks. </p>
<p>If you’re interested in diving in more, <a target="_blank" href="https://ogp.me/">the documentation</a> does a great job at providing a list of all of the available tags for you to use.</p>
<p><a target="_blank" href="https://ogp.me/">https://ogp.me/</a></p>
<h2 id="heading-can-i-get-an-example">Can I get an example?</h2>
<p>If you’re simply looking for an example to get started, here’s what you should end up with when setting up your tags for <a target="_blank" href="https://www.colbyfayock.com/2020/03/anyone-can-map-inspiration-and-an-introduction-to-the-world-of-mapping/">a blog post</a>:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:site_name"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"Colby Fayock"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">“og:title”</span> <span class="hljs-attr">content</span>=<span class="hljs-string">“Anyone</span> <span class="hljs-attr">Can</span> <span class="hljs-attr">Map</span>! <span class="hljs-attr">Inspiration</span> <span class="hljs-attr">and</span> <span class="hljs-attr">an</span> <span class="hljs-attr">introduction</span> <span class="hljs-attr">to</span> <span class="hljs-attr">the</span> <span class="hljs-attr">world</span> <span class="hljs-attr">of</span> <span class="hljs-attr">mapping</span> <span class="hljs-attr">-</span> <span class="hljs-attr">Colby</span> <span class="hljs-attr">Fayock</span>" /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:description"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"Chef Gusteau was a visionary who created food experiences for the world to enjoy. How can we take his lessons and apply them to the world of…"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:url"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://www.colbyfayock.com/2020/03/anyone-can-map-inspiration-and-an-introduction-to-the-world-of-mapping/"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:type"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"article"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"article:publisher"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://www.colbyfayock.com"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"article:section"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"Coding"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"article:tag"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"Coding"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:image"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://res.cloudinary.com/fay/image/upload/w_1280,h_640,c_fill,q_auto,f_auto/w_860,c_fit,co_rgb:232129,g_west,x_80,y_-60,l_text:Source%20Sans%20Pro_70_line_spacing_-10_semibold:Anyone%20Can%20Map!%20Inspiration%20and%20an%20introduction%20to%20the%20world%20of%20mapping/blog-social-card-1.1"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:image:secure_url"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://res.cloudinary.com/fay/image/upload/w_1280,h_640,c_fill,q_auto,f_auto/w_860,c_fit,co_rgb:232129,g_west,x_80,y_-60,l_text:Source%20Sans%20Pro_70_line_spacing_-10_semibold:Anyone%20Can%20Map!%20Inspiration%20and%20an%20introduction%20to%20the%20world%20of%20mapping/blog-social-card-1.1"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:image:width"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"1280"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"og:image:height"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"640"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"twitter:card"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"summary_large_image"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"twitter:image"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"https://res.cloudinary.com/fay/image/upload/w_1280,h_640,c_fill,q_auto,f_auto/w_860,c_fit,co_rgb:232129,g_west,x_80,y_-60,l_text:Source%20Sans%20Pro_70_line_spacing_-10_semibold:Anyone%20Can%20Map!%20Inspiration%20and%20an%20introduction%20to%20the%20world%20of%20mapping/blog-social-card-1.1"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">property</span>=<span class="hljs-string">"twitter:site"</span> <span class="hljs-attr">content</span>=<span class="hljs-string">"@colbyfayock"</span> /&gt;</span>
</code></pre>
<h2 id="heading-looking-for-other-ways-to-optimize-and-analyze-your-content">Looking for other ways to optimize and analyze your content?</h2>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/how-to-add-a-social-media-image-to-your-github-project/">How to Add a Social Media Image to Your Github Project Repository</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/making-sense-of-google-analytics-and-the-traffic-to-your-website/">How to Make Sense of Google Analytics and the Traffic to Your Website</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/how-to-set-up-and-track-youtube-channel-performance-with-google-analytics/">How to set up and track YouTube Channel performance with Google Analytics</a></li>
</ul>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to set up and track YouTube Channel performance with Google Analytics ]]>
                </title>
                <description>
                    <![CDATA[ Managing a YouTube channel is a lot of work. It includes content experimentation which can make or break your SEO effectiveness for your channel. How can we track our channel’s performance to see what works? Why is SEO important? How is SEO importan... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-set-up-and-track-youtube-channel-performance-with-google-analytics/</link>
                <guid isPermaLink="false">66b8e36893a17625e9eef10f</guid>
                
                    <category>
                        <![CDATA[ analytics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google Analytics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Wed, 18 Mar 2020 13:27:39 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/youtube-analytics-1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Managing a YouTube channel is a lot of work. It includes content experimentation which can make or break your SEO effectiveness for your channel. How can we track our channel’s performance to see what works?</p>
<ul>
<li><a class="post-section-overview" href="#heading-why-is-seo-important">Why is SEO important?</a></li>
<li><a class="post-section-overview" href="#heading-how-is-seo-important-to-youtube">How is SEO important to YouTube?</a></li>
<li><a class="post-section-overview" href="#heading-and-what-is-google-analytics">And what is Google Analytics?</a></li>
<li><a class="post-section-overview" href="#heading-how-do-i-connect-my-channel">How do I connect my channel?</a></li>
<li><a class="post-section-overview" href="#heading-what-will-i-be-able-to-see">What will I be able to see?</a></li>
<li><a class="post-section-overview" href="#heading-what-wont-i-be-able-to-see">What won’t I be able to see?</a></li>
<li><a class="post-section-overview" href="#heading-what-else-can-i-do-with-youtube-and-google-analytics">What else can I do with YouTube and Google Analytics?</a></li>
</ul>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/P8wv4ylc_-s" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-why-is-seo-important">Why is SEO important?</h2>
<p><a target="_blank" href="https://moz.com/learn/seo/what-is-seo">SEO, or Search Engine Optimization</a>, is the practice of writing and organizing content in a way that search engines like Google can crawl and ultimately understand what your website or YouTube channel is about.</p>
<p>Using this information, Google and others make decisions with their algorithms to determine which content is of higher quality, more relevant, and more likely to answer the question you’re looking for on their search engine in the first place. With that information, the search engines rank this content and display their results ordered by those rankings.</p>
<h2 id="heading-how-is-seo-important-to-youtube">How is SEO important to YouTube?</h2>
<p>Just like any other website, YouTube gets crawled by Google and other search engines. Additionally, YouTube has its own internal search that will take these same things into consideration when deciding how to display results on a YouTube search.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/searching-for-code-channels-on-youtube.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Searching for "code" channels on YouTube</em></p>
<p>This means, depending on how well you create your descriptions, manage your keywords, or name your videos, it could impact how well your videos rank in the results. And this can impact how many views your videos get.</p>
<p>This also applies to your channel. You have opportunities to experiment with effectiveness through the content you feature, your channel description, and the name of your channel.</p>
<h2 id="heading-and-what-is-google-analytics">And what is Google Analytics?</h2>
<p>Google Analytics is a <a target="_blank" href="https://analytics.google.com/analytics/web/">free analytics tool</a> from Google that will allow you to gain better insights into your traffic. I previously wrote about <a target="_blank" href="https://www.freecodecamp.org/news/making-sense-of-google-analytics-and-the-traffic-to-your-website/">what is Google Analytics and how you can make sense of it</a> which provides a more in depth view. So if you want to learn a little more before diving in, I highly recommend starting there.</p>
<h2 id="heading-how-do-i-connect-my-channel">How do I connect my channel?</h2>
<h3 id="heading-setting-up-a-new-tracking-code">Setting up a new tracking code</h3>
<p>To start, we’ll need a tracking code from Google Analytics. Google has some great up to date resources on how to do this, so I'm not going to try to re-explain here:</p>
<ul>
<li><a target="_blank" href="https://support.google.com/analytics/answer/1042508">Setting up a new property</a></li>
<li><a target="_blank" href="https://support.google.com/analytics/answer/1008080?hl=en">Getting your Tracking ID</a></li>
</ul>
<p>Though some say you can use your website’s property and create a filtered View, I recommend starting with a separate property. That way you don’t have to worry about any data crossover or setting up complicated filters.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-tracking-id.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Tracking ID in Google Analytics</em></p>
<p>Your tracking ID will be in the following format: <code>UA-######-#</code>. Once you have that, we're ready to go.</p>
<h3 id="heading-adding-your-tracking-code-to-youtube">Adding your tracking code to YouTube</h3>
<p>There are a few steps we have to navigate through to find where we can set up our Google Analytics account. If you want to skip to the right place, you can visit <a target="_blank" href="https://www.youtube.com/advanced_settings">youtube.com/advanced_settings</a>.</p>
<p>To take the long route, which will also help you get a little more familiar with your YouTube account, first head over to the <strong>Settings</strong> section from within your <strong>YouTube Studio</strong> page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/youtube-studio-channel-settings.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Finding Settings on your YouTube Studio dashboard</em></p>
<p>Once selected, find the <strong>Advanced channel settings</strong> link by visiting <strong>Channel</strong>, <strong>Advanced Settings</strong>, and then scrolling down to the bottom.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/youtube-advanced-channel-settings.jpg" alt="Image" width="600" height="400" loading="lazy">
<em><strong>Advanced channel settings</strong> on YouTube</em></p>
<p>Finally, scroll down to the bottom of the page again, find the <strong>Google Analytics property tracking ID</strong> field, enter the tracking ID you created, and hit save.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/youtube-advanced-channel-settings-google-analytics-property-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Setting the Google Analytics property tracking ID for your YouTube channel</em></p>
<h3 id="heading-sit-back-and-wait">Sit back and wait</h3>
<p>Google Analytics will only show your website traffic from the point it was set up and through the future. Unfortunately we can’t check out that weekend your video first went viral if you didn’t have Google Analytics set up then, but at least we’re prepared for the next time!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/friends-recline-chair.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Joey and Chandler reclining their chairs</em></p>
<p>That said, now's the time to continue working hard on your channel since you have the ability to track how that hard work is paying off as people visit your channel.</p>
<h3 id="heading-optional-setting-up-site-search">Optional: Setting up Site Search</h3>
<p>Setting up <a target="_blank" href="https://support.google.com/analytics/answer/1012264?hl=en">Google Analytic’s Site Search</a> feature gives us an easy way to separate out search usage to make it easier to gain insight into how people are searching our channel.</p>
<p>To enable Site Search, we want to go to the <strong>Admin</strong> section of our Google Analytics property and then navigate over to <strong>View Settings</strong>. Once there, under the <strong>Site Search</strong> settings at the bottom, first click the button to toggle on <strong>Site search Tracking</strong>, then type “query” into the <strong>Query parameter</strong> input.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-site-search-tracking.jpg" alt="Image" width="600" height="400" loading="lazy">
<em><strong>Site search Tracking</strong> in Google Analytics</em></p>
<p>Optionally, though recommended, you can select to strip query parameters out of your URL. This means that in your main content view, you will see all traffic as /search instead of many instances of /search?query=[keyword], which can be more cumbersome to analyze.</p>
<p><em>Note: before you set this up, it’s <a target="_blank" href="https://www.e-nor.com/blog/google-analytics/best-practices-views-google-analytics">generally recommended to have more than one view for your property</a>. I would recommend having at least 2 views, a Raw Data view and Main view. You would only apply the Site Search feature to your Main view. This will help to make sure you can always see the unfiltered Raw Data view if you want.</em></p>
<h2 id="heading-what-will-i-be-able-to-see">What will I be able to see?</h2>
<h3 id="heading-how-many-people-visited-my-channel">How many people visited my channel?</h3>
<p>The first thing we get immediately with our new data when we open up our Google Analytics property is how many people visited our site.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-home.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Analytics Home</em></p>
<p>The default here is in the past 7 days, but you can change the time range in the bottom left corner of the panel.</p>
<p>What this also provides is a quick insight into how the number of people has changed since the previous period (the 7 days before in this example). As we can see here, the number of people this week has increased by 13.9% which is awesome news for freeCodeCamp’s YouTube channel, proving whatever they did is working.</p>
<h3 id="heading-how-are-people-finding-our-channel">How are people finding our channel?</h3>
<p>So how do we figure out if the strategies we’re using (like SEO) to get people to our channel are effective? By analyzing our organic search traffic.</p>
<p>By navigating to the <strong>Source/Medium</strong> report by visiting <strong>Acquisition</strong>, <strong>All Traffic</strong>, then <strong>Source/Medium</strong>, we can see what sources are providing our YouTube channel the most traffic.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-source-medium-report.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Source/Medium report in Google Analytics</em></p>
<p>By clicking in to <strong>google / organic</strong>, we can also see how this has changed over time.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-organic-google-referral-report.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Organic Google traffic report in Google Analytics</em></p>
<p>While analyzing a single week isn’t the most effective, being able to tell how your organic traffic has changed over multiple weeks will be able to tell you if your strategy is working.</p>
<h3 id="heading-what-websites-and-pages-are-people-coming-from">What websites and pages are people coming from?</h3>
<p>Navigating to the <strong>Referrals</strong> report by going to <strong>Acquisition</strong>, <strong>All Traffic</strong>, and then <strong>Referrals</strong>, we can see that most of the referral traffic for the <a target="_blank" href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ">freeCodeCamp YouTube</a> is from <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp.org</a> itself.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-freecodecamp.org-referral-traffic.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Referral traffic showing freecodecamp.org as highest referrer in Google Analytics</em></p>
<p>But say we want to see what pages those referrals are coming from. We can find this out by clicking on the <strong>freecodecamp.org</strong> link in the view above where we can see a full breakdown of which pages are giving the channel the most traffic.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-referring-pages-from-freecodecamp.org.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>freecodecamp.org referral pages on Google Analytics</em></p>
<h3 id="heading-what-are-people-searching-for-on-my-channel">What are people searching for on my channel?</h3>
<p>After setting up <a target="_blank" href="https://support.google.com/analytics/answer/1012264?hl=en">Site Search</a> on your Google Analytics account, you’ll be able to get better insight into how people are actually searching your site.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-search-terms.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Search Terms report in Google Analytics</em></p>
<p>Here we can see what keywords people want to see the most, meaning we can tailor our content and future videos to those keywords, making our channel more effective.</p>
<h3 id="heading-more-insights">More insights</h3>
<p>By default, you’ll get a lot of other cool insights from Google Analytics that are baked in like where your visitors are physically located and whether they’re visiting on a desktop or mobile device.</p>
<p>To learn more about what you can see, check out <a target="_blank" href="https://www.freecodecamp.org/news/making-sense-of-google-analytics-and-the-traffic-to-your-website/">my article on making sense of Google Analytics</a>.</p>
<h2 id="heading-what-wont-i-be-able-to-see">What won’t I be able to see?</h2>
<p>While the information you’ll discover through Google Analytics is important, it’s not all inclusive. There are many points you’ll need to dive into YouTube’s own Analytics tool to see.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/youtube-studio-analytics-dashboard.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Analytics dashboard in YouTube Studio</em></p>
<h3 id="heading-video-analytics">Video analytics</h3>
<p>Video states and actions aren’t going to be visible in Google Analytics, which includes things like Play, Pause, and time watched.</p>
<p>However, by using the <strong>Engagement</strong> tab in the <a target="_blank" href="https://studio.youtube.com/">YouTube Studio</a> <strong>Analytics</strong> section, we can see how long people are watching our videos and a graph of the <strong>Audience retention.</strong> This will help us determine how the content of our videos is performing.</p>
<h3 id="heading-subscribers">Subscribers</h3>
<p>You’re not going to be able to gain insights into how the visitors on your channel are subscribing.</p>
<p>The good news is you can find this by visiting the the <strong>Analytics</strong> section in your YouTube Studio page, then clicking the <strong>Audience</strong> tab at the top.</p>
<h3 id="heading-dig-in-to-youtube-studio-analytics">Dig in to YouTube Studio Analytics</h3>
<p>There’s a whole lot you can find out if you dig around YouTube Studio Analytics. Take the time to poke around both Analytics report solutions and learn what information is most useful to providing an impactful experience for your channel.</p>
<h2 id="heading-what-else-can-i-do-with-youtube-and-google-analytics">What else can I do with YouTube and Google Analytics?</h2>
<h3 id="heading-track-links-from-youtube-to-your-website">Track links from YouTube to your website</h3>
<p>If you have a website outside of your YouTube channel and have Google Analytics set up on it, you can build custom URLs that will allow you to see your YouTube traffic as a campaign. This is useful not only for YouTube, but any other source you’re directing traffic to your website from.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/google-analytics-campaign-url-builder.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Building campaign URLs <a target="_blank" href="https://ga-dev-tools.appspot.com/campaign-url-builder/">Campaign URL Builder</a></em></p>
<p>Google Analytics provides this capability using URL parameters attached to the links. You can learn more about the setup and what you need to do with <a target="_blank" href="https://support.google.com/analytics/answer/1033863?hl=en">Google’s Analytics Help site</a>.</p>
<p>It should also be noted that you don’t really need to set up your YouTube channel with Google Analytics to make use of this feature.</p>
<h3 id="heading-track-how-videos-are-watched-when-embedded-on-your-website">Track how videos are watched when embedded on your website</h3>
<p>YouTube provides an <a target="_blank" href="https://developers.google.com/youtube/iframe_api_reference">API</a> that developers can use to write custom JavaScript and track usage of embedded videos on a given website.</p>
<p>Using this, we can send custom events based on time references or video actions (like play and pause) to get a better idea of how the videos on our site are being used.</p>
<p>To be clear – this is only for videos embedded on your website and will probably track usage with your website's Google Analytics property unless you configure it otherwise.</p>
<p>Check out <a target="_blank" href="https://developers.google.com/youtube/iframe_api_reference">YouTube iFrame Player API</a> for more info.</p>
<h3 id="heading-pretty-much-anything-google-analytics-provides-by-default">Pretty much anything Google Analytics provides by default</h3>
<p><a target="_blank" href="https://www.freecodecamp.org/news/making-sense-of-google-analytics-and-the-traffic-to-your-website/">There’s a whole lot you can do with Google Analytics</a>, whether it’s getting better visibility into where people are coming from or where they’re physically located. And by connecting your YouTube channel you automatically get those insights.</p>
<h2 id="heading-the-more-resources-the-more-insight-you-can-gain">The more resources, the more insight you can gain</h2>
<p>Though there are benefits to both YouTube Analytics and Google Analytics, having more information will ultimately help you make better judgement calls about how you manage your channel and content. Use these tools to help launch yourself to inevitable YouTube stardom!</p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Add a Social Media Image to Your Github Project Repository ]]>
                </title>
                <description>
                    <![CDATA[ Sharing links without a social image can turn powerful content into a flop. How can we take advantage of the real estate social media gives us when sharing our hard work on Github? Want to skip ahead of the “what” and “why”?  Jump to the “how”! https... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-add-a-social-media-image-to-your-github-project/</link>
                <guid isPermaLink="false">66b8e32e68c5b9f37d1d1aeb</guid>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ social media ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Wed, 26 Feb 2020 15:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/02/github-social-images.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Sharing links without a social image can turn powerful content into a flop. How can we take advantage of the real estate social media gives us when sharing our hard work on Github?</p>
<p>Want to skip ahead of the “what” and “why”?  <a class="post-section-overview" href="#heading-adding-an-image-to-your-github-repo">Jump to the “how”</a>!</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/KRNiqCLlPNQ" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-impact-of-images-in-social-media">Impact of images in social media</h2>
<p>Any social media feed is a flurry of content that can be difficult to completely digest. As you swipe or scroll through the feeds, you’ll be met with some text-based content and a ton of media.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/twitter-feed-media-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Twitter feeds with media on TweetDeck</em></p>
<p>And this is for a good reason! As you scan the example above, what stands out? Not the <a target="_blank" href="https://twitter.com/uiswarup/status/1230781530907324417">Dust Particle retwee</a>t from <a target="_blank" href="https://twitter.com/CodePen">CodePen</a> on the left, but the AWS in the middle, dog nose in the top left, and Al Pacino in the top right among the other large media posts.</p>
<p>Images, gifs, and videos are a good way to provide eye-catching content. As a bonus, they typically take up much more space in the feed, making it even more likely you’ll get a chance to see it.</p>
<h2 id="heading-the-bare-minimum-on-github">The bare minimum on Github</h2>
<p>When sharing your Github projects to social media, the default option is pretty bland. Take this tweet as an example:</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/colbyfayock/status/1226204581824204804"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Github gives us a simple <a target="_blank" href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards">social media card</a> that’s comprised of our Github avatar, the path of our project, and the short description from the top of the page.</p>
<p>Now it’s great they even show a card to begin with and to be fair, what would they show? But this tweet is going to get skipped pretty easily in people’s feeds between big, shiny images.</p>
<h2 id="heading-github-social-media-images">Github social media images</h2>
<p>Luckily, Github provides us with a nice and easy way to add an image to each repo that can help the content we share work for itself a little more.</p>
<p>With a little creative work, we can upload an image that will that will take advantage of the space on people’s feeds and get your work the attention it deserves.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/canva-social-media-example-2.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a social image using Canva</em></p>
<p>Before we dive in, it should be noted that you must have the appropriate access to be able to modify the settings of the repository in order to change the image. If you created the repo, chances are you have this access.</p>
<h2 id="heading-finding-or-creating-an-image">Finding or creating an image</h2>
<p>Before we upload an image, we need an image in the first place.  You can go one of two routes: finding an image or creating a new one.</p>
<p>If you want to go the simple route, you can look around for free to use images that are pretty easy to find on the web. A favorite of mine is <a target="_blank" href="https://unsplash.com/">Unsplash</a>, as you’ll typically find high quality images, but there are a ton of others you can find with <a target="_blank" href="https://www.google.com/search?q=free+stock+photos">a simple search</a>. However, adding photos is usually better served for blog posts and content-based posts.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/freeCodeCamp/status/1230190815605121024"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>The better route is to create your own. The advantage of creating an image is you can customize it with large text to catch some extra attention in the feed. </p>
<p>There are a <a target="_blank" href="https://zapier.com/blog/graphic-design-tools-for-social-media-images/">ton of free tools</a> that are available that allow you to create an image starting with a social media specific template, so you don’t need to spend the money on <a target="_blank" href="https://www.adobe.com/products/photoshopfamily.html">Photoshop</a> to get there.</p>
<p>The only requirement for your image is that its size must be at least 640×320px. If possible, strive for at least 1280×640px to make sure the image is showing at a high resolution in feeds.</p>
<h2 id="heading-adding-an-image-to-your-github-repo">Adding an image to your Github repo</h2>
<p>Once we have our image, we’re just left with adding the image to our repo, which is arguably the simpler part.</p>
<p>First, navigate to the Settings of your Repo using the tab navigation towards the top of the page. As a reminder, you need to be able to modify the settings to change the image.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/github-settings-page-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Github Settings page</em></p>
<p>Next, scroll down to the Social Preview section, where if you don't currently have an image set, you’ll find a big empty rectangle with an edit button in the bottom left corner.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/github-upload-social-image.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Upload social image on Github</em></p>
<p>Click the Edit button, select Upload an image, then find your image on your computer and select the file.</p>
<p>Once selected, your image file will be uploaded to Github and set as your social image!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/github-social-media-image.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Social preview on Github</em></p>
<h2 id="heading-previewing-your-new-image">Previewing your new image</h2>
<p>When you’re done uploading your image, you can make your way to your favorite social platform and give it a try. Posting to Twitter for example will now show a nice big image instead of your small Github avatar!</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/colbyfayock/status/1230604806324183046"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>As you can see, this tweet is maximizing the space available and getting the point across about what the project is about.</p>
<h2 id="heading-a-few-tips-when-creating-images">A few tips when creating images</h2>
<h3 id="heading-large-simple-text">Large, simple text</h3>
<p>It can be easy to get caught up in over-designing a graphic or not paying enough attention to the font size. Make sure you use big letters with a font that’s easy to read, so when someone scrolls past your post, they can understand it and not just skip it.</p>
<h3 id="heading-add-a-logo">Add a logo</h3>
<p>Do you have a logo for your project? Or is it a plugin for a specific tool? Try adding a logo to immediately give context about what the project is about!</p>
<h3 id="heading-maximize-resolution">Maximize resolution</h3>
<p>No one likes looking at poor quality images. Take advantage of all of those precious pixels and upload an image that will translate to high quality in a feed. Github particularly recommends an image size of at least 1280×640px.</p>
<h2 id="heading-have-any-other-tricks-to-maximize-sharing-on-social">Have any other tricks to maximize sharing on social?</h2>
<p>Share your favorite tips with me on <a target="_blank" href="https://twitter.com/colbyfayock">Twitter</a>!</p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Amplify your DevRel Partnerships Inside and Outside your Company ]]>
                </title>
                <description>
                    <![CDATA[ By David Nugent Between the three of them, the co-founders of Orbit have decades of experience in engineering and developer relations, building products at companies such as Accenture, Algolia, Apple and Keen.io. After launching Orbit, they spent the... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/amplify-your-devrel-partnerships-inside-and-outside-your-company/</link>
                <guid isPermaLink="false">66d45e02d1ffc3d3eb89ddad</guid>
                
                    <category>
                        <![CDATA[ Business development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ developer-advocacy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ developer relations ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 20 Jan 2020 13:10:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/01/devrel-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By David Nugent</p>
<p>Between the three of them, the co-founders of <a target="_blank" href="https://orbit.love">Orbit</a> have decades of experience in engineering and developer relations, building products at companies such as Accenture, Algolia, Apple and Keen.io. After launching Orbit, they spent the last year talking with people in the DevRel space about proving the value of DevRel. </p>
<p>January is a common time for executives to ask what kind of investments they should make in developer relations including what hires to make, and what the business case is.</p>
<p><img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WyY5e-QO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7a963q3z7p9myicmprse.jpg" alt="Orbit at HeavyBit" width="600" height="400" loading="lazy"></p>
<p>After <a target="_blank" href="https://www.heavybit.com/library/blog/orbit-joins-heavybit/">Orbit joined Heavybit last month</a>, I sat down with <a target="_blank" href="https://twitter.com/dzello">Josh</a>, <a target="_blank" href="https://twitter.com/patrickjwoods">Patrick, and</a> <a target="_blank" href="https://twitter.com/foxinthewaves">Dustin</a> to talk about their approach to DevRel, from partnerships and promotions to outsourcing and metrics.</p>
<h2 id="heading-table-of-contents">Table of Contents</h2>
<ul>
<li>What are the biggest missteps companies make when it comes to DevRel?</li>
<li>What parts of DevRel should companies outsource?</li>
<li>How do you leverage partnerships?</li>
<li>How can DevRel partner with business development?</li>
<li>How do you balance creation vs promotion?</li>
<li>Who in DevRel would you like to call out?</li>
</ul>
<h3 id="heading-q-what-are-the-biggest-missteps-companies-make-when-it-comes-to-devrel">Q: What are the biggest missteps companies make when it comes to DevRel?</h3>
<p>One big mistake is trying to hire a developer advocate before the company has learned to do at least a little DevRel on their own. In the consulting world, companies would come to us and say "we’re ready to hire, we just need help writing a job description and sourcing candidates." At that point, sometimes these companies had not given a talk or created developer-facing content.</p>
<p>By contrast, at some companies, every engineer is doing some aspect of DevRel from the time the company starts, like giving talks and contributing to projects. If a company tries to hire a DevRel-specific role but doesn’t have experience in that area, it’s going to be difficult for them to be successful.</p>
<p>Companies and teams have to define their internal expectations for DevRel. It’s common to read a job description for DevRel that isn't focused -- it could span dozens of key activities! If a company has done DevRel themselves, they typically surface a more focused job description. For example, do they see this role on the road giving talks, or being an internal advocate? We want to help companies avoid writing job descriptions that are “be all the things.”</p>
<h3 id="heading-q-what-parts-of-devrel-should-companies-keep-in-house-versus-outsourcing">Q: What parts of DevRel should companies keep in-house, versus outsourcing?</h3>
<p>It depends on which parts of the DevRel process you need help with.</p>
<p>On one hand, your DevRel person who has the touch points with the community -- that person should live and breathe inside your organization and embodies the organization's culture. If a company has contracted with an outside firm, you may not get the same experience talking to them, versus talking with employees embedded in the culture of the company.</p>
<p>If your advocate echoes your values, it leads to a better developer experience. That’s a risk when making a contract hire, especially on the community side. I’ve seen contractors do social media for a company’s developer community and it all goes wrong — it’s mind blowing why companies do this with little training and oversight.</p>
<p>However, if you’re working solely on content, tutorials, etc, that can be a great place for outside help, since there will be other people in the organization that are reviewing the content to make sure it falls in line with the company's positioning and values.</p>
<p>We consulted for the past year so we have some bias here, but using outside companies to generate strategic, third-party content can give you a lot of leverage. They can lean on your internal teams to amplify the content and bring the messages to market. We’ve done this a number of times with different companies -- it makes developer advocates inside the company feel like superheroes because they have a lot of great content that they can bring out and share with the community.</p>
<p><img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8i3kPh2n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kkrhyskbg0jlhee6e98m.jpg" alt="Quote: DevRel is in a unique spot to provide missing pieces of information and points of view regarding developers to other teams" width="600" height="400" loading="lazy"></p>
<h3 id="heading-q-how-can-we-in-developer-relations-leverage-internal-partnerships-to-increase-our-reach-and-effectiveness">Q: How can we in developer relations leverage internal partnerships to increase our reach and effectiveness?</h3>
<p>We think partnerships can be one of the most impactful parts of a successful DevRel strategy. A single advocate or DevRel team serves as a force multiplier across the entire company. The internal impacts of a team that’s working well are enormous when multiplied across the entire company. </p>
<p>We can give tons of examples, but to focus on a few: in marketing, DevRel can help keep the brand voice true to the developer personality. In return, marketing helps DevRel be more data driven, driving value in both directions.</p>
<p>In larger companies, there is an opportunity to bring the voice of the developer into internal conversations. You can imagine bringing stories from the field into the walls of the building and giving the company a few into how developers interact with your product.</p>
<p>Historically there has been somewhat of a mismatch between teams like sales and marketing and community teams like DevRel. Often this is based on a mismatch in funnels. </p>
<p>DevRel can evangelize alternate models of measuring impact of community instead of the standard model of pushing people into a funnel and measuring purchasing events. The Orbit model allows you to rewire the way companies think about community, not just a standard marketing funnel, but allowing you to create metrics around your community efforts.</p>
<p>We also see DevRel and Sales working well together — historically, this isn’t always the case! We've seen that they can be very collaborative and complementary when there is clear communication. </p>
<p>In large organizations it's rad to see individual developers participating in the community -- if a company's developers are contributing to your project, that’s a strong signal that the company may be interested in a commercial relationship. </p>
<p>From a sales perspective, you probably don't want an SDR emailing those developers, but the SDR would love to have feedback about that developer’s activity that they could reference when calling the developer’s manager. Of course, that requires data and tooling on the back-end to surface that information, and that’s something we see a lot of companies moving towards in 2020.</p>
<p>We actually wrote a whole series for Heavybit covering different tactics for internal collaboration.</p>
<p><img src="https://res.cloudinary.com/practicaldev/image/fetch/s--53EO-yqp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/po2d2dnxt5taurhtrlj3.jpg" alt="Josh presenting at DevrelCon" width="600" height="400" loading="lazy"></p>
<h3 id="heading-q-how-about-business-development-where-are-the-opportunities-for-developer-relations-teams-to-partner-there">Q: How about business development -- where are the opportunities for developer relations teams to partner there?</h3>
<p>Agency partnerships come to mind pretty quickly. For companies with a developer-focused platform, part of the BizDev model is to partner with agencies who can build the platform into products for clients. Algolia had relationships with agencies implementing all the different ecommerce and CMS platforms. </p>
<p>Creating formal partnerships with these companies can be useful for BizDev but can also help your DevRel program by encouraging the agency developers to be involved in the technology ecosystem. </p>
<p>DevRel can also partner with complementary companies and projects. This can keep things fresh and make sure you’re not talking too much about yourself and your products -- you're bringing some fresh voices into the conversation.</p>
<h3 id="heading-q-where-do-you-draw-the-line-on-creating-new-assets-such-as-content-and-talks-and-promoting-those-assets-should-100-of-your-devrel-budget-go-to-creation-100-to-publicity-or-somewhere-in-between">Q: Where do you draw the line on creating new assets, such as content and talks, and promoting those assets? Should 100% of your DevRel budget go to creation, 100% to publicity, or somewhere in between?</h3>
<p>Looking at DevRel as a whole, generally we think that more re-use would be smart. Writing a new presentation each time you give a talk is very expensive in terms of effort and mental energy. </p>
<p>Many developer advocates are hesitant to re-use material, but they shouldn’t be -- there are millions of developers out there who haven’t seen your presentation before. If stand-up comedians can re-use the same jokes for years, you shouldn’t have to worry about giving the same talk twice in the same city. </p>
<p>One trick I have: give talks to engineers inside the company, and then let the engineers give that talk elsewhere. Make your assets and presentations so that others can re-use the deck and script. That’s a nice way to get engagement in the DevRel effort from others in the organization — three months later, someone is speaking on stage, maybe for the first time.</p>
<p>Often there are engineers inside your company who want to get started getting talks, and as developer advocates who do this multiple times per week, we can facilitate these engineers and also cover more territory. (There are a lot of events I want to speak at, but I can’t be in two places at the same time.)</p>
<h3 id="heading-q-is-there-anybody-out-there-in-devrel-who-is-doing-an-amazing-job-that-youd-like-to-highlight">Q: Is there anybody out there in DevRel who is doing an amazing job, that you’d like to highlight?</h3>
<ul>
<li><a target="_blank" href="https://twitter.com/TraderD65">Doron Sherman</a>, VP DevRel at Cloudinary has a great DevRel program</li>
<li><a target="_blank" href="https://twitter.com/stefanjudis">Stefan Judis</a> at Twilio for being data-driven, he’s got a great approach and dashboard for his content that is pretty impressive</li>
<li><a target="_blank" href="https://twitter.com/tlberglund">Tim Berglund</a> and <a target="_blank" href="https://www.linkedin.com/in/alemurray/">Ale Murray</a>, Confluent team</li>
</ul>
<p><em>Thanks to <a target="_blank" href="https://twitter.com/dzello">Josh Dzielak</a>, <a target="_blank" href="https://twitter.com/patrickjwoods">Patrick Woods</a>, and <a target="_blank" href="https://twitter.com/foxinthewaves">Dustin Larimer</a> for chatting with me about their DevRel experience.</em></p>
<h3 id="heading-next-steps">Next Steps:</h3>
<ul>
<li><a target="_blank" href="https://twitter.com/orbitmodel">Follow Orbit on Twitter</a></li>
<li>Check out (literally, you can check it out) the <a target="_blank" href="https://github.com/orbit-love/orbit-model">Orbit Model GitHub repo</a></li>
<li>Catch up with <a target="_blank" href="https://orbit.love/blog/">Orbit's DevRel Blog</a>.</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to use Google Tag Manager to maintain Google Analytics and other marketing tags ]]>
                </title>
                <description>
                    <![CDATA[ Managing code snippets and pixels on your website or app to measure traffic can be a little bit stressful, especially if you have a marketing team that constantly needs to make changes. Luckily, there are tools out there like Google Tag Manager that ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-google-tag-manager-to-maintain-google-analytics-and-other-marketing-tags/</link>
                <guid isPermaLink="false">66b8e377c9bc6d235bb126b0</guid>
                
                    <category>
                        <![CDATA[ analytics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Digital Marketing  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ front end ]]>
                    </category>
                
                    <category>
                        <![CDATA[ frontend ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google Analytics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ google tag manager ]]>
                    </category>
                
                    <category>
                        <![CDATA[ marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #reporting ]]>
                    </category>
                
                    <category>
                        <![CDATA[ SEO ]]>
                    </category>
                
                    <category>
                        <![CDATA[ website development, ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Wed, 20 Nov 2019 16:04:05 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/11/take-control-of-your-marketing-tags.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Managing code snippets and pixels on your website or app to measure traffic can be a little bit stressful, especially if you have a marketing team that constantly needs to make changes. Luckily, there are tools out there like Google Tag Manager that will make them a little easier to wrangle.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/giphy.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Sandy wrangling</em></p>
<h2 id="heading-what-is-google-tag-manager"><strong>What is Google Tag Manager?</strong></h2>
<p>If you’ve ever worked with any kind of analytics software, or you have worked with a marketing team before, you’ve probably heard the word pixel thrown around. A pixel is literally what it sounds like: a 1x1 image that sends information to a server through an image request.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-analytics-pixel-request.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Analytics pixel request</em></p>
<p>Though pixels are still common, many teams have moved towards small javascript snippets that sit right along side the rest of your HTML. They will allow software like Google Analytics to run their own scripts on your page, sometimes even with a pixel backup, in the event that a browser doesn't run JavaScript.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/crazy-egg-tracking-snippet.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Crazy Egg snippet</em></p>
<p>These pixels and snippets work great. But when you’re dealing with a bunch of them and they all use the same data, it might seem like you’re just adding to an unmanageable mess of single use code snippets that never feel like they’re in the right place.</p>
<p>Google Tag Manager, or GTM, is a software solution to manage these pixels and snippets for you. To start, GTM works pretty much like any of those other code snippets, as it’s a code snippet itself. But where it shines is that you get to manage the rest of those pixels and snippets along with the flow of data inside GTM, leaving it to be the only snippet to manage within your code.</p>
<h2 id="heading-why-do-i-want-to-use-it"><strong>Why do I want to use it?</strong></h2>
<h3 id="heading-fewer-code-changes-fewer-deploys"><strong>Fewer code changes, Fewer deploys</strong></h3>
<p>Most of the time, if you’re managing these snippets in your code, each change will require another merge request and another deploy to get the changes out. Not only does this add more risk, as you need to make yet another change to the code, but this is additional time spent dealing with your deploy pipeline and making sure everything is working as it should be. </p>
<p>GTM allows you to break outside of that flow, giving you more flexibility to get changes out that could give some needed insight into fixing some UI errors or could add a few bucks to the bottom line.</p>
<h3 id="heading-more-manageable-data-flow"><strong>More manageable data flow</strong></h3>
<p>Wrangling all the different variables throughout your application, making sure they’re all available in the right spot, and keeping up with avoiding breaking any changes can prove to be challenging. This also makes your code more fragile and prone to breaking. </p>
<p>Google Tag Manager utilizes what they call a <code>dataLayer</code>, which essentially functions like an array of events that it listens to. This allows you to push or seed new data to make available within GTM itself. And it means you’re funneling all of your variables to one spot in the code. This lets whoever manages GTM do the rest – they can use that data with peace of mind, knowing that your data flow won’t break after forgetting to update 1 out of 10 spots.</p>
<h3 id="heading-ability-to-give-marketers-a-little-more-access"><strong>Ability to give marketers a little more access</strong></h3>
<p>This is an opportunity to free up some of your time by letting the marketing team deal with tag changes themselves rather than you being the middle man for them. Perhaps they need to adjust the ID for your analytics software or maybe they want to add <a target="_blank" href="https://www.crazyegg.com/">Crazy Egg</a>. With the right permissions (explained later), they can do all of the work and send the changes to you for review before publishing them.</p>
<h2 id="heading-how-does-this-relate-to-google-analytics"><strong>How does this relate to Google Analytics?</strong></h2>
<p>There is no direct relation. But along with Google Analytics, GTM is another tool in the Google Marketing Platform and gives you the immediate ability to more easily manage your Google Analytics installation. GA comes with prebuilt tags inside GTM that make it a breeze to set up.</p>
<h2 id="heading-what-else-can-i-use-this-for"><strong>What else can I use this for?</strong></h2>
<p>Google Analytics is just one of many code snippets this can be used for. Ideally, you’re not going to write your entire site here. But you have the ability to pretty much do whatever you want on your own site as long as <a target="_blank" href="https://support.google.com/tagmanager/answer/6328489?hl=en">Google doesn’t deem it malware</a>.</p>
<p>Some other use cases include:</p>
<ul>
<li>Traffic visualization with <a target="_blank" href="https://www.crazyegg.com/">Crazy Egg</a> or <a target="_blank" href="https://www.hotjar.com/">Hot Jar</a></li>
<li>Conversion and remarketing pixels with <a target="_blank" href="https://ads.google.com/home/">Google Ads</a></li>
<li>A/B Testing with <a target="_blank" href="https://marketingplatform.google.com/about/optimize/">Google Optimize</a> or <a target="_blank" href="https://www.abtasty.com/">AB Tasty</a></li>
<li><a target="_blank" href="https://support.google.com/tagmanager/answer/7679411?hl=en">Client side error</a> tracking (and logging them)</li>
<li>GDPR compliance management</li>
</ul>
<p>There are many baked-in like the examples above, meaning you don’t even need to mess with code. Just add the IDs or settings and go. But for whatever custom solution or tag you need, you can always set up the HTML manually.</p>
<h2 id="heading-anything-i-need-to-know-before-jumping-in"><strong>Anything I need to know before jumping in?</strong></h2>
<p>Before jumping right in, let’s familiarize ourselves with a few key terms that will make this ride a little easier.</p>
<h3 id="heading-tags"><strong>Tags</strong></h3>
<p>Tags in GTM are your pixels or code snippets. A tag includes a single instance of a contained piece of code that is used for one function.</p>
<p><em>Example:</em> your Google Analytics snippet will be one tag and if you add Crazy Egg, that will be another tag.</p>
<h3 id="heading-variables"><strong>Variables</strong></h3>
<p>A variable is a name that you give a predetermined or dynamic value. The variable can be based on a variety of different things, hence the name “variable”. But it will function as a single name that you can give and reference that will never change when using it.</p>
<p><em>Example:</em> we’ll set up your Google Analytics ID as a variable, meaning you’ll use that variable within the GA tag itself. If you ever need to update that ID, you won’t need to modify the tag or any other tags that use the variable – you’ll only need to update the variable itself.</p>
<h3 id="heading-triggers"><strong>Triggers</strong></h3>
<p>Triggers are the event or action that make your tag fire or load. This can happen in a variety of ways, such as when all or a specific page loads, when something is clicked, or when you have a <a target="_blank" href="https://support.google.com/tagmanager/answer/7679219?hl=en">completely custom event</a> you fire with Javascript.</p>
<p><em>Example:</em> when we set up Google Analytics, our trigger will be when any page loads.</p>
<h3 id="heading-container"><strong>Container</strong></h3>
<p>GTM allows you to manage multiple “containers” or groups of tags within your organization. This is helpful when you have one company with a few different website properties.</p>
<p><em>Example:</em> you’re a small company under a parent company. The parent company wants to maintain one organization, but each smaller company gets their own container, as they have their individual needs for tags and code snippets.</p>
<h2 id="heading-how-do-i-get-set-up"><strong>How do I get set up?</strong></h2>
<h3 id="heading-getting-your-account-set-up"><strong>Getting your account set up</strong></h3>
<p>The first thing you’ll need to do is get your account set up. After getting to the <a target="_blank" href="https://tagmanager.google.com/">tag manager homepage</a>, you’ll probably want to use your preexisting Google account. If you’re in an organization setting it up for the organization, you most likely want to use your business email, otherwise your personal account works okay too.</p>
<p>Next, create a new GTM account:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-new-account.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager new account</em></p>
<p>Once there, fill out the form appropriately. The Account Name should represent the top level of your hierarchy and the container name should represent the specific installation instance.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-new-account-container.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager new account container</em></p>
<p>As for the target platform, choose whichever makes sense. If it’s a website or web app, Web makes the most sense here.</p>
<h3 id="heading-finding-and-installing-your-snippet"><strong>Finding and installing your snippet</strong></h3>
<p>As soon as you accept the terms and hit create, you’ll be presented with a snippet in a little modal. You'll want to do exactly what it says and install the snippets per the instructions.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-install-snippet.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager install snippet</em></p>
<p>Didn’t get the screen or accidentally exited out? You can find your snippet again by navigating to Admin in the top navbar and then click Install Google Tag Manager under Container to the right.</p>
<h3 id="heading-testing-that-its-working"><strong>Testing that it’s working</strong></h3>
<p>To make sure it’s working, let’s verify a few things:</p>
<ul>
<li>We created our account</li>
<li>We created our container</li>
<li>We installed the Google Tag Manager snippets on our page and the change are live</li>
</ul>
<p>Once all of those things are true, go ahead and click the Preview button in the top right of the page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-preview.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager preview</em></p>
<p>If successful, you’ll now see an orange banner at the top of the page that says you’re in Preview Mode:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-preview-mode.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager preview mode</em></p>
<p>Now wander over to the website that you installed GTM on and you should now see a banner at the bottom of the page. This will serve as your Debugger for working with GTM’s Preview.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-debugger.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager debugger</em></p>
<p>You should see something similar to that, which means it worked! ?</p>
<p>Note: if you have an ad blocker on, similar to GA, you may need to disable it on the page you’re installing on in order to see it working.</p>
<h2 id="heading-cool-its-working-what-about-google-analytics"><strong>Cool, it’s working, what about Google Analytics?</strong></h2>
<p>Now that we have a basic installation of GTM working, let’s set up Google Analytics. First we'll want to do some prep, so let's jump back over to the Tag Manager dashboard.</p>
<h3 id="heading-create-a-settings-variable"><strong>Create a settings variable</strong></h3>
<p>Navigate to Variables in the left sidebar and then click New beside User-Defined Variables.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-new-variable.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager new variable</em></p>
<p>For the name, enter “GA Settings” and under Variable Type, click through and select Google Analytics Settings. Enter your Google Analytics Tracking ID (or Property ID) in the appropriate field, and finally click Save, at which point you have your new settings variable.</p>
<h3 id="heading-create-a-new-ga-tag"><strong>Create a new GA tag</strong></h3>
<p>Navigate to Tags in the left sidebar and then click New beside Tags.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-new-tag.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager new tag</em></p>
<p>For the name, enter “GA - All Pages”. Under Tag Type, click and select Google Analytics: Universal Analytics in the panel that pops out from the right.</p>
<p>After selecting the tag type, under Google Analytics Settings, select your variable from the previous step, which if you followed along will be called “GA Settings”.</p>
<p>Next, click in the middle of the Triggering box, which should open a new UI to select a trigger.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-trigger.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager trigger</em></p>
<p>Select All Pages, which should be the only Trigger there if you’re in a new account. It will take you back to the New Tag UI with your newly selected trigger.</p>
<p>Once the above is done, click Save in the top right of the UI which will then save and create your new Google Analytics tag.</p>
<h3 id="heading-test-that-gtm-is-working"><strong>Test that GTM is working</strong></h3>
<p>Similar to when we installed GTM to begin with, let’s go back to the Workspace home by clicking Overview in the left sidebar. Then click Preview at the top right.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-debugger-google-analytics.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager debugger with Google Analytics</em></p>
<p>Open up your page GTM is installed on and you should once again see your Debugger, but this time with the Google Analytics Tag loading.</p>
<h2 id="heading-are-we-done-yet"><strong>Are we done yet?</strong></h2>
<p>Not quite. Although we have GA working, we need to tweak the configuration to make sure GA and GTM work correctly together.</p>
<h3 id="heading-updating-the-page-snippet"><strong>Updating the page snippet</strong></h3>
<p>Let’s dig into the code one more time to update our Google Analytics and Google Tag Manager snippets.</p>
<p>The issue with the installation that we set up here is that we installed GA through the GA instructions and GA inside GTM. This means we have GA installed twice. In practice, GA may send 1 pageview from your default installation and then another via GTM. To avoid this, we want to remove the pageview from the default GA snippet.</p>
<p>If you just have a super basic default installation, I did the work for you and you can go ahead and copy the snippet below. Replace <code>[YOUR GA PROPERTY ID]</code> with your GA Property ID and <code>[YOUR GTM CONTAINER ID]</code> with your GTM Container ID, and swap it out for your existing GA and GTM installation on your page.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
<span class="hljs-comment">// Set up an initial dataLayer configuration</span>
<span class="hljs-built_in">window</span>.dataLayer = <span class="hljs-built_in">window</span>.dataLayer || [{
  <span class="hljs-string">"gaPropertyId"</span>: <span class="hljs-string">"[YOUR GA PROPERTY ID]"</span>
}];

<span class="hljs-comment">// Configure gtag and your GA ID</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">gtag</span>(<span class="hljs-params"></span>)</span>{dataLayer.push(<span class="hljs-built_in">arguments</span>);}
gtag(<span class="hljs-string">'js'</span>, <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>());
gtag(<span class="hljs-string">'config'</span>, <span class="hljs-string">'[YOUR GA PROPERTY ID]'</span>);

<span class="hljs-comment">// Google Tag Manager snippet</span>
(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">w,d,s,l,i</span>)</span>{w[l]=w[l]||[];w[l].push({<span class="hljs-string">'gtm.start'</span>:
<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().getTime(),<span class="hljs-attr">event</span>:<span class="hljs-string">'gtm.js'</span>});<span class="hljs-keyword">var</span> f=d.getElementsByTagName(s)[<span class="hljs-number">0</span>],
j=d.createElement(s),dl=l!=<span class="hljs-string">'dataLayer'</span>?<span class="hljs-string">'&amp;l='</span>+l:<span class="hljs-string">''</span>;j.async=<span class="hljs-literal">true</span>;j.src=
<span class="hljs-string">'https://www.googletagmanager.com/gtm.js?id='</span>+i+dl+<span class="hljs-string">'&amp;gtm_cookies_win=x'</span>;f.parentNode.insertBefore(j,f);
})(<span class="hljs-built_in">window</span>,<span class="hljs-built_in">document</span>,<span class="hljs-string">'script'</span>,<span class="hljs-string">'dataLayer'</span>, <span class="hljs-string">'[YOUR GTM CONTAINER ID]'</span>);
</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></pre>
<p>This should REPLACE your current Google Analytics snippet if you have one. If you don't, this should go as far in the top of your <code>&lt;head&gt;</code> tag as you can, but under the <code>charset</code> meta tag.</p>
<p>For more advanced users, just make sure you’re not sending duplicate pageviews or duplicate events between the page snippet and any GTM tag you create.</p>
<h3 id="heading-test-that-ga-is-working"><strong>Test that GA is working</strong></h3>
<p>Follow the steps above to make sure GA is showing up with the debugger.</p>
<p>The final thing you’ll want to do is make sure your installation is working using <a target="_blank" href="https://chrome.google.com/webstore/detail/tag-assistant-by-google/kejbdjndbnbjgmefkgdddjlbokphdefk?hl=en">Google’s Tag Assistant extension</a>. Once you install the extension, go back to your page and click Enable in the Extension’s UI.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-assistant-record.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Assistant enable recording</em></p>
<p>Refresh the page and you should see 2 tags, GA and GTM.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-assistant-results.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Assistant results</em></p>
<p>If you notice, my GA tag is blue and yours may be too. Click in to Google Analytics for more info.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-assistant-implementation.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Assistant non-standard implementation</em></p>
<p>As you can see, we have a healthy 1 Pageview Request and a note that says Non-standard implementation (hence the blue) This is because we installed it with GTM instead of the default on page.</p>
<h2 id="heading-publish-and-deploy"><strong>Publish and Deploy!</strong></h2>
<p>We’re there! Last step is to Publish your Container and make the changes live.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-submit.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager submit version</em></p>
<p>Click Submit in the Overview UI, enter a name and description.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/google-tag-manager-version-configuration.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Google Tag Manager version configuration</em></p>
<p>Finally click Publish and your changes will be live on your site!</p>
<h2 id="heading-what-else-do-i-need-to-know"><strong>What else do I need to know?</strong></h2>
<p>There’s plenty more to talk through, but that’s for a different day. There are a ton of resources online to get you started with adding your own new tags and exploring the capabilities of Google Analytics, but here are a few points to keep in mind with GTM.</p>
<h3 id="heading-permissions"><strong>Permissions</strong></h3>
<p>You most likely don’t want every marketer on your 1,000 person team to have publish access to your GTM container. It’s best to have one or a few people responsible for managing the container, reviewing, and publishing while keeping everyone else to a lower access role. This will help prevent accidental changes or abuse within a bigger team.</p>
<h3 id="heading-security"><strong>Security</strong></h3>
<p>Permissions are your first step towards maintaining a secure installation. But Google takes this an extra step and performs some actions for you, such as checking for code errors and <a target="_blank" href="https://support.google.com/tagmanager/answer/6328489?hl=en">scanning for malware</a>. While this is great, it’s still important to keep an active review cycle of tags getting published, just like any other pieces of code, to make sure the site integrity and health remain in tact.</p>
<h3 id="heading-conventions"><strong>Conventions</strong></h3>
<p>I highly recommend starting early with naming conventions and best practices when configuring your tags, variables, triggers, and really anything within GTM. The different ways to name things can spiral out of control really quickly, depending on how many people are working in there. This will make your work difficult to find, so it’s best to agree with the team on a convention to use early and get off on the right foot.</p>
<h3 id="heading-single-page-apps"><strong>Single Page Apps</strong></h3>
<p>This doesn’t account for the impact single page apps have on a GTM and GA setup. The trigger we set up here will fire when any page loads, which is defined by a new page load by the browser. Single page apps don’t actually load a new page – rather, the JavaScript within the app makes it appear that a new page loads, so the trigger here will only fire the first pageview. Though it doesn’t include information directly usable in GTM, the GA documentation has <a target="_blank" href="https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications">some good information</a> about tracking these types of apps.</p>
<h3 id="heading-gdpr"><strong>GDPR</strong></h3>
<p>While GTM alone does not (currently) violate GDPR, you still need to be cognizant of how any of the tags you use impact your standing. This guide doesn’t touch this, so please make sure to do your homework.</p>
<h3 id="heading-exiting-out-of-debugger"><strong>Exiting out of Debugger</strong></h3>
<p>Stuck? One way is to clear your cookies, but you should always be able to go to the GTM Overview page and hit "Leave Preview Mode” right under the orange Preview Mode banner at the top of the page.</p>
<h2 id="heading-whats-next"><strong>What's next?</strong></h2>
<p>From here, you can start managing your tags and pixels through GTM, which allows you to have a single source of consistent data flow into those tags. Experiment and use the debugger to play around, as it opens the door for a lot of new ways to work with the marketing side of things.</p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>

<p><em>Originally published at <a target="_blank" href="https://www.colbyfayock.com/2019/11/how-to-use-google-tag-manager-to-maintain-google-analytics-and-other-marketing-tags">https://www.colbyfayock.com/2019/11/how-to-use-google-tag-manager-to-maintain-google-analytics-and-other-marketing-tags</a></em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Stop [Marketing] E-Mail Bouncebacks! How to Configure SPF, DMARC & DKIM ]]>
                </title>
                <description>
                    <![CDATA[ By Andreas Lopez Setup Requirements: Your Domain Name System (DNS) Editor (i.e. GoDaddy Admin that has the email addresses registered) 3rd Party e-mail Admin Accounts (e-mail Blast Service [Mailchimp, ConstantContact, etc.], Additional Mail Server y... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/bananas-stop-email-bouncebacks-spf-dmarc-dkim/</link>
                <guid isPermaLink="false">66d45d97052ad259f07e4a55</guid>
                
                    <category>
                        <![CDATA[ Backend Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Digital Marketing  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ email ]]>
                    </category>
                
                    <category>
                        <![CDATA[ email marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ newsletters ]]>
                    </category>
                
                    <category>
                        <![CDATA[ servers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ smtp ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 22 Jun 2019 17:10:52 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/06/stop-email-bouncebacks-post-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Andreas Lopez</p>
<p><strong>Setup Requirements:</strong></p>
<ul>
<li>Your Domain Name System (DNS) Editor (i.e. GoDaddy Admin that has the email addresses registered)</li>
<li>3rd Party e-mail Admin Accounts (e-mail Blast Service [Mailchimp, ConstantContact, etc.], Additional Mail Server you might be using, etc.)</li>
</ul>
<p>You might be reading this because you want help resolving an error you just received. This error might be stating something about your DMARC records and that the e-mail was not authenticated. And most likely you attempted to e-mail someone with a ‘@gmail.com’ or ‘@yahoo.com’ address or similar free, big e-mail providers which have higher default guidelines than an e-mail server you would set up through your own company.</p>
<p>I was there too and struggled quite some time to get this figured out — not just what you need, but also how to get it done, the right way.</p>
<h3 id="heading-our-statistics-before-and-after-configuring-spf-dmarc-amp-dkim">Our Statistics before and after configuring SPF, DMARC &amp; DKIM:</h3>
<p>As you will be able to see in the following pictures these implementations show us that:</p>
<ul>
<li>Bounce Rate was 70% before implementation, a whole 21441 E-mails that never made it into the subscribers inbox.</li>
<li>After implementation the Bounce Rate was only 5.6%, down to only 1855 Bouncebacks.</li>
<li>The bouncebacks are not all just due to security, some e-mails are deleted or the subscriber made a typo (mail.com instead of gmail.com is a typical one).</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/06/ConstantContact-Before-After.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Constant Contact Bounce Statistics, Before &amp; After configuring SPF, DMARC &amp; DKIM.</em></p>
<h3 id="heading-enough-talk-about-how-important-the-implementation-is-lets-get-to-it">Enough talk about how important the implementation is - lets get to it!</h3>
<p>In order to be 100% compliant in terms of e-mail authentication, you need 3 things configured:</p>
<ul>
<li><strong>SPF (Sender Policy Framework):</strong> a framework used to prevent e-mail forgery aka Spoofing. Spoofing is when someone is pretending to be sent from your e-mail address.</li>
<li><strong>DKIM (DomainKeys Identified Mail):</strong> This will allow a server to send e-mails in your name while being authenticated to make sure it’s really you. For example, if you use MailChimp or ConstantContact for newsletter blasts and say it’s from ‘john@doecompany.com’, the e-mails will still be sent from MailChimp or ConstantContacts server. However, you verified with your Blast e-mail service that is indeed you and not someone pretending to be you. <strong>This is the most important one to set up correctly for businesses, as otherwise there will be a high bounce-back rate!</strong></li>
<li><strong>DMARC (Domain-based Message Authentication, Reporting, and Conformance):</strong> Also an Anti-Spoofing mechanism that will work in conjunction with SPF. Having one or the other is ineffective — you will need both to be properly protected.</li>
</ul>
<p>DNS Editor / DNS Zone Editor, GoDaddy Screenshot Examples (Login and navigate to your Admin Dashboard first):</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*RyXa5A0poh-LVZgw.png" alt="Image" width="549" height="72" loading="lazy">
<em>GoDaddy Manage Domains Dashboard Screenshot with Arrow pointing at Manage option. (1)</em></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*lPnjNy8Qd3T6d7lq.png" alt="Image" width="519" height="175" loading="lazy">
<em>GoDaddy Domains Dashboard Screenshot with the arrow pointing at Manage Zones option. (1)</em></p>
<p>Select the Domain you need to add the DNS entries to in the screen after clicking on Manage Zones.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*CK4w3j4dsw2ZE060.png" alt="Image" width="700" height="216" loading="lazy">
<em>GoDaddy DNS Zone Editor Admin Dashboard Screenshot with Arrow pointing on the Add Option. (1)</em></p>
<p>On the bottom of your records on the right-hand side, you will see an ‘Add’ button which will lead to the following dialog menu in which you will enter the SPF, DMARC &amp; DKIM entries each individually:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*lZzVRpdjY3z0dq53.png" alt="Image" width="600" height="207" loading="lazy">
_GoDaddy Add DNS Entry Admin Dashboard Screenshot with button pointing at Save button and TXT as type, <em>dmarc as Host and the required value under TXT Value highlighted. (1)</em></p>
<p>For other guides for Zone Editors, just go to the knowledge base/support center of your Domain Provider.</p>
<h3 id="heading-setting-up-spf">Setting up SPF:</h3>
<p>The SPF is the easiest to set up. You will need 2 things:</p>
<ol>
<li>Your DNS Editor (i.e. GoDaddy Admin Portal)</li>
<li>The IP address of your e-mail server</li>
</ol>
<p>After accessing your DNS Editor (also called DNS Zone Editor in CPanel), you want to create a new TXT entry. In this TXT Entry, you should have 3 possible fields: Host, TXT Value / Value &amp; TTL (Time-To-Live). What you will enter in these fields is the following (some details might vary, <strong>this is based on a GoDaddy installation</strong>):Host: @ TXT Value: v=spf1 +a +mx +ip4:~allTTL: 1 Hour</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*5dQV9o1PaFDrABCi3ISHVg.png" alt="Image" width="800" height="217" loading="lazy">
<em>GoDaddy DNS Sample TXT Entry for the SPF settings as described above.</em></p>
<p><strong>Explanation / Meaning of these settings:</strong></p>
<p>‘@’ is the designation within GoDaddy that refers to the Domain you are working in. So if you are working inside ‘doecompany.com’ you could replace ‘@’ with ‘doecompany.com’ and the result would be the same. However, it is best practice to use the ‘@’ symbol instead in the case of GoDaddy.</p>
<p> is the IP of where your e-mails are being sent from. This is not necessarily the same IP that the actual website is hosted on.</p>
<p><strong>+a:</strong> Includes A record</p>
<p><strong>+mx:</strong> Includes Mail Server record</p>
<p><strong>+ip4:</strong> Designates from which IPv4 server</p>
<p><strong>~all:</strong> Records outside of the prior declared ones will fail.</p>
<p><strong>TTL = 1 hour</strong> (or 3600 seconds): Time-To-Live, or how often this should expire. If you were to change e-mail servers, you would be glad that there is only a maximum gap of 1 hour of not being authenticated.</p>
<h3 id="heading-setting-up-dkim">Setting up DKIM:</h3>
<p>This is the most tedious of the three to set up and the most critical one. You will authenticate the 3rd party to send on behalf of your e-mail name, i.e. ‘john@doecompany.com’.</p>
<p>I have 2 DKIMs currently set up:</p>
<ol>
<li>For my actual Mail Server which lives on a different server than my actual website (this is more common in Enterprise environments).</li>
<li>For my e-mail newsletter blast service provider (ConstantContact in this case, it could easily be Mailchimp or someone else in your case).</li>
</ol>
<p>For both scenarios, your legwork is the same. You will have to contact the e-mail support of your Mail Server or Third Party e-mail sending service and have them install the DKIM on their end, for your account.</p>
<p>This is completely out of your hands and typically takes them 1–2 days to complete this task. Basically what is happening is that they will register and install an RSA of at least 1024-Bit encoding (2048 is better) on their server.</p>
<p>After they got it set up, they will send you a Public Key that you will be using in the next step to set up your DKIM record.</p>
<p>Just like with the SPF &amp; DMARC records you will access your DNS Editor (also called DNS Zone Editor in CPanel), and create a new TXT entry. In this TXT Entry, you should have 3 possible fields: Host, TXT Value / Value &amp; TTL (Time-To-Live). What you will enter in these fields is the following (some details might vary, this is based on a GoDaddy installation with the e-mails being hosted on inmotionhosting.com and ConstantContact as Newsletter service). Remember to make 1 separate entry per DKIM record:Host: ._domainkeyTXT Value: v=DKIM1; k=rsa; p=TTL: 1 Hour</p>
<p>Make sure not to leave any spaces after the ‘=’ symbols.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*nj_ycXzk_LsASRBfcw7b3A.png" alt="Image" width="800" height="216" loading="lazy">
<em>GoDaddy DNS Sample TXT Entry for the DKIM settings as described above.</em></p>
<p><strong>Explanation / Meaning of these settings:</strong></p>
<p>The host can be a name or number and is truly unique to the third party. When an e-mail is being sent on your behalf, that e-mail will have that name or number included in the header. That is the record it will be looking under your domain for.</p>
<p>In layman’s terms and our example, the recipient server would go to ‘doecompany’s DNS records and look if what the 3rd party claims to be true will be there. Only if the public key properly validates with the key on their server, the e-mails will be sent out.</p>
<p><strong>v=DKIM1:</strong> Simply specifies the version of DKIM being used to clarify further what to look for.</p>
<p><strong>k=rsa:</strong> RSA is the most typical one to use as the Key (k). Your 3rd party might opt-in to use something else. But RSA with a 2048 bit encryption is the most secure option you can have at the moment. 1024 bit is good, too.</p>
<p><strong>p=:</strong> Instead of ‘’ you would be provided with either a 1024 bit or 2048 bit string of seemingly random text and numbers or other values suited to whatever encryption the 3rd party decided to utilize.</p>
<p><strong>TTL = 1 hour</strong> (or 3600 seconds): Time-To-Live, or how often this should expire. If you were to change e-mail servers, you would be glad that there is only a maximum gap of 1 hour of not being authenticated.</p>
<h3 id="heading-setting-up-dmarc">Setting up DMARC:</h3>
<p><strong>Reminder:</strong> In order for the DMARC to do its job, you MUST setup SPF AND DKIM before. Because DMARC verifies SPF &amp; DKIM settings and whether or not the sender suits these settings and is not a spoofer. If SPF &amp; DKIM are not set up, DMARC won’t work and will result in rejected e-mails.</p>
<p>Just like with the SPF records you will access your DNS Editor (also called DNS Zone Editor in CPanel), and create a new TXT entry. In this TXT Entry, you should have 3 possible fields: Host, TXT Value / Value &amp; TTL (Time-To-Live). What you will enter in these fields is the following (some details might vary, this is based on a GoDaddy installation with the e-mails being hosted on inmotionhosting.com):Host: _dmarcTXT Value: v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400TTL: 1 Hour</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*TvOQkx-VHgLLx7o831YsAg.png" alt="Image" width="800" height="213" loading="lazy">
<em>GoDaddy DNS Sample TXT Entry for the DMARC settings as described above.</em></p>
<p><strong>Explanation / Meaning of these settings:</strong></p>
<p>The Host is declared as ‘_dmarc’ because within GoDaddy it will automatically add ‘.johndoe.com’ as a subdomain. This means when an e-mail is being sent out, the DMARC will always be checked under that selector against your domain. If this is not set up properly as ‘_dmarc’, the e-mail servers won’t be able to find your DMARC entry and will automatically fail your e-mail as they believe there is no entry to begin with.</p>
<p><strong>v=DMARC1:</strong> Declares the version of the DMARC to clarify what is being used and make authentication more legitimate.</p>
<p><strong>p=reject:</strong> E-mails will be rejected from the recipient e-mail server if they don’t match the DMARC records.</p>
<p><strong>sp=none:</strong> Do not check if subdomains and the main domain have aligned settings; this is optional.</p>
<p><strong>adkim=r:</strong> Whether to be strict (s) or relaxed (r) with the DKIM identifier settings; relaxed is the default.</p>
<p><strong>aspf=r:</strong> Whether to be strict (s) or relaxed (r) with the SPF identifier settings; relaxed is the default.</p>
<p><strong>pct=100:</strong> 100 percent of e-mails are going to be affected by the DMARC. Integer values between 1 to 100 only. The smaller set would make sense only for testing; should be 100 for security purposes.</p>
<p><strong>fo=0:</strong> A DMARC error report is created if SPF &amp; DKIM fail to be authenticated. 0 is the default value. Others are 1, d and s. 1 is if either one fails, to generate a record. d if the signature failed evaluation. s if SPF evaluation failed.</p>
<p><strong>rf=afrf:</strong> The formatting for the message failure reports. afrf is the only supported value at the point of this writing.</p>
<p><strong>ri=86400:</strong> How many seconds passed between sending the report to the sender. 86400 is default which is 24 hours or 1 day. Many of the major mailbox providers such as Gmail, Yahoo, etc. will send more than one report a day.</p>
<p><strong>TTL = 1 hour</strong> (or 3600 seconds): Time-To-Live, or how often this should expire. If you were to change e-mail servers, you would be glad that there is only a maximum gap of 1 hour of not being authenticated.</p>
<p>And that is how you properly authenticate your e-mails. I hope this took some of the mystery and complication out for you. You will be on your way of not getting those troublesome kickbacks from your mailer-daemon anymore!</p>
<hr>
<p><strong>Author:</strong></p>
<p>Andreas Lopez — <a target="_blank" href="https://www.linkedin.com/in/andreaslopez/">https://www.linkedin.com/in/andreaslopez/</a></p>
<p><strong>Editors:</strong></p>
<p>Stevan Pupavac — <a target="_blank" href="https://www.linkedin.com/in/stevan-pupavac/">https://www.linkedin.com/in/stevan-pupavac/</a></p>
<p>Frederick Alcantara — <a target="_blank" href="https://www.linkedin.com/in/frederick-alcantara/">https://www.linkedin.com/in/frederick-alcantara/</a></p>
<p><strong>Sources:</strong></p>
<ol>
<li>GoDaddy Screenshots by DMARCanalyzer.com: <a target="_blank" href="https://www.dmarcanalyzer.com/dmarc/dmarc-record-setup-guides/dmarc-setup-guide-godaddy/">https://www.dmarcanalyzer.com/dmarc/dmarc-record-setup-guides/dmarc-setup-guide-godaddy/</a></li>
</ol>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to build a stats-driven widget to share your blog posts ]]>
                </title>
                <description>
                    <![CDATA[ By Anna Su** Build a serverless widget to promote your most popular posts that works with Wordpress, Gatsby, Jekyll and eveything else. What if you wanted to share your most popular blog posts via a widget that could be put on external sites, be it y... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-build-a-stats-driven-widget-to-share-your-blog-posts-8c350b4c7298/</link>
                <guid isPermaLink="false">66c34ff9912fb29c4f156c2f</guid>
                
                    <category>
                        <![CDATA[ Blogging ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #content marketing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Data Science ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 12 Mar 2019 21:13:07 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*hgmkc9mdZD9c2gZiTnKjeQ.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Anna Su**</p>
<h4 id="heading-build-a-serverless-widget-to-promote-your-most-popular-posts-that-works-with-wordpress-gatsby-jekyll-and-eveything-else">Build a serverless widget to promote your most popular posts that works with Wordpress, Gatsby, Jekyll and eveything else.</h4>
<p>What if you wanted to share your most popular blog posts via a widget that could be put on external sites, be it your partner’s blog, your company’s main website, or even an internal dashboard?</p>
<p>If your blog is running on WordPress and you don’t need much flexibility, you might find a plugin that will…</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
