Karen Hopper

Senior Data Strategist at M+R

As the Senior Data Strategist at M+R, Karen has the privilege of leading M+R's testing team, overseeing website, email, and ad testing strategy, implementation, and reporting for more than 25 nonprofit clients. But she wasn't always on the data side of things - she started in client services 8 years ago, managing email marketing, drafting creative briefs, implementing social media advertising, and building SMS programs for some of the world's largest and most successful nonprofits. When she's not geeking out over Google Analytics and Optimizely, she's singing with 150 of her closest friends in the Choral Arts Society of Washington (virtually, right now, of course) and riding her bike around DC.

Karen Hopper Events

No Events

Maximum upload file size: 50 MB.

<# if ( data.suggestedWidth && data.suggestedHeight ) { #>

Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels.

<# } #> <# } else if ( data.sizes && data.sizes.large ) { #> <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #> <# } #> <# if ( 'audio' === data.type ) { #>
<# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #>
<# } #>
<# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #> <# } else if ( 'pdf' === data.subtype && data.sizes ) { #>

Document Preview

<# } #>
Saved.

Details

Uploaded on: {{ data.dateFormatted }}
Uploaded by: <# if ( data.authorLink ) { #> {{ data.authorName }} <# } else { #> {{ data.authorName }} <# } #>
<# if ( data.uploadedToTitle ) { #>
Uploaded to: <# if ( data.uploadedToLink ) { #> {{ data.uploadedToTitle }} <# } else { #> {{ data.uploadedToTitle }} <# } #>
<# } #>
File name: {{ data.filename }}
File type: {{ data.mime }}
File size: {{ data.filesizeHumanReadable }}
<# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #>
Dimensions: {{ data.width }} by {{ data.height }} pixels
<# } #> <# if ( data.originalImageURL && data.originalImageName ) { #>
Original image: {{data.originalImageName}}
<# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
Length: {{ data.fileLengthHumanReadable }}
<# } #> <# if ( 'audio' === data.type && data.meta.bitrate ) { #>
Bitrate: {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s <# if ( data.meta.bitrate_mode ) { #> {{ ' ' + data.meta.bitrate_mode.toUpperCase() }} <# } #>
<# } #> <# if ( data.mediaStates ) { #>
Used as: {{ data.mediaStates }}
<# } #>
<# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #>
<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #>

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

<# } #> <# if ( 'audio' === data.type ) { #> <# } #> <# if ( 'image' === data.type ) { #> <# } else { #> <# } #>
<# if ( data.link ) { #> View attachment page <# } #> <# if ( data.can.save ) { #> <# if ( data.link ) { #> | <# } #> Edit more details <# } #> <# if ( data.can.save && data.link ) { #> | Download file <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# if ( data.link || data.can.save ) { #> | <# } #> <# } #>
<# } else { #>
<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #> <# } else if ( data.sizes ) { if ( data.sizes.medium ) { #> <# } else { #> <# } #> <# } else { #> <# } #>
{{ data.filename }}
<# } #> <# if ( data.buttons.close ) { #> <# } #> <# if ( data.buttons.check ) { #> <# } #> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; if ( data.describe ) { if ( 'image' === data.type ) { #> <# } else { #> aria-label="Video title" placeholder="Video title…" <# } else if ( 'audio' === data.type ) { #> aria-label="Audio title" placeholder="Audio title…" <# } else { #> aria-label="Media title" placeholder="Media title…" <# } #> {{ maybeReadOnly }} /> <# } } #> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #>
<# } else { #>
<# if ( data.uploading ) { #>
<# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <# } else { #> <# } #>
<# } #>
{{ data.filename }}
{{ data.dateFormatted }}
{{ data.filesizeHumanReadable }}
<# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #>
{{ data.width }} by {{ data.height }} pixels
<# } #> <# if ( data.originalImageURL && data.originalImageName ) { #>
Original image: {{data.originalImageName}}
<# } #> <# if ( data.can.save && data.sizes ) { #> Edit Image <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
Length: {{ data.fileLengthHumanReadable }}
<# } #> <# if ( data.mediaStates ) { #>
Used as: {{ data.mediaStates }}
<# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# } #>
<# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #>
<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #>

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

<# } #> <# if ( 'audio' === data.type ) { #> <# } #> <# if ( 'image' === data.type ) { #> <# } else { #> <# } #>
<# if ( 'undefined' !== typeof data.sizes ) { #> <# } #> <# if ( ! isVideo ) { #> checked="checked" <# } #> /> <# } #> checked="checked" <# } #> />

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

Align
Link To

Image size in pixels

<# } #>

<# if ( data.attachment && window.imageEdit ) { #>
<# } #>
<# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { if ( ! _.isUndefined( html5types.mp3 ) ) { delete html5types.mp3; } #> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { if ( ! _.isUndefined( html5types.ogg ) ) { delete html5types.ogg; } #> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { if ( ! _.isUndefined( html5types.flac ) ) { delete html5types.flac; } #> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { if ( ! _.isUndefined( html5types.m4a ) ) { delete html5types.m4a; } #> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { if ( ! _.isUndefined( html5types.wav ) ) { delete html5types.wav; } #> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #>
Add alternate sources for maximum HTML5 playback <# _.each( html5types, function (mime, type) { #> <# } ) #>
<# } #>
Preload
<# } else if ( isVimeo ) { #> <# } else { #> <# } } #> <# if ( data.model.mp4 ) { #> <# } #> <# if ( data.model.m4v ) { #> <# } #> <# if ( data.model.webm ) { #> <# } #> <# if ( data.model.ogv ) { #> <# } #> <# if ( data.model.flv ) { #> <# } #> {{{ data.model.content }}} <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <# } #> <# if ( ! _.isEmpty( data.model.mp4 ) ) { if ( ! _.isUndefined( html5types.mp4 ) ) { delete html5types.mp4; } #> <# } #> <# if ( ! _.isEmpty( data.model.m4v ) ) { if ( ! _.isUndefined( html5types.m4v ) ) { delete html5types.m4v; } #> <# } #> <# if ( ! _.isEmpty( data.model.webm ) ) { if ( ! _.isUndefined( html5types.webm ) ) { delete html5types.webm; } #> <# } #> <# if ( ! _.isEmpty( data.model.ogv ) ) { if ( ! _.isUndefined( html5types.ogv ) ) { delete html5types.ogv; } #> <# } #> <# if ( ! _.isEmpty( data.model.flv ) ) { if ( ! _.isUndefined( html5types.flv ) ) { delete html5types.flv; } #> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #>
Add alternate sources for maximum HTML5 playback <# _.each( html5types, function (mime, type) { #> <# } ) #>
<# } #> <# if ( ! _.isEmpty( data.model.poster ) ) { #> <# } #>
Preload
<# var content = ''; if ( ! _.isEmpty( data.model.content ) ) { var tracks = jQuery( data.model.content ).filter( 'track' ); _.each( tracks.toArray(), function( track, index ) { content += track.outerHTML; #> The srclang, label, and kind values can be edited to set the video track language and kind.
<# } ); #> <# } else { #> Tracks (subtitles, captions, descriptions, chapters, or metadata)
There are no associated subtitles. <# } #>
<# } else { #> {{ attachment.alt }} <# } #> <# if ( attachment.caption ) { #> <# } #> <# if ( index % data.columns === data.columns - 1 ) { #>
<# } #> <# } ); #> <# } else { #>

No items found.

<# } #>
Preview as a browser icon