From d2cd9bef66eb286ba27a6cbb62332a9ed34be43f Mon Sep 17 00:00:00 2001 From: Ian Krieger <48930920+IanKrieger@users.noreply.github.com> Date: Fri, 17 Nov 2023 15:43:09 -0500 Subject: [PATCH] feat: add additional sections (#7) * create _category_.json * added create-account.md * adds create-a-campaign.md * update intro.md eliminated redundant heading and replaced some text with the MVP draft doc copy * adds create-an-ad.md * adds create-an-ad-set.md * adds launch-your-campaign.md * update intro.md * update intro.md * create _category_.json * deletes docs/_category_.json * create campaign-performance * delete docs/campaign-performance * create campaign-performance * delete docs/campaign-performance * create _category_.json * create audience-targeting.md * create reporting.md * create _category_.json * create billing.md * create managing-users.md * create _category_.json * create policies.md * update and rename audience-targeting.md to targeting.md * update reporting.md * update reporting.md * fix: show VAC as json, not quote * fix: remove link, restructure policies --------- Co-authored-by: Lukas Levert <79997955+lukaslevert@users.noreply.github.com> --- .gitignore | 1 + docs/account-management/_category_.json | 4 + docs/account-management/billing.md | 26 ++++ docs/account-management/managing-users.md | 6 + docs/campaign-performance/_category_.json | 4 + docs/campaign-performance/reporting.md | 125 +++++++++++++++++++ docs/campaign-performance/targeting.md | 17 +++ docs/getting-started/_category_.json | 4 + docs/getting-started/create-a-campaign.md | 14 +++ docs/getting-started/create-account.md | 5 + docs/getting-started/create-an-ad-set.md | 11 ++ docs/getting-started/create-an-ad.md | 10 ++ docs/getting-started/launch-your-campaign.md | 5 + docs/intro.md | 8 +- docs/policies.md | 29 +++++ docusaurus.config.ts | 5 - 16 files changed, 263 insertions(+), 11 deletions(-) create mode 100644 docs/account-management/_category_.json create mode 100644 docs/account-management/billing.md create mode 100644 docs/account-management/managing-users.md create mode 100644 docs/campaign-performance/_category_.json create mode 100644 docs/campaign-performance/reporting.md create mode 100644 docs/campaign-performance/targeting.md create mode 100644 docs/getting-started/_category_.json create mode 100644 docs/getting-started/create-a-campaign.md create mode 100644 docs/getting-started/create-account.md create mode 100644 docs/getting-started/create-an-ad-set.md create mode 100644 docs/getting-started/create-an-ad.md create mode 100644 docs/getting-started/launch-your-campaign.md create mode 100644 docs/policies.md diff --git a/.gitignore b/.gitignore index 9949797c..18af3798 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ # IDE .idea/ +.obsidian/ # Generated files .docusaurus diff --git a/docs/account-management/_category_.json b/docs/account-management/_category_.json new file mode 100644 index 00000000..bbfccdb2 --- /dev/null +++ b/docs/account-management/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Account Management", + "position": 5 +} diff --git a/docs/account-management/billing.md b/docs/account-management/billing.md new file mode 100644 index 00000000..69dde72e --- /dev/null +++ b/docs/account-management/billing.md @@ -0,0 +1,26 @@ +--- +sidebar_position: 1 +--- + +# Billing +By default, all ad campaigns globally will be billed in USD.  +## By invoice +By default, invoices for managed campaigns are sent at the end of the monthly billing cycle for the calendar month. Payment is due within 30 days of receipt of the invoice. Brave may, at our discretion, require pre-payment for advertisers and campaigns prior to the launch of their campaign  + +## By credit card +Both Managed Service and self-directed Brave Ads Manager campaigns can be paid by credit card via Stripe.  + +- If buying via Managed Service, simply let your account manager know you’d like to pay via credit card. +- If buying via Brave Ads Manager, you will be asked to pre-pay for your campaign by “topping-up” your account via Stripe. +## By cryptocurrency + +Both Managed Service and self-directed Brave Ads Manager campaigns can be paid by credit card via Radom. + +- If buying ads via Managed Service, simply let your account manager know you’d like to pay via cryptocurrency. Please note that we currently accept Basic Attention Token (BAT), USD Coin (USDC), and Tether USD (USDT) on the Ethereum blockchain. +- If buying ads via Brave Ads Manager, you will be asked to pre-pay for your campaign by “topping-up” your account via Radom. +## Cancellations +For New Tab Takeovers, advertisers that cancel within seven days of the campaign launch date will be charged 50% of the campaign cost.  + +If working with our accounts and sales team, you can cancel your Search, Notifications, or Newsfeed ads campaigns at any time and will only be invoiced for the amounts spent up until the campaign was paused.  + +If you prepaid your campaign via our self-service option and wish to cancel your campaign early, please note that you’ll need to request a refund for any remaining funds by sending an email to [adops@brave.com](mailto:adops@brave.com) diff --git a/docs/account-management/managing-users.md b/docs/account-management/managing-users.md new file mode 100644 index 00000000..f39a938a --- /dev/null +++ b/docs/account-management/managing-users.md @@ -0,0 +1,6 @@ +--- +sidebar_position: 2 +--- + +# Managing Users +To add new users to your advertiser account, please email adops@brave.com from the same email address you used to set up your account and our team will be happy to help with adding additional users. diff --git a/docs/campaign-performance/_category_.json b/docs/campaign-performance/_category_.json new file mode 100644 index 00000000..52b201b2 --- /dev/null +++ b/docs/campaign-performance/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Campaign Performance", + "position": 4 +} diff --git a/docs/campaign-performance/reporting.md b/docs/campaign-performance/reporting.md new file mode 100644 index 00000000..fc64276e --- /dev/null +++ b/docs/campaign-performance/reporting.md @@ -0,0 +1,125 @@ +--- +sidebar_position: 2 +--- +# Reporting in a privacy-first environment +Brave Ads is built from the ground up to support the highest privacy standards. By default, the Brave browser blocks third-party tracking including Google Analytics, Adobe Analytics, and other third-party reporting and measurement vendors. While Brave Ads respects (and does not collect) user data, it also gives advertisers useful, granular reporting on campaign performance data in a simple, easy-to-read dashboard. It also enables marketers to see campaign performance using their own reporting systems. + +## Is my reporting blocked? +The first step is to understand what is being blocked by the Brave browser. To do so, open Brave on your desktop and navigate to your business site or campaign landing page and follow these steps: + +1. Click on the Brave lion icon on the right side of the address bar. +2. Expand the “Advanced Control” menu. +3. Click the purple number located next to “Block Trackers and Ads’’ to display what is currently being blocked. + +Blocked scripts will disable most, if not all, functions for third-party tracking. + +## Brave Ads Manager reporting +Whether your campaign is purchased via Managed Service or Self-Service, all advertisers will have access to the Brave Ads reporting dashboard to report on the performance of campaigns. Campaign dashboards update hourly with the option to export reporting for Notification and Newsfeed ad campaigns on demand. + +### Available reporting metrics in Brave Ads Manager +| Metric | Description | Search Keyword Ads | New Tab Takeover | Newsfeed Ads | Notification Ads | +|-------------------|-------------------------------------------------------------------------------------------------|--------------------|------------------|--------------|------------------| +| Impressions | Counted when an ad is displayed on screen for a minimum of one second. | X | X | X | X | +| Clicks | Counted when a user clicks on the ad. Does not include clicks to dismiss. | X | X | X | X | +| Dismissed | Counted when a user clicks the “close” or “x” button to make an ad go away. | | | X | X | +| 10-Second Visit | Counted when a user spends at least ten seconds with the landing page in view in their browser. | X | X | X | X | +| Upvote & Downvote | Counted when a user either upvotes or downvotes an ad in their ad history. | | | | X | +| Conversion | Counted when a user reaches a designated conversion landing page. | X | | X | X | + +### Conversion reporting in Brave Ads Manager +We strongly recommend including conversion reporting for your Brave campaign. Because Brave ads are delivered via the browser, we are able to report on conversions (signups, orders, etc.) attributed to the campaign using a URL. To include conversion reporting in the Brave Dashboard, please provide a conversion confirmation page URL so Brave can map the event back to the campaign. + +The conversion page URL can have a “wildcard” in the URL path or query-strings to ignore any strings that may be variable. For example, https://example.com/checkout?order=12345/thankyou can be expressed for all checkouts as: https://example.com/checkout?order=*/thankyou. + +## Independent reporting (first-party) +In addition to reporting offered via the Brave dashboard, you can use a combination of the following methods to accurately and independently verify the results of your Brave Ads campaign: + +### Unique landing page URL/click tracking parameters +A unique landing page is a great option to count traffic through your site’s server logs or first-party analytics dashboard. By creating a dedicated landing page URL (like domain.com/brave) for the campaign and ensuring it’s used only for Brave Ads campaigns, traffic to and from this page can be attributed to paid campaigns with Brave. + +### Referral/promo code +A referral or promo code (e.g. brave15) can be used at the time of checkout to report on conversions attributed to your campaign. We recommend the referral or promo code is automatically populated so users don’t forget. Using your platform’s reporting, you can then view the number of conversions that have used the promo or referral code. + +### Query string parameters and first-party cookies (i.e. UTMs) +Click URL tracking parameters are allowed, but only when used in a way that your web server or web application can detect. Using third-party reporting such as Google Analytics will not show accurate data. Please note, only direct URLs are allowed for the click link—no redirects. + +##### Clickthrough URL (UTM parameters) +- Example: ``[https://example.com/product?utm_source=brave&utm_medium=push_notification&utm_campaign=test](https://example.com/product?utm_source=brave&utm_medium=push_notification&utm_campaign=test)`` +- Landing page:``[https://example.com/product](https://example.com/product)`` +- Query string parameters (UTM): ``utm_source=brave&utm_medium=push_notification&utm_campaign=test`` + +##### Clickthrough URL (query string parameters) +- Example: ``[https://example.com/product?ref=brave&type=push_notification&campaign=test](https://example.com/product?ref=brave&type=push_notification&campaign=test)`` +- Landing page: ``[https://example.com/product](https://example.com/product)`` +- Query string parameters: ``ref=brave&type=push_notification&campaign=test`` + +Parse values and set first-party cookies based on the query string parameters from the clickthrough URL. This entire query string can be set as the value or parsed into individual key value pairs. +When the same user lands from a different channel, your same code snippet can append or overwrite the cookie values with the new parameter values depending on your preference. +When the user completes the expected action and a network request is made back to your servers, the cookies should be attached to the request headers and you can see that a user has come from a Brave Ads campaign. + +### Verifiable Ad Conversions (VAC) +Verifiable Ad Conversions (VAC) is an optional feature-set of Brave Ads Conversion Reporting. VAC provides Brave advertisers with the ability to determine their return on ad spend by privately reporting encrypted Conversion IDs. Advertisers can then audit the list of encrypted Conversion IDs to verify that the converted user can be attributed to a Brave Ads campaign. + +When an eligible user lands on the Conversion Page, a process is invoked that enables the advertiser to account for the specific transaction event, while maintaining user privacy and anonymity. Not even Brave can read or learn anything about that event (aside from the anonymously reported conversion event count). This enables privacy from end-to-end and allows users to feel better about their Conversion Event, knowing that no one can learn anything from the conversion. + +Advertisers who choose to use VAC will generate a public-private key pair in the Account Settings of the Brave Ads interface. Brave will retain the public key, sign the Conversion ID with it, and report the encrypted Conversion ID. Only the Advertiser will have the private key, and only the advertiser will be able to decrypt the encrypted Conversion ID. + +It’s crucial that the advertiser does not lose their private key for Verifiable Ad Conversions. + +##### Conversion Event ID details +Verifiable Ad Conversion Reporting is done by a Conversion ID. For your site, this may be an order number, a transaction ID, or something similar. + +##### Requirements: +- The Conversion ID value must be unique for each conversion. Duplicate Conversion Event ID values will result in accounting discrepancies. +- The Conversion ID must be between 1–30 characters long, contain only alphanumeric characters (as well as dashes), and match this regular expression:`` [-a-zA-Z0-9]{1,30}.`` +- Event values longer than 30 characters will fail, preventing the event from being accurately accounted for. You may check if your identifier is valid by using a site like [https://regex101.com/](https://regex101.com/). +- Conversion IDs must not include user identifiers or personally identifying information. For example, Conversion IDs like the following are not permitted: ``-``, ``-``. + +Brave uses TweetNacl to encrypt the Conversion ID. + +Encrypted Conversion Envelopes will look like: +```json +{ + "alg": "crypto_box_curve25519xsalsa20poly1305" + "ciphertext": "BTX6xKZ4vITaWa11EMcly7gyQ3rN8JoAYvoHeIiYuSS9Lsc4GUQBN54+otIGOsxk" + "epk": "3N1RKgiOvOXCGjO6txtEwR0DzpEp9U+PkbpwxAkAGwg=" + "nonce": "N4EH/upCXxyRPLmYLvYCyuaKQASlA6Qo" +} +``` + +##### Implementation options +Brave provides two implementation options for Verifiable Conversions using a URL pattern or DOM element pattern. + +**URL Pattern** + +An advertiser has a Conversion ID that is present as a query string parameter in the Conversion Page URL pattern. The advertiser must provide Brave with the query string key that identifies the Conversion ID. + +When an eligible user lands on the Conversion Page URL, Brave will: +- Record a conversion event +- Parse the URL for the query string key that identifies the Conversion ID +- Encrypt and record the Conversion ID + +Take, for example, the following Conversion Page URL: https://example.com/checkout?order=ABC-12345-xyz. Brave will look for the query string key order and encrypt the value ``ABC-12345-xyz``. + +**DOM Element Pattern** + +An advertiser has a Conversion ID that is present in the Document Object Model (DOM) of the Conversion Page URL. + +The advertiser must provide Brave with the DOM element that uniquely identifies the Conversion ID on the page. When an eligible user lands on the Conversion Page URL, Brave will: +- Record a conversion event +- Parse the DOM for the regex pattern that identifies the Conversion ID +- Encrypt and record the Conversion ID + +Take, for example, the following DOM element: ``
Your Order ID: ABC-12345-xyz
``. Brave will look for this pattern ``Your Order ID:.*``, set a capture group ``([-a-zA-Z0-9]*)`` and encrypt the value ``ABC-12345-xyz``. + +## Brand lift studies +Brave brand lift studies consist of pre-post research polls conducted via Brave to help advertisers better measure the impact of their ad campaigns beyond media metrics like impressions or clicks. Studies typically measure brand awareness or consideration, but can also measure growth in product understanding or other effects based on paid media spend with Brave. + +Prior to campaign launch, advertisers provide Brave with a series of questions structured into a survey and distributed via Brave Ads to a targeting profile that matches the ad campaign. After the campaign, the same set of questions (and additional questions that measure ad recall) will be fielded. + +The pre- and post-campaign survey results are compared to gauge the impact of the advertising. Here are some examples of questions that may be fielded during a study: +- **Brand awareness**: Have you heard of “advertiser name” before? +- **Ad recall**: Have you seen an ad for “advertiser name” in the past week? +- **Product consideration**: How likely are you to shop for “product name” in the next several months? + +Studies can run independent of spend for a fixed cost, but may also be included as a bonus on a per-campaign basis for spends above a specified threshold. Get in touch with our sales team to learn more. diff --git a/docs/campaign-performance/targeting.md b/docs/campaign-performance/targeting.md new file mode 100644 index 00000000..791d44c3 --- /dev/null +++ b/docs/campaign-performance/targeting.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 1 +--- + +# Audience targeting in a privacy-first environment +Brave has pioneered a new breed of privacy-respecting targeting that is matched directly on the user’s device (aka “client-side”), without any personal data phoning home to Brave’s servers.  To achieve targeting at scale in a privacy-respecting capacity, Brave Ads uses on-device machine learning to anonymously match users to relevant ads. The system is built by leading privacy engineers with a range of cryptographic technologies that ensure that no personally-identifiable data ever leaves the user’s device. Contrary to other major ad tech providers who suck up as much personal data as they can, Brave only ever sees anonymous data. + +Each of Brave’s ad units has a unique approach to achieve varying levels of ad relevance with the end user: + +| | | | | | | +|---|---|---|---|---|---| +|**Targeting**|**Description**|**Search keyword ads**|N**ew Tab Takeover**|**Newsfeed Ads**|**Notification Ads**| +|**Keywords**|Keywords entered into Brave Search.|X|||| +|**Country and state**|Location determined by IP address. Only top level country and state level information is inferred (State level targeting is available only in the USA).|X|X|X|X| +|**Time of day**|Delivery based on local time inferred by the IP address.|||X|X| +|**Contextual segments**|IAB standard contextual segments based on page content and domains visited by the user.||||X| +|**Custom intent segments**|Bespoke segments built with keywords and domains that the advertiser wishes to target. Minimum spend required, and only available with managed service campaigns.||||X| diff --git a/docs/getting-started/_category_.json b/docs/getting-started/_category_.json new file mode 100644 index 00000000..c1998c5e --- /dev/null +++ b/docs/getting-started/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Getting Started", + "position": 3 +} diff --git a/docs/getting-started/create-a-campaign.md b/docs/getting-started/create-a-campaign.md new file mode 100644 index 00000000..2798a477 --- /dev/null +++ b/docs/getting-started/create-a-campaign.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 2 +--- + +# Create a campaign +To get started, select the “New Campaign” button in the top right hand corner of Brave Ads Manager and fill out the required fields. The campaign level is where you will set the following parameters: + +- **Campaign name** helps to identify campaigns more easily in your account. +- **Start and end** dates define the beginning and end of your campaign delivery window, including time of day. +- **Time zone** defines what timezone your campaign will begin and end in. +- **Formats** define where in the Brave Ads ecosystem your ads will be displayed. For more information on Brave’s ad formats, their characteristics, and availability in Brave Ads Manager, click here [link to ad placements section]. +- **Location** defines where in the world your ads deliver. State-level targeting is currently only available in the United-States. +- **Budget** defines how much you aim to spend throughout the lifetime of your campaign. +- **Payment** method defines how you’ll pay. Brave accepts USD and BAT [link to ad billing section] diff --git a/docs/getting-started/create-account.md b/docs/getting-started/create-account.md new file mode 100644 index 00000000..66c8462c --- /dev/null +++ b/docs/getting-started/create-account.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 1 +--- +# Create an account +To create an account, visit ads.brave.com and fill out the requested business information. All new advertiser accounts go through manual approval by the Brave team, and are typically processed within 48 hours. Please allow up to 72 hours before contacting support about account activation. diff --git a/docs/getting-started/create-an-ad-set.md b/docs/getting-started/create-an-ad-set.md new file mode 100644 index 00000000..e5806816 --- /dev/null +++ b/docs/getting-started/create-an-ad-set.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 4 +--- + +# Create An Ad Set + +After you’ve set basic parameters for your campaign, you’ll need to further define the targeting and delivery parameters of your ads. You can set up multiple ad sets within a campaign, for example, when you wish to target different ads to different device types or contextual segments. The ad set level is where you will set the following parameters: + +- **Ad set names** will help to identify ad sets more easily in your account. +- **Categories** are contextual segments based on the IAB standard taxonomy. They determine what type of interests you’d like to target with your ad set. +- **Platforms** define what types of devices your ad will be delivered to. diff --git a/docs/getting-started/create-an-ad.md b/docs/getting-started/create-an-ad.md new file mode 100644 index 00000000..c272a8c0 --- /dev/null +++ b/docs/getting-started/create-an-ad.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 3 +--- +# Create an Ad +There are two ways to create an ad in Brave Ads Manager: + +## During campaign set up +During the campaign creation process, you’ll reach a step called Ads where you’ll see the option to create a new ad. Follow the onscreen instructions, which will provide guidelines on what to enter or upload based on the type of campaign you chose earlier on. This step will also show a preview of your ad to simulate how it will be seen by your audience. +## Independent of any campaign set up +To create an ad outside of a campaign, for example to be used across many campaigns, start from the home screen in Brave Ads Manager and select Creatives from the left sidebar. Once in the ads menu, hit the New Creative button in the top right corner of your screen. Then, choose the placement type that you wish to create an ad for. diff --git a/docs/getting-started/launch-your-campaign.md b/docs/getting-started/launch-your-campaign.md new file mode 100644 index 00000000..cd5c7242 --- /dev/null +++ b/docs/getting-started/launch-your-campaign.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 5 +--- +# Launch Your Campaign +Once you’ve set campaign, ad set, and ad parameters, you’re ready to top-up your account with a dollar balance and launch your campaign. Brave accepts USD and BAT. diff --git a/docs/intro.md b/docs/intro.md index 8ef8a1f0..2dcecf56 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -3,11 +3,7 @@ sidebar_position: 1 slug: / --- -# Overview - -Welcome to Brave Ads documentation. - -## Brave Ads +# Introduction to Brave Ads Brave Ads are first-party ad placements available throughout Brave, the privacy-first Web browser, Brave Search, the world’s fastest growing independent search engine. ## Brave Ads Manager @@ -17,4 +13,4 @@ Brave Ads Manager, or Ads Manager, is where Brave Ads campaigns are created, man Work with a dedicated sales and account management team to execute campaigns. Managed service campaigns require a $10,000 minimum monthly spend and offer a wider range of ad placements. ### Self service -Do-it-yourself (DIY) management of ad campaigns through easy-to-use campaign creation, editing, and reporting tools. Self service campaigns require a minimum spend of $500 for optimal results. \ No newline at end of file +Do-it-yourself (DIY) management of ad campaigns through easy-to-use campaign creation, editing, and reporting tools. Self service campaigns require a minimum spend of $500 for optimal results. diff --git a/docs/policies.md b/docs/policies.md new file mode 100644 index 00000000..ad73f1c3 --- /dev/null +++ b/docs/policies.md @@ -0,0 +1,29 @@ +--- +sidebar_position: 6 +--- + +# Policies and Restrictions +## Policies + +- [Advertiser privacy policy](https://brave.com/privacy/advertiser/) +- [Basic Attention Token terms of service](https://basicattentiontoken.org/advertiser-terms-of-service/) +- [IAB standard terms & conditions](https://www.iab.com/wp-content/uploads/2015/06/IAB_4As-tsandcs-FINAL.pdf) + +## Restricted and prohibited categories +Campaigns cannot currently advertise products and services for the following prohibited and restricted categories: + +- CBD (available in the US with state-level restrictions) +- THC +- Tobacco +- Vaping +- Pharmaceuticals +- Gambling +- Adult content +- Politics +- Violence +- Content targeting children +- Content targeting expecting mothers + +Note: While currently unavailable, advertising to restricted categories may become available in the future. +## Brand safety +All Brave ads are brand safe in that they are served first-party at the browser or search-engine level, not before, between, or after content on explicit or potentially unsafe third-party websites. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 37981427..177a144f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -53,11 +53,6 @@ const config: Config = { {to: 'https://brave.com/download', label: 'Download', position: 'left'}, {to: 'https://twitter.com/brave', label: 'Twitter', position: 'left'}, {to: 'https://github.com/brave/brave-browser', label: 'Github', position: 'left'}, - { - href: 'https://github.com/brave/brave-ads-docs', - label: 'Brave Ads Docs GitHub', - position: 'right', - }, ], }, footer: {