Skip to content

Commit

Permalink
Add markdown lint step (prebid#4646)
Browse files Browse the repository at this point in the history
* Add markdown lint step

* Fix a lot of tabs and code hightlighs

* Replace cross-player-communication html with markdown

* Add markdownlintignore and batch of fixes

* Use markdownlint-cli directly

* Correct docker image version

* Add missing markdownlint param

* Run markdownlint --fix

* Fix bunch of linting errors and ignore dev-docs

* Add description about markdownlint
  • Loading branch information
muuki88 authored Jun 19, 2023
1 parent de164cf commit 52337d0
Show file tree
Hide file tree
Showing 539 changed files with 3,227 additions and 2,952 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Continuous Integration

on:
pull_request:
branches:
- master
push:
branches:
- master

jobs:
markdownlint:
name: run markdownlint
runs-on: ubuntu-latest
container: ghcr.io/igorshubovych/markdownlint-cli:v0.35.0
steps:
- uses: actions/checkout@master
- name: markdownlint-cli
run: |
markdownlint --config .markdownlint.json --ignore-path .markdownlintignore "**/*.md"
8 changes: 8 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"default": true,
"MD013": false,
"MD024": false,
"MD025": false,
"MD033": false,
"MD036": false
}
13 changes: 13 additions & 0 deletions .markdownlintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These files should not be linted
README.md
_includes/
vendor/
node_modules/

# Directories which remain to be fixed
dev-docs/
faq/
examples/
partners/
prebid-mobile/
prebid-server/
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ For CSS, the site uses Laravel Mix to build CSS from Sass (scss-flavored) source
1. `npm ci` to install packages for building assets
1. build assets as described below

The markdown files are linted via [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli). VSCode supports the [.markdownlintignore] file.
You may need to configure the disabled rules specified in [.markdownlint.json] directly in your project settings. You can invoke linting in CLI via

```bash
markdownlint --config .markdownlint.json --ignore-path .markdownlintignore "**/*.md"
```

<a name="running-jekyll-locally"></a>

## Running Jekyll Locally
Expand Down
89 changes: 42 additions & 47 deletions addme.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ isNavParent: true

<div class="bs-docs-section" markdown="1">

#Best Practices
# Best Practices

#### Best Practices Listserv
## Best Practices Listserv

Stay informed of publisher best practices for header bidding and the latest for prebid.js.

Expand All @@ -23,68 +23,64 @@ Stay informed of publisher best practices for header bidding and the latest for
<input type="text" class="form-control" id="email-field" placeholder="Email" required>
</div>
<div class="form-group">
<button class="btn btn-primary" id="submit-email" onclick="submitEmail()">Join Best Practices Group</button>
</div>
<button class="btn btn-primary" id="submit-email" onclick="submitEmail()">Join Best Practices Group</button>
</div>
</div>


</div>

<div class="bs-docs-section" markdown="1">

#Contact Companies

# Contact Companies

#### Share your company
## Share your company

If you are a publisher that'd like to be contacted by bidders, or if you're a bidder and want to share more about yourself, use the below form. Note that the information you entered here will be shared in this page after your approval.
If you are a publisher that'd like to be contacted by bidders, or if you're a bidder and want to share more about yourself, use the below form. Note that the information you entered here will be shared in this page after your approval.

<form class="form row" id="form-company">

<div class="form-group col-sm-12">
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="company-publisher" value="company-publisher" checked>
I'm a publisher
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="company-bidder" value="company-bidder">
I'm a bidder <!--(<a href="adaptor.html">Check here</a> to learn how to implement an adaptor) -->
</label>
</div>
</div>

<div class="col-sm-6">
<div class="form-group col-sm-12">
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="company-publisher" value="company-publisher" checked>
I'm a publisher
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="company-bidder" value="company-bidder">
I'm a bidder <!--(<a href="adaptor.html">Check here</a> to learn how to implement an adaptor) -->
</label>
</div>
</div>

<div class="form-group">
<label>Company Name</label>
<input type="name" class="form-control" id="company-name" placeholder="Name">
</div>
<div class="col-sm-6">

<div class="form-group">
<label>Company Logo</label>
<input class="form-control" id="company-logo" placeholder="http://company.com/image.png">
</div>
<div class="form-group">
<label>Company Name</label>
<input type="name" class="form-control" id="company-name" placeholder="Name">
</div>

<div class="form-group">
<label>Contact Email</label>
<input type="email" class="form-control" id="company-email" placeholder="Email">
</div>
<div class="form-group">
<label>Company Logo</label>
<input class="form-control" id="company-logo" placeholder="http://company.com/image.png">
</div>

</div>
<div class="form-group">
<label>Contact Email</label>
<input type="email" class="form-control" id="company-email" placeholder="Email">
</div>

<div class="form-group col-sm-12">
<label>Brief intro to your company</label>
<textarea class="form-control" id="company-intro" rows="2" maxlength="200"></textarea>
</div>

</div>
<div class="form-group col-sm-12">
<label>Brief intro to your company</label>
<textarea class="form-control" id="company-intro" rows="2" maxlength="200"></textarea>

<div class="col-sm-2">
<button class="btn btn-primary" id="submit-company">Add Company</button>
</div>
</div>

<div class="col-sm-2">
<button class="btn btn-primary" id="submit-company">Add Company</button>
</div>

</form>

Expand All @@ -93,7 +89,6 @@ If you are a publisher that'd like to be contacted by bidders, or if you're a bi

If you'd like to edit existing entries, email [email protected].


### "Bidder" Companies

If you'd like to edit existing entries, email [email protected].
Expand Down
43 changes: 22 additions & 21 deletions adops/ad-server-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ sbUUID: 3.2
---

# Ad Server Integration

{: .no_toc }

* TOC
- TOC
{: toc }

Before you start your Prebid implementation, you need to have signed on with an ad server. As an independent header bidding solution, Prebid was designed to work with any ad server. One step in determining how your integration is going to work is exploring the type of support your ad server has for header bidding and how you’re going to use it. We’re not able to provide details on all ad servers, but we can give you some general information on the most popular ad servers and those the Prebid community has documented.
Expand All @@ -20,45 +21,45 @@ Note that not many ad servers currently have native support for header bidding.
If you want to include information about a particular ad server not documented here, create a PR in our [Github repo](https://github.com/prebid/prebid.github.io).

## Google Ad Manager

Google Ad Manager (GAM) is currently the most-used ad server. Google is beta testing header bidding support in yield groups, a technology to help publishers manage external integrations. Because header bidding often involved the creation of hundreds or even thousands of line items, yield groups could be a useful option. Here are some things to consider when deciding whether to use GAM yield groups with Prebid:

- As of this writing, the feature was still in beta testing.
- You must have a GAM premium GAM account to use yield groups.
- The following use cases currently don’t work with yield groups: Native, video, AMP, Post-Bid. Google is open to feedback from the community about these scenarios.
- The Prebid Universal Creative is not utilized. Google has ported some portions of the PUC to an internal creative.
- Not all Prebid bid adapters are supported.
- Aliases are not currently supported, but Google may eventually support aliases that are commonly used. There may also be future updates to support custom aliases.
- Google Publisher Toolkit (GPT) determines bid values using Prebid.js events.
- The yield group should win when the adjusted bid price is higher than the header bidding price bucket, which should typically occur if the publisher is rounding bids down, as is the Prebid default.
- While we haven’t seen any detailed performance testing, we hope that the improved auction dynamics from no longer using price bucketing will have beneficial effects on auction outcomes.
- As of this writing, the feature was still in beta testing.
- You must have a GAM premium GAM account to use yield groups.
- The following use cases currently don’t work with yield groups: Native, video, AMP, Post-Bid. Google is open to feedback from the community about these scenarios.
- The Prebid Universal Creative is not utilized. Google has ported some portions of the PUC to an internal creative.
- Not all Prebid bid adapters are supported.
- Aliases are not currently supported, but Google may eventually support aliases that are commonly used. There may also be future updates to support custom aliases.
- Google Publisher Toolkit (GPT) determines bid values using Prebid.js events.
- The yield group should win when the adjusted bid price is higher than the header bidding price bucket, which should typically occur if the publisher is rounding bids down, as is the Prebid default.
- While we haven’t seen any detailed performance testing, we hope that the improved auction dynamics from no longer using price bucketing will have beneficial effects on auction outcomes.

For step-by-step instructions on using GAM, see the [Google Ad Manager Step by Step](/adops/step-by-step.html).


## Other Ad Servers

We don’t currently have details on specific header bidding support in other ad servers. But practically speaking, these are the requirements to integrate Prebid into an ad server:

- The ability to pass key-value pairs into the ad call.
- The ability to pass key-value pairs into the ad call.

{: .alert.alert-info :}
See the [getAdserverTargeting function](/dev-docs/publisher-api-reference/getAdserverTargeting.html) for engineering instructions on creating whatever format is required.
- The ability to bulk create orders, line items, and creatives (or the equivalent). Since there can be hundreds - or even thousands - of objects to create, it's uncommon for people to create their ad server objects one-by-one.
- The ability to create hundreds or thousands of objects without exceeding ad server limits.
- The ability to bulk create orders, line items, and creatives (or the equivalent). Since there can be hundreds - or even thousands - of objects to create, it's uncommon for people to create their ad server objects one-by-one.
- The ability to create hundreds or thousands of objects without exceeding ad server limits.

For step-by-step instructions on using some of the other ad servers, see the following documentation:

- [Xandr Monetize Ad Server](/adops/setting-up-prebid-with-the-appnexus-ad-server.html)
- [Smart Ad Server](/adops/setting-up-prebidjs-with-Smart-Ad-Server.html)
- [FreeWheel](/adops/setting-up-prebid-video-in-freewheel.html)
- [Xandr Monetize Ad Server](/adops/setting-up-prebid-with-the-appnexus-ad-server.html)
- [Smart Ad Server](/adops/setting-up-prebidjs-with-Smart-Ad-Server.html)
- [FreeWheel](/adops/setting-up-prebid-video-in-freewheel.html)

## Next Step

[Send All Bids vs Top Price](/adops/send-all-vs-top-price.html)

## Further Reader

- [Planning Guide](/adops/adops-planning-guide.html)
- [Key Values for Ad Ops](/adops/key-values.html)
- [Prebid Universal Creative](/overview/prebid-universal-creative.html)
- [Deals in Prebid](/adops/deals.html)
- [Planning Guide](/adops/adops-planning-guide.html)
- [Key Values for Ad Ops](/adops/key-values.html)
- [Prebid Universal Creative](/overview/prebid-universal-creative.html)
- [Deals in Prebid](/adops/deals.html)
1 change: 1 addition & 0 deletions adops/adops-general-sbs.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ sidebarType: 3
---

# General Ad Server Prebid Setup

{: .no_toc }

* TOC
Expand Down
4 changes: 3 additions & 1 deletion adops/adops-planning-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ sbUUID: 3.2
---

# Ad Ops Planning Guide

{: .no_toc }

* TOC
Expand Down Expand Up @@ -64,4 +65,5 @@ Throughout this planning guide, we use the following terms to describe elements
**Key Value Pair (KVP)**: Additional parameters sent to the ad server to provide additional targeting or reporting information. Prebid sends keys with associated values that enable the ad server to match a line item to the bid and display the winning creative. A key value pair for a Prebid parameter can include things like the bid price or the name of the bidder. See [Key Values](/adops/key-values.html) for more information.

## Next Step
[Ad Server Integration](/adops/ad-server-integration.html)

* [Ad Server Integration](/adops/ad-server-integration.html)
10 changes: 5 additions & 5 deletions adops/before-you-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ sbUUID: 3.2
---

# Ad Ops and Prebid

{: .no_toc }

Ad Operations (Ad Ops) are the people who work directly with the ad server software to create, analyze, and update ad campaigns. In companies that use automated processes rather than working directly in the ad server UI, people in Ad Ops define the inputs to the automation that ensure campaigns run as expected. Whatever your actual job title or exact job description, when we refer to “Ad Ops” we’re talking about the non-engineering tasks involved in running and managing ad campaigns.
Expand All @@ -21,11 +22,10 @@ When the ad request arrives at the ad server, the ad server reads the targeting

After you’ve completed your planning, move on to the appropriate setup documentation for your ad server.

- [Google Ad Manager](/adops/step-by-step.html)
- [Xandr Monetize Ad Server](/adops/setting-up-prebid-with-the-appnexus-ad-server.html)
- [Smart Ad Server](/adops/setting-up-prebidjs-with-Smart-Ad-Server.html)
- [FreeWheel](/adops/setting-up-prebid-video-in-freewheel.html)

- [Google Ad Manager](/adops/step-by-step.html)
- [Xandr Monetize Ad Server](/adops/setting-up-prebid-with-the-appnexus-ad-server.html)
- [Smart Ad Server](/adops/setting-up-prebidjs-with-Smart-Ad-Server.html)
- [FreeWheel](/adops/setting-up-prebid-video-in-freewheel.html)

## Next Step

Expand Down
Loading

0 comments on commit 52337d0

Please sign in to comment.