<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        
        
        <link rel="alternate" type="application/rss+xml" title="Apache Software Foundation - Data Privacy RSS" href="/rss.xml" />
        <link rel="stylesheet" href="/css/main.css">
        <title></title>
    </head>
    <body>
        <header>
    <div class="header-logo"><a href="/"><img src="/images/asf-logo.png"/></a>
        <div class="header-text">ASF Data Privacy</div>
    </div>

    <nav>
    <label for="show-menu" class="show-menu">Show Menu</label>
	<input type="checkbox" id="show-menu" role="button">
        <ul id="menu">
            <li><a href="/">Home</a></li>
            <li><a href="/policies">Policies</a></li>
            <li>
                <a href="#">Privacy FAQ &#9660;</a>
                <ul class="hidden">
                    <li><a href="/faq/community.html">Community Privacy FAQ</a></li>
                    <li><a href="/faq/committers.html">Committers' Privacy FAQ</a></li>
                    <li><a href="/faq/infrastructure.html">Infrastructure Privacy FAQ</a></li>
                    <li><a href="/faq/software-users.html">Software Users FAQ</a></li>
                </ul>
            </li>
            <li>
                <a href="#">Guides</a>
                <ul class="hidden">
                    <li><a href="/guides/event-photography.html">Event Photos</a></li>
                </ul>
            <li><a href="/matomo">Matomo</a></li>
            <li><a href="http://www.apache.org/foundation/">About the ASF</a></li>
        </ul>
    </nav>
</header>

        <main>
            <h1 id="event-photography">Event Photography</h1>

<h2 id="the-issue">The Issue</h2>

<p>For our upcoming ASF event, we aim to capture audience moments for online publication. How should we proceed?</p>

<h2 id="general-considerations">General Considerations</h2>

<p>Generally, event photographs featuring attendees are acceptable, granted they’ve given their consent. However, some exceptions do exist.</p>

<h2 id="publishing-guidelines">Publishing Guidelines</h2>

<ul>
  <li>Refrain from posting images of individuals not present at your event.</li>
  <li>Avoid sharing photos that capture private moments, such as medical situations, intimate interactions, or inappropriate conduct due to intoxication.</li>
  <li>Do not share images captured outside the event premises.</li>
  <li>Never publish images of minors without obtaining written permission from their legal guardians.</li>
</ul>

<h2 id="publishing-permissions">Publishing Permissions</h2>

<p>You may publish your photos given you have the participants’ consent. While a written consent isn’t necessary, implied or verbal agreement is typically sufficient. It’s essential, however, to substantiate this consent.</p>

<p>We recommend informing your attendees about the photo-taking and publication intentions. Ensure they’re aware of where these images will be published.</p>

<h2 id="gaining-attendee-consent">Gaining Attendee Consent</h2>

<p>There are typically two effective strategies to secure attendee consent, but alternative approaches may be acceptable.</p>

<ol>
  <li>Inform attendees about the photo-taking activity during ticket purchase, as their agreement can be inferred upon purchase.</li>
  <li>Display clear signage at the event venue informing attendees of the photography. The check-in point may be a suitable location for such notification. In this scenario, documenting your efforts by photographing the signage can be beneficial.</li>
</ol>

<h2 id="information-disclosure">Information Disclosure</h2>

<p>Ensure to inform attendees about the event’s photography plans and where the photos will be published. For instance, on <a href="https://photos.apachecon.com/">ApacheCon photos</a> and various social media platforms. Include a contact for photo removal requests, like an email address.</p>

<h2 id="addressing-photo-removal-requests">Addressing Photo Removal Requests</h2>

<p>In case of a removal request, you should obscure or remove the individual from the image by superimposing a black box and erasing the underlying pixels. The entire photo doesn’t need to be removed.</p>

<p>Some exceptions exist where you may not need to remove the image, but these instances must be justified and outweigh the person’s privacy interests. We usually recommend honoring removal requests unless there are compelling reasons not to. If in doubt, consult privacy@apache.org or, for sensitive matters, vp-privacy@apache.org directly.</p>

<h2 id="sample-photography-notice-email">Sample Photography Notice Email</h2>

<p>Subject: Photography Notice for [Event Name]</p>

<p>Dear [Visitor’s Name],</p>

<p>We’re excited for the upcoming [Event Name] at [Event Location] on [Event Date]. As part of this event, we’ll be taking photographs for promotional purposes on our websites and social media channels.</p>

<p>Your attendance implies your consent to potentially being photographed and your understanding that the resulting images may be published on our platforms. However, we respect your privacy and offer the option to request removal of any image you feature in. Please contact us at [Contact Information] to do so.</p>

<p>Please be patient as technical considerations may cause a delay in processing your request. If you have any concerns regarding our photography policy, feel free to reach out.</p>

<p>Looking forward to your presence at [Event Name],</p>

<p>Best,
[Organizer]</p>

<h2 id="sample-check-in-point-notice">Sample Check-In Point Notice</h2>

<p>We’re taking photos at this event to publish on our website and social media channels for promotional purposes. By attending, you’re agreeing to potentially being photographed. If you wish to have your image removed, please contact us at [Contact Information].</p>

        </main>
        <footer>
    © 2021-2023 The Apache Software Foundation under the terms of the Apache License 2.0.

    Apache, the Apache feather logo, and the Apache logo are either registered trademarks or 
    trademarks of The Apache Software Foundation in the United States and other countries.
</footer>

    </body>
</html>
