Archive

Archive for the ‘’ Category

Time Travelling CSS With :target

September 9th, 2024 No comments

Checkbox and radio button hacks are the (in)famous trick for creating games using just CSS. But it turns out that other elements based on user input can be hacked and gamified. There are very cool examples of developers getting creative with CSS games based on the :hover pseudo-class, and even other games based on the :valid pseudo-class.

What I’ve found, though, is that the :target pseudo-class seems relatively unexplored territory in this area of CSS hacking. It’s an underrated powerful CSS feature when you think about it: :target allows us to style anything based on the selected jump link, so we have a primitive version of client-side routing built into the browser! Let’s go mad scientist with it and see where that takes us.

Unbeatable AI in CSS

Did I type those words together? Are we going to hack CSS so hard that we hit the singularity? Try to beat the stylesheet below at Tic Tac Toe and decide for yourself.

CodePen Embed Fallback

The stylesheet will sometimes allow the game to end in a draw, so you at least have a smidge of hope.

No need to worry! CSS hasn’t gone Skynet on us yet. Like any CSS hack, the rule of thumb to determine whether a game is possible to implement with CSS is the number of possible game states. I learned that when I was able to create a 4×Sudoku solver but found a 9×9 version pretty darn near impossible. That’s because CSS hacks come down to hiding and showing game states based on selectors that respond to user input.

Tic Tac Toe has 5,478 legal states reachable if X moves first and there’s a famous algorithm that can calculate the optimal move for any legal state. It stands to reason, then, that we can hack together the Tic Tac Toe game completely in CSS.

OK, but how?

In a way, we are not hacking CSS at all, but rather using CSS as the Lord Almighty intended: to hide, show, and animate stuff. The “intelligence” is how the HTML is generated. It’s like a “choose your own adventure” book of every possible state in the Tic Tac Toe multiverse with the empty squares linked to the optimal next move for the computer.

We generate this using a mutant version of the minimax algorithm implemented in Ruby. And did you know that since CodePen supports HAML (which supports Ruby blocks), we can use it secretly as a Ruby playground? Now you do.

Each state our HAML generates looks like this in HTML:


<div class="b" id="--OOX----">
  <svg class="o s">
    <circle></circle>
  </svg>

  <a class="s" href="#OXOOX----">
    <div></div>
  </a>

  <svg class="o s">
    <circle class="c"></circle>
  </svg>

  <svg class="o s">
    <circle class="c"></circle>
  </svg>

  <div class="x"></div>

  <a class="s" href="#O-OOXX---">
    <div></div>
  </a>

  <a class="s" href="#O-OOX-X--">
    <div></div>
  </a>

  <a class="s" href="#O-OOX--X-">
    <div></div>
  </a>

  <a class="s" href="#O-OOX---X">
    <div></div>
  </a>
</div>

With a sprinkling of surprisingly straightforward CSS, we will display only the currently selected game state using :target selectors. We’ll also add a .c class to historical computer moves — that way, we only trigger the handwriting animation for the computer’s latest move. This gives the illusion that we are only playing on a single gameboard when we are, in reality, jumping between different sections of the document.

/* Game's parent container */
.b, body:has(:target) #--------- {
  /* Game states */
  .s {
    display: none;
  }
}

/* Game pieces with :target, elements with href */
:target, #--------- {
  width: 300px;
  height: 300px; /
  left: calc(50vw - 150px);
  top: calc(50vh - 150px);
  background-image: url(/path/to/animated/grid.gif);
  background-repeat:  no-repeat;
  background-size: 100% auto;
  
  /* Display that game state and bring it to the forefront  */
  .s {
    z-index: 1;
    display: inline-block;
  }
  
  /* The player's move */
  .x {
    z-index: 1;
    display: inline-block;
    background-image: url("data:image/svg+xml [...]"); /** shortened for brevity **/ 
    height: 100px;
    width: 100px;
  }
  
  /* The browser's move */
  circle {
    animation-fill-mode: forwards;
    animation-name: draw;
    animation-duration: 1s;
    
    /* Only animate the browser's latest turn */
    &.c {
      animation-play-state: paused;
      animation-delay: -1s;
    }
  }
}

When a jump link is selected by clicking an empty square, the :target pseudo-class displays the updated game state(.s), styled so that the computer’s precalculated response makes an animated entrance (.c).

Note the special case when we start the game: We need to display the initial empty grid before the user selects any jump link. There is nothing to style with :target at the start, so we hide the initial state — with the:body:has(:target) #--------- selector — once a jump link is selected. Similarly, if you create your experiments using :target you’ll want to present an initial view before the user begins interacting with your page. 

Wrapping up

I won’t go into “why” we’d want to implement this in CSS instead of what might be an “easier” path with JavaScript. It’s simply fun and educational to push the boundaries of CSS. We could, for example, pull this off with the classic checkbox hack — someone did, in fact.

Is there anything interesting about using :target instead? I think so because:

  • We can save games in CSS! Bookmark the URL and come back to it anytime in the state you left it.
  • There’s a potential to use the browser’s Back and Forward buttons as game controls. It’s possible to undo a move by going Back in time or replay a move by navigating Forward. Imagine combining :target with the checkbox hack to create games with a time-travel mechanic in the tradition of Braid.
  • Share your game states. There’s the potential of Wordle-like bragging rights. If you manage to pull off a win or a draw against the unbeatable CSS Tic Tac Toe algorithm, you could show your achievement off to the world by sharing the URL.
  • It’s completely semantic HTML. The checkbox hack requires you to hide checkboxes or radio buttons, so it will always be a bit of a hack and painful horse-trading when it comes to accessibility. This approach arguably isn’t a hack since all we are doing is using jump links and divs and their styling. This may even make it — dare I say —“easier” to provide a more accessible experience. That’s not to say this is accessible right out of the box, though.

Time Travelling CSS With :target originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Sticky Headers And Full-Height Elements: A Tricky Combination

September 9th, 2024 No comments

Quite a fun article I worked on with Philip Braunen. Do you know that little bit of elasticity you get when scrolling beyond the viewport when browsing the web on a mobile device? iPhone calls it a “rubber-banding” effect. And you know it’s cool because Apple has previously fought to hold a copyright on it.

Anyway, Philip wrote into Smashing Magazine with a clever approach to mimic rubber-banding in CSS — not only for non-mobile UI but also applied to any sort of container you like.

But what about sticky headers and footers? If those have to be pinned to the container’s block edges, then how in heck do we include them in the rubber banding? Phillip’s trick is an extra div before the header, though we can get more concise markup using pseudos instead.


Sticky Headers And Full-Height Elements: A Tricky Combination originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Quick Hit #17

September 9th, 2024 No comments

“Wrapping the


Quick Hit #17 originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Brand Storytelling in Field Services: Connecting with Customers Through Narrative

September 9th, 2024 No comments

Did you know that 55% of consumers are more likely to buy from a brand if they love its story? Or that businesses with a strong brand story have a 22% higher valuation than those without? These statistics highlight a powerful truth in the field services industry: storytelling matters.

Brand storytelling has emerged as a game-changer in an environment in which 89% of companies compete primarily based on customer experience, making brand storytelling increasingly important in business today. No longer simply fixing items or providing services; now it’s about building lasting connections and forging relationships that transcend simple transactions.

Let’s examine why brand storytelling in field services is vital and how it can transform your business.

Why Stories Matter in Field Services

Field services is all about solving customer needs and improving lives, so our priority should be doing an outstanding job and satisfying customers – but there’s another aspect which shouldn’t be neglected: telling your brand’s story.

Real-life Example

  • HVAC business owner struggling to differentiate from competitors
  • Started sharing his business’s journey
  • Results:
    • Customers saw the business differently
    • More loyal customers
    • Increased word-of-mouth referrals

How to Tell a Good Brand Story

Key Elements

  • How You Started: Share your beginning (e.g., starting in a garage, one van and a toolbox)
  • What You Believe In: Highlight company values (e.g., eco-friendliness, community involvement)
  • Success Stories: Share how you’ve helped customers
  • Your Future Plans: Share your big dreams (e.g., new services, new technology)

How Stories Help Connect with Customers

Building Trust

  • Importance of trust in field services
  • Open and honest storytelling builds trust
  • Trusted businesses often chosen over cheaper alternatives

Creating Emotional Connections

  • Better memory retention of stories vs. service lists
  • Emotional connections can turn one-time customers into repeat clients

Standing Out

  • Differentiation in a crowded market
  • Use your story in marketing to be memorable

What’s Coming Next in Brand Storytelling

Current trends show that 55% of people are more likely to buy from a brand if they love its story, and 44% will share the brand story with others. As we use more online marketing, businesses that tell good stories on social media and blogs will have an advantage. 

Another emerging trend is personalized storytelling, which means sharing stories that fit different groups of customers.

How to Start Telling Your Brand Story

Steps to Begin

  1. Think About Your Journey: Reflect on big moments, problems faced, and wins
  2. Get Your Team Involved: Include your team in storytelling
  3. Share Your Story Everywhere: Maintain consistency across all platforms
  4. Let Customers Join In: Encourage customers to share their experiences

Field Promax: Enhancing Your Brand Story Through Efficiency

Field Promax is a comprehensive field service management software that can significantly support and enhance your brand storytelling efforts.

Key Features

  • Scheduling optimization
  • Mobile app for technicians
  • Automated billing and invoicing
  • Real time tracking and reporting

Supporting Your Brand Story

  1. Improved Customer Experience
    • Faster response times
    • More accurate appointment scheduling
    • Seamless communication between office and field
  2. Professionalism and Reliability
    • Digital documentation and signatures
    • Prompt and accurate invoicing
    • Consistent service delivery
  3. Data-Driven Storytelling
    • Use analytics to showcase your efficiency
    • Share improved metrics as part of your success story
  4. Empowering Your Team
    • Technicians equipped with necessary information
    • Reduced administrative burden allows focus on customer interaction
  5. Adapting to Modern Expectations
    • Demonstrates your commitment to using cutting-edge technology
    • Aligns with stories of continuous improvement and innovation

Simple Tips for Brand Storytelling in Field Service Businesses

1. Craft a Signature Service Style

  • Develop a unique approach to service delivery
  • Create catchy names for your service packages

2. Highlight Your Tools and Tech

  • Showcase the specialized equipment you use
  • Explain how your tools benefit customers

3. Feature Your Team’s Expertise

  • Share employee certifications and training
  • Create “meet the expert” profiles for your technicians

4. Document Your Problem-Solving Process

  • Use before-and-after imagery of your work
  • Create a step-by-step visual guide of your service process

5. Celebrate Local Connections

  • Highlight partnerships with other local businesses
  • Share stories of community involvement and impact

6. Develop a Mascot or Character

  • Create a memorable mascot representing your services
  • Use the character in marketing materials and social media

7. Showcase Your Environmental Initiatives

  • Highlight any eco-friendly practices or products
  • Share your company’s sustainability goals and progress

8. Create a “Day in the Life” Series

  • Follow a technician through a typical workday
  • Share behind-the-scenes glimpses of your operations

9. Establish a Unique Company Tradition

  • Create an annual event or challenge related to your services
  • Share stories and photos from these traditions

10. Develop a Customer Recognition Program

  • Highlight “Customer of the Month” stories
  • Share testimonials in creative, visual formats

Remember, your brand story is what makes you special. It’s not just about fixing things or providing services. It’s about connecting with people and showing them why your business is awesome. By incorporating tools like Field Promax into your operations, you’re not just working faster – you’re making more time to really talk to your customers and reinforce the promises your brand story makes.

Conclusion

In today’s competitive field services landscape, a compelling brand story can be the difference between being just another service provider and becoming a trusted partner in your customers’ lives. It helps build trust, create emotional connections, and set you apart from the competition. As you move forward, consider how you can weave your unique story into every aspect of your business, from your marketing materials to your daily interactions with customers. With a strong brand story and the right tools to support it, you’ll be well-positioned to create lasting relationships and drive your business to new heights of success.

The post Brand Storytelling in Field Services: Connecting with Customers Through Narrative appeared first on noupe.

Categories: Others Tags:

20 Best New Websites, September 2024

September 9th, 2024 No comments

Welcome to this collection of what has been catching our eye on the web over the past month.

Categories: Designing, Others Tags:

How to Skyrocket Your Profits with Mobile Affiliate Marketing?

September 9th, 2024 No comments

Mobile devices have revolutionized the dynamics of human interaction with the digital world drastically. They are now one of the essential things in our lives, determining various aspects like shopping and entertainment among others. Similarly, there is a surge in mobile affiliate marketing due to this shift in consumer behavior which has created a lucrative opportunity to enrich both businesses and individuals.

As mobile users are constantly rising, mobile advertising campaigns have successfully

driven the rapid growth of the affiliate marketing industry. Therefore, this sector provides a

great chance for affiliate marketers to reap significant rewards as it is expected in 2024, the industry will grow to $15.7 billion by 2024.

Key Strategies for Mobile Affiliate Marketing Success

To thrive in the field of mobile affiliate marketing, you must use extensive strategies to grasp the unique features of mobile gadgets and its user preferences. Focusing on these areas will enable you to optimize and refine your campaigns for maximum effectiveness as well as generate substantial returns:

  1. Deep Dive into Mobile Optimization

Websites and content that is optimized for mobile devices is very important for keeping mobile users engaged successfully, ultimately leading to increased conversion rates and improved user experiences. 

  • Responsive Design: Make sure that your website fits different screen sizes and orientations to deliver an uninterrupted user experience.
  • Mobile-Specific Content: Create mobile device specific content that meet the user preferences, keeping in mind their shorter attention spans as well as limited size of screens.
  • Image Optimization: All images should be compressed to reduce load times on mobile devices and improve their performance.
  • Simplified Navigation: Use navigation menus that are easy to read on small screens but give concise information about where each menu item leads to.
  • Touch-Friendly Elements: Design other aspects of your site that can be tapped and work optimally with touchscreen mobile phones.
  1. Leveraging Mobile-Specific Channels

Mobile devices offer various channels for reaching and engaging the target audience. By the effective use of these channels, you may expand your reach and increase your odds of succeeding.

  • Social Media: Use social media platforms like Instagram, TikTok or Snapchat to reach mobile users with some engaging content, particularly for services like food delivery apps and taxi apps.
  • SMS Marketing: Send targeted text messages promoting your affiliate offers directly to their mobile devices to boost conversions.
  • Mobile Apps: Create your own application or collaborate with existing ones to engage a target audience and offer them a better experience.
  • Mobile Messaging Apps: Apps like WhatsApp and Telegram can also be used as platforms for interacting with customers and providing personalized recommendations.
  1. Utilizing Mobile-First Analytics

Mobile-specific analytical tools should be used to make fact-based choices and enhance mobile affiliate marketing campaigns. Analyzing and monitoring mobile traffic, user patterns as well as conversions would provide insights needed for improvement.

  • Google Analytics: This tool helps to track user behavior, mobile traffic and conversions thus providing important insights for optimization.
  • Heatmaps: They are used to visualize the areas where mobile users click or scroll on these websites subsequently indicating the areas of focus and some recommendations for improvement.
  • User Testing: Carry out user testing on mobile devices so as to identify any usability issues and collect feedback regarding your site or application.
  • A/B Testing: Use various designs and content specifically tailored for mobile users to increase the chances of attracting them and figure out what works best for them.
  1. Offering Mobile-Exclusive Incentives

By giving incentives that are specifically for mobile users, you will be able to entice them as well as promote sales.

  • Special Discounts: By offering exclusive discounts or promotions to mobile users, it enhances their purchasing power.
  • Mobile-Only Content: Develop content that only mobile users can access like exclusive videos, write-ups, or other interactive experiences
  • Mobile-Specific Features: Introduce distinct and custom features for mobile users specifically in your app, such as any touchscreen elements.
  • Gamification: Integrate video game-like elements in your marketing campaigns to promote engagement and customer loyalty.
  1. Mobile-Focused Business Partnerships

Collaboration with mobile-focused companies can assist you in attaining a broader audience and expand your reach in the mobile ecosystem.

  • App Developers: Work together with app developers so that you can promote your affiliate offers through their applications to your target audience.
  • Mobile Influencers: Partner with influencers having a large fan following in the mobile market to promote your products or services.
  • Mobile Marketing Agencies: Work alongside mobile marketing agencies when it comes developing campaigns tailored to the mobile landscape and employ their expertise.
  • Mobile Payment Providers: Partner up with providers of mobile payments to offer convenient and secure payment options for your customers, ultimately improving the shopping experience on mobiles.

Additional Tips for Mobile Affiliate Marketing Success

To ensure that you get the most out of mobile affiliate marketing, below are other strategies to consider:

  1. Stay Updated with Trends

The latest technologies and trends are quickly changing the mobile landscape. To keep your campaigns updated and effective, you should consider 5G, AR and AI which are the latest trends in mobile marketing.

  1. Prioritize User Experience

User experience plays an important role driving conversions and building customer loyalty. Therefore, it is important that your website or app is easy to use, looks good visually, as well as optimized for small-screen devices. Factors such as loading time, proper calls-to-action and user-centric design should not be ignored either.

  1. Test And Iterate

To find out what works best for their audience it is essential for marketers to constantly test and adapt their mobile marketing campaigns. It could entail trying out various strategies, messages or offers to improve outcomes. Using A/B testing helps one compare different versions of a campaign thereby evaluating its effectiveness by measuring some of its key performance indicators “KPI”.

  1. Measure and Analyze

Track your performance and analyze your data, so you can identify opportunities for improvement. Use analytical tools to understand user behavior, including demographics, interests and buying patterns. This information will help you to customize your campaigns better and boost the ROI.

  1. Establish a Good Reputation

It is important to build trust with your audience in the highly competitive field of mobile affiliate marketing. Disclose any affiliate relationships you have, recommend products honestly and objectively, as well as keeping promises.

  1. Collaborate with Other Affiliates 

Networking with other participants in this field can provide a wealth of experience, partnership opportunities and support that may prove useful. To connect with others who share your interests, think about joining online forums that deal with affiliate marketing.

  1. Diversify Your Affiliate Portfolio

Do not depend only on a single affiliate program. To reduce the risk while raising potential profits, broaden your scope. Take some time to research different niches for products affiliated with these programs so you can ensure that they fit your interests and expertise.

  1. Stay Patient and Persistent

Making money from mobile affiliate marketing business takes time and sweat. Have a lot of patience because it will take months before any fruits can be seen; therefore don’t allow frustrations to get to you easily after a minor setback. It’s all about constant learning, adapting to new situations and improving strategies for long-term success.

Final Thoughts

To tap into the vast potential of mobile affiliate marketing and generate huge profits, it is crucial that you make use of the tactics discussed within this article. Make sure to prioritize mobile optimization, use mobile-specific channels, turn the power of analytics in your favor, offer exclusive incentives as well as partner with businesses that focus on this area.

Maximize your success by staying updated with mobile trends, focusing on user experience, testing the campaigns repeatedly, as well as measure and analyze what you generate. Therefore, if you follow these rules with precision then expect long-term success as far as the dynamics of mobile affiliate marketing are concerned.

Featured image by SpaceX on Unsplash

The post How to Skyrocket Your Profits with Mobile Affiliate Marketing? appeared first on noupe.

Categories: Others Tags:

Cultivating Brand Success: Leveraging LLC Structure for Effective Marketing Strategies

September 9th, 2024 No comments

Entrepreneurs, startup founders, and small business owners all share a common goal: building a thriving brand. But in today’s competitive landscape, achieving success requires more than just a great product or service. You need effective marketing strategies that resonate with your target audience.

Something few entrepreneurs consider is that the structure you choose for your business can influence the effectiveness of your marketing efforts, making your life easier or harder depending on the stage of growth your business is in.

In this article, we’ll explore how a Limited Liability Company (LLC) structure empowers you to cultivate brand success through well-defined marketing strategies.

The Limited Liability Company (LLC) structure

An LLC offers a business structure that combines the flexibility of a sole proprietorship with the personal liability protection of a corporation. This means you have more control over your business operations compared to a corporation while also shielding your personal assets from business debts and lawsuits.

Benefits of forming an LLC

LLCs are popular business structures for small and medium-sized businesses for the following reasons:

  • Limited Liability Protection: This is one of the LLS structure’s main advantages. Personal liability protection means your personal finances are safeguarded from business liabilities, offering peace of mind when investing in new initiatives.
  • Pass-Through Taxation: LLCs avoid double taxation for their members (corporate tax and personal income tax). Profits and losses “pass through” the business to the owner’s personal tax returns. This simplifies tax filing and can offer better tax efficiency than other business structures, depending on your individual tax situation.
  • Flexibility and Management: LLCs offer more management flexibility than corporations. Decision-making is streamlined, allowing for quicker adaptation to market changes. There’s a less complex corporate hierarchy to navigate, empowering you to seize fleeting marketing opportunities or respond to sudden shifts in consumer preferences.

The LLC structure’s downsides

Despite the advantages, LLCs do have some cons:

  • Less Credibility: Compared to corporations, LLCs may be perceived as less established, especially when dealing with larger companies or securing significant funding. This can be a hurdle to overcome, particularly in industries where a corporate image is important.
  • Profit Sharing: Profits and losses pass through to the owners, potentially impacting their personal tax brackets. This can be a consideration, especially for businesses with high profits.

Steps to form an LLC

The process for forming an LLC varies by state but is usually quite simple and streamlined (especially compared to corporations). In many US states, you can complete the whole process online.

Forming an LLC generally involves:

  1. Filing Articles of Organization with your state’s Secretary of State.
  2. Paying a filing fee.

Some states may also require filing an Operating Agreement, a private document defining ownership and profit sharing, outlining management structure, and detailing voting rights, among other specifics of the business.

Though a simple process, consulting with a lawyer or legal service to ensure you complete the process accurately is advisable.

What is a marketing strategy?

A marketing strategy defines your overall approach to reaching your target audience and achieving your business goals. It outlines your brand messaging, target markets, marketing mixes, and budget allocation. It’s the foundation upon which you build your marketing efforts.

The LLC structure enables better marketing strategies. To understand why and how, we must first clearly separate a marketing strategy from two related terms wrongly used interchangeably: a marketing plan and marketing tactics.

Marketing strategy vs. marketing plan vs. tactics

You can think of your marketing strategy as the “big picture” roadmap to connect with your potential customers and reach your marketing goals.

A marketing plan, on the other hand, translates that strategy into specific, actionable steps. It details tactics, timelines, and performance metrics for your marketing initiatives, forming the nitty-gritty that brings your marketing strategy to life.

The tactics outlined in your marketing plan are the specific actions you take to execute your strategy. For example, in a digital marketing strategy, tactics could include social media campaigns, email marketing, content creation,  and others.

How the LLC structure enables more effective marketing strategies

The unique advantages of an LLC structure can significantly enhance your marketing efforts in different ways:

Increased flexibility

LLCs are more flexible legal entities than other structures like corporations. This flexibility allows businesses to create and promote a unique brand identity, enabling them to tailor marketing messages to specific target audiences, increasing resonance and engagement.

An LLC structure also makes it less cumbersome to form partnerships and collaborations with other businesses, influencers, or organizations. By leveraging these partnerships, LLCs can extend their reach, access new customer segments, and benefit from shared resources, amplifying the impact of their marketing initiatives.

A more agile structure

LLCs’ lower organizational and hierarchical complexity means there’s less momentum to overcome when changing direction. In other words, marketing virtual assistants can change and implement marketing strategies with minimal bureaucracy.

This agility is crucial for seizing fleeting opportunities and addressing challenges promptly, helping businesses stay ahead of competitors and maintain relevance in the eyes of consumers.

Limited liability protection

Knowing your personal assets are shielded from business liabilities allows for bolder marketing investments. You can confidently allocate resources to advertising, promotions, and other marketing activities critical for brand recognition, something you may be hesitant to do if you’re running your business as a sole proprietorship.

In short, the financial freedom brought about by personal liability protection empowers you to experiment with a broader range of marketing strategies without the fear of risking your personal finances.

Smaller size equals better connection with customers

Many LLCs operate on a local scale, fostering a closer relationship with their customer base. This allows them to gather valuable insights into consumer preferences and tailor marketing campaigns that speak directly to their target audience.

This proximity also allows them to participate in community events and support local causes. Such involvement with the community not only fosters customer loyalty but also enhances brand reputation, leading to more effective word-of-mouth marketing.

More streamlined decision-making

In LLC structures, decision-making isn’t bogged down by complex corporate hierarchies and bureaucracy. This agility enables faster adjustment to market changes and execution of novel marketing tactics.

Real-world LLC marketing success stories

Here are some inspiring examples of how LLCs have leveraged their structure to develop winning marketing strategies:

SpaceX’s  digital marketing strategy

SpaceX, the famous aerospace manufacturer and space transportation services company founded by Elon Musk, operates as an LLC. This unicorn startup is now worth $175 billion. It’s second only to Boeing in the aerospace industry, making it one of the clearest examples of how an LLC can grow to become wildly successful.

SpaceX’s marketing strategy has been unconventional and highly effective. They’ve used social media platforms like X (formerly Twitter) to create a buzz around their ambitious space exploration endeavors, generating excitement and attracting a passionate following.

A post on X by SpaceX
Source

Elon Musk himself is a passionate CEO who frequently posts on social media about the company’s latest successes. This social-media-driven approach perfectly complements the LLC structure’s flexibility and allows SpaceX and its directives to directly engage with its target audience, generating brand awareness and increasing brand reputation.

Airbnb’s affiliate program

Airbnb, the hospitality service that allows people to list, rent, and find vacation rentals, initially started as an LLC. Airbnb’s key marketing strategy revolves around affiliate marketing. Its innovative affiliate program, where travel bloggers and websites could earn commissions by promoting Airbnb listings, is a prime example of how LLCs can leverage partnerships for effective marketing.

Airbnb's dashboard
Source

In fact, LLC is a recommended business structure for affiliate marketing companies. This strategy allowed Airbnb to tap into a vast network of influencers and reach a wider audience without incurring significant upfront marketing costs.

The Bottom Line

The LLC structure offers a unique blend of flexibility, agility, and financial security that can empower your business to develop and implement highly effective marketing strategies. By understanding the advantages of an LLC and how it aligns with your marketing goals, you can unlock significant growth potential for your brand.

Remember, a well-defined marketing strategy is the cornerstone of building brand success, and the LLC structure provides a solid foundation upon which to build your marketing efforts.

Featured image by Pixabay

The post Cultivating Brand Success: Leveraging LLC Structure for Effective Marketing Strategies appeared first on noupe.

Categories: Others Tags:

How To Create A Weekly Google Analytics Report That Posts To Slack

September 6th, 2024 No comments

Google Analytics is great, but not everyone in your organization will be granted access. In many places I’ve worked, it was on a kind of “need to know” basis.

In this article, I’m gonna flip that on its head and show you how I wrote a GitHub Action that queries Google Analytics, generates a top ten list of the most frequently viewed pages on my site from the last seven days and compares them to the previous seven days to tell me which pages have increased in views, which pages have decreased in views, which pages have stayed the same and which pages are new to the list.

The report is then nicely formatted with icon indicators and posted to a public Slack channel every Friday at 10 AM.

Not only would this surfaced data be useful for folks who might need it, but it also provides an easy way to copy and paste or screenshot the report and add it to a slide for the weekly company/department meeting.

Here’s what the finished report looks like in Slack, and below, you’ll find a link to the GitHub Repository.

GitHub

To use this repository, follow the steps outlined in the README.

Prerequisites

To build this workflow, you’ll need admin access to your Google Analytics and Slack Accounts and administrator privileges for GitHub Actions and Secrets for a GitHub repository.

Customizing the Report and Action

Naturally, all of the code can be changed to suit your requirements, and in the following sections, I’ll explain the areas you’ll likely want to take a look at.

Customizing the GitHub Action

The file name of the Action weekly-analytics.report.yml isn’t seen anywhere other than in the code/repo but naturally, change it to whatever you like, you won’t break anything.

The name and jobs: names detailed below are seen in the GitHub UI and Workflow logs.

The cron syntax determines when the Action will run. Schedules use POSIX cron syntax and by changing the numbers you can determine when the Action runs.

You could also change the secrets variable names; just make sure you update them in your repository Settings.

# .github/workflows/weekly-analytics-report.yml

name: Weekly Analytics Report

on:
  schedule:
    - cron: '0 10 * * 5' # Runs every Friday at 10 AM UTC
  workflow_dispatch: # Allows manual triggering

jobs:
  analytics-report:
    runs-on: ubuntu-latest

    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
      GA4_PROPERTY_ID: ${{ secrets.GA4_PROPERTY_ID }}
      GOOGLE_APPLICATION_CREDENTIALS_BASE64: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS_BASE64 }}

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'

      - name: Install dependencies
        run: npm install

      - name: Run the JavaScript script
        run: node src/services/weekly-analytics.js

Customizing the Google Analytics Report

The Google Analytics API request I’m using is set to pull the fullPageUrl and pageTitle for the totalUsers in the last seven days, and a second request for the previous seven days, and then aggregates the totals and limits the responses to 10.

You can use Google’s GA4 Query Explorer to construct your own query, then replace the requests.

// src/services/weekly-analytics.js#L75

const [thisWeek] = await analyticsDataClient.runReport({
  property: `properties/${process.env.GA4_PROPERTY_ID}`,
  dateRanges: [
    {
      startDate: '7daysAgo',
      endDate: 'today',
    },
  ],
  dimensions: [
    {
      name: 'fullPageUrl',
    },
    {
      name: 'pageTitle',
    },
  ],
  metrics: [
    {
      name: 'totalUsers',
    },
  ],
  limit: reportLimit,
  metricAggregations: ['MAXIMUM'],
});

Creating the Comparisons

There are two functions to determine which page views have increased, decreased, stayed the same, or are new.

The first is a simple reduce function that returns the URL and a count for each.

const lastWeekMap = lastWeekResults.reduce((items, item) => {
  const { url, count } = item;
  items[url] = count;
  return items;
}, {});

The second maps over the results from this week and compares them to last week.

// Generate the report for this week
const report = thisWeekResults.map((item, index) => {
  const { url, title, count } = item;
  const lastWeekCount = lastWeekMap[url];
  const status = determineStatus(count, lastWeekCount);

  return {
    position: (index + 1).toString().padStart(2, '0'), // Format the position with leading zero if it's less than 10
    url,
    title,
    count: { thisWeek: count, lastWeek: lastWeekCount || '0' }, // Ensure lastWeekCount is displayed as '0' if not found
    status,
  };
});

The final function is used to determine the status of each.

// Function to determine the status
const determineStatus = (count, lastWeekCount) => {
  const thisCount = Number(count);
  const previousCount = Number(lastWeekCount);

  if (lastWeekCount === undefined || lastWeekCount === '0') {
    return NEW;
  }

  if (thisCount > previousCount) {
    return HIGHER;
  }

  if (thisCount < previousCount) {
    return LOWER;
  }

  return SAME;
};

I’ve purposely left the code fairly verbose, so it’ll be easier for you to add console.log to each of the functions to see what they return.

Customizing the Slack Message

The Slack message config I’m using creates a heading with an emoji, a divider, and a paragraph explaining what the message is.

Below that I’m using the context object to construct a report by iterating over comparisons and returning an object containing Slack specific message syntax which includes an icon, a count, the name of the page and a link to each item.

You can use Slack’s Block Kit Builder to construct your own message format.

// src/services/weekly-analytics.js#151 

    const slackList = report.map((item, index) => {
      const {
        position,
        url,
        title,
        count: { thisWeek, lastWeek },
        status,
      } = item;

      return {
        type: 'context',
        elements: [
          {
            type: 'image',
            image_url: ${reportConfig.url}/images/${status},
            alt_text: 'icon',
          },
          {
            type: 'mrkdwn',
            text: ${position}.  &lt;${url}|${title}&gt; | *${x${thisWeek}}`* / x${lastWeek}`,
          },
        ],
      };
    });

Before you can run the GitHub Action, you will need to complete a number of Google, Slack, and GitHub steps.

Ready to get going?

Creating a Google Cloud Project

Head over to your Google Cloud console, and from the dropdown menu at the top of the screen, click Select a project, and when the modal opens up, click NEW PROJECT.

Project name

On the next screen, give your project a name and click CREATE. In my example, I’ve named the project smashing-weekly-analytics.

Enable APIs & Services

In this step, you’ll enable the Google Analytics Data API for your new project. From the left-hand sidebar, navigate to APIs & Services > Enable APIs & services. At the top of the screen, click + ENABLE APIS & SERVICES.

Enable Google Analytics Data API

Search for “Google analytics data API,” select it from the list, then click ENABLE.

Create Credentials for Google Analytics Data API

With the API enabled in your project, you can now create the required credentials. Click the CREATE CREDENTIALS button at the top right of the screen to set up a new Service account.

A Service account allows an “application” to interact with Google APIs, providing the credentials include the required services. In this example, the credentials grant access to the Google Analytics Data API.

Service Account Credentials Type

On the next screen, select Google Analytics Data API from the dropdown menu and Application data, then click NEXT.

Service Account Details

On the next screen, give your Service account a name, ID, and description (optional). Then click CREATE AND CONTINUE.

In my example, I’ve given my service account a name and ID of smashing-weekly-analytics and added a short description that explains what the service account does.

Service Account Role

On the next screen, select Owner for the Role, then click CONTINUE.

Service Account Done

You can leave the fields blank in this last step and click DONE when you’re ready.

Service Account Keys

From the left-hand navigation, select Service Accounts, then click the “more dots” to open the menu and select Manage keys.

Service Accounts Add Key

On the next screen, locate the KEYS tab at the top of the screen, then click ADD KEY and select Create new key.

Service Accounts Download Keys

On the next screen, select JSON as the key type, then click CREATE to download your Google Application credentials .json file.

Google Application Credentials

If you open the .json file in your code editor, you should be looking at something similar to the one below.

In case you’re wondering, no, you can’t use an object as a variable defined in an .env file. To use these credentials, it’s necessary to convert the whole file into a base64 string.

Note: I wrote a more detailed post about how to use Google Application credentials as environment variables here: “How to Use Google Application .json Credentials in Environment Variables.”

From your terminal, run the following: replace name-of-creds-file.json with the name of your .json file.

cat name-of-creds-file.json | base64

If you’ve already cloned the repo and followed the Getting started steps in the README, add the base64 string returned after running the above and add it to the GOOGLE_APPLICATION_CREDENTIALS_BASE64 variable in your .env file, but make sure you wrap the string with double quotation makes.

GOOGLE_APPLICATION_CREDENTIALS_BASE64="abc123"

That completes the Google project side of things. The next step is to add your service account email to your Google Analytics property and find your Google Analytics Property ID.

Google Analytics Properties

Whilst your service account now has access to the Google Analytics Data API, it doesn’t yet have access to your Google Analytics account.

Get Google Analytics Property ID

To make queries to the Google Analytics API, you’ll need to know your Property ID. You can find it by heading over to your Google Analytics account. Make sure you’re on the correct property (in the screenshot below, I’ve selected paulie.dev — GA4).

Click the admin cog in the bottom left-hand side of the screen, then click Property details.

On the next screen, you’ll see the PROPERTY ID in the top right corner. If you’ve already cloned the repo and followed the Getting started steps in the README, add the property ID value to the GA4_PROPERTY_ID variable in your .env file.

Add Client Email to Google Analytics

From the Google application credential .json file you downloaded earlier, locate the client_email and copy the email address.

In my example, it looks like this: smashing-weekly-analytics@smashing-weekly-analytics.iam.gserviceaccount.com.

Now navigate to Property access management from the left hide side navigation and click the + in the top right-hand corner, then click Add users.

On the next screen, add the client_email to the Email addresses input, uncheck Notify new users by email, and select Viewer under Direct roles and data restrictions, then click Add.

That completes the Google Analytics properties section. Your “application” will use the Google application credentials containing the client_email and will now have access to your Google Analytics account via the Google Analytics Data API.

Slack Channels and Webhook

In the following steps, you’ll create a new Slack channel that will be used to post messages sent from your “application” using a Slack Webhook.

Creating The Slack Channel

Create a new channel in your Slack workspace. I’ve named mine #weekly-analytics-report. You’ll need to set this up before proceeding to the next step.

Creating a Slack App

Head over to the slack api dashboard, and click Create an App.

On the next screen, select From an app manifest.

On the next screen, select your Slack workspace, then click Next.

On this screen, you can give your app a name. In my example, I’ve named my Weekly Analytics Report. Click Next when you’re ready.

On step 3, you can just click Done.

With the App created, you can now set up a Webhook.

Creating a Slack Webhook

Navigate to Incoming Webhooks from the left-hand navigation, then switch the Toggle to On to activate incoming webhooks. Then, at the bottom of the screen, click Add New Webook to Workspace.

On the next screen, select your Slack workspace and a channel that you’d like to use to post messages, too, and click Allow.

You should now see your new Slack Webhook with a copy button. Copy the Webhook URL, and if you’ve already cloned the repo and followed the Getting started steps in the README, add the Webhook URL to the SLACK_WEBHOOK_URL variable in your .env file.

Slack App Configuration

From the left-hand navigation, select Basic Information. On this screen, you can customize your app and add an icon and description. Be sure to click Save Changes when you’re done.

If you now head over to your Slack, you should see that your app has been added to your workspace.

That completes the Slack section of this article. It’s now time to add your environment variables to GitHub Secrets and run the workflow.

Add GitHub Secrets

Head over to the Settings tab of your GitHub repository, then from the left-hand navigation, select Secrets and variables, then click Actions.

Add the three variables from your .env file under Repository secrets.

A note on the base64 string: You won’t need to include the double quotes!

Run Workflow

To test if your Action is working correctly, head over to the Actions tab of your GitHub repository, select the Job name (Weekly Analytics Report), then click Run workflow.

If everything worked correctly, you should now be looking at a nicely formatted list of the top ten page views on your site in Slack.

Finished

And that’s it! A fully automated Google Analytics report that posts directly to your Slack. I’ve worked in a few places where Google Analytics data was on lockdown, and I think this approach to sharing Analytics data with Slack (something everyone has access to) could be super valuable for various people in your organization.

Categories: Others Tags:

Quick Hit #16

September 5th, 2024 No comments

“Never, ever hire for JavaScript framework skills. Instead, interview and hire only for fundamentals like web standards, accessibility, modern CSS, semantic HTML, and Web Components.” — Alex Russell


Quick Hit #16 originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Quick Hit #15

September 5th, 2024 No comments

Almost missed that the WP Twenty Twenty-Five theme was approved a couple weeks ago.


Quick Hit #15 originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags: