# Deep links for media and publishing apps

> Share article and newsletter links with link previews that open the story in your app, or the web page, and compare channels by installs.

Page: https://warplink.app/use-cases/media-publishing-app-links

A publisher wants a reader who taps an article link to land on that article in the app, and a preview card that makes the share worth tapping. WarpLink links open the article screen, give crawlers a card built from your title and image, and show which newsletter, post or partner sent the reader.

## How it works

1. **Link each article or show.** Create a link for an article, a podcast episode or a section, with the destination set to that screen. Use a web page as the fallback for readers on a desktop.
2. **Write the card.** Set og_title, og_description and og_image_url on the link. Feeds and chat apps read these when they build the preview, and readers get the redirect.
3. **Tag newsletters, posts and partners.** Give each newsletter issue, social account or partner its own link, or its own utm_campaign. The report then shows which one brought readers.
4. **Use links in email on your domain.** Put your own domain on newsletter links so a tap can open the app. Check that your email provider does not wrap them in a tracking address.
5. **Keep the article through the install.** With the SDK in your app, a reader who installs after tapping lands on the article on first launch, not on the home feed.
6. **Compare sources.** The Analytics page breaks clicks and installs down by referrer, device and country. Export click rows as CSV for your own reports.

## Create an article link with a preview card

### REST API (TypeScript)

```typescript
// The preview card a crawler reads. People get the redirect.
const response = await fetch("https://api.warplink.app/v1/links", {
  method: "POST",
  headers: {
      // API key from Keys > API
      Authorization: "Bearer wl_live_YOUR_API_KEY",
      "Content-Type": "application/json",
    },
  body: JSON.stringify({
    app_id: "3f9a1c2e-6b7d-4e1a-9c2f-8a5b1d0e7c44",
    slug: "lisbon-weekend",
    destination_url: "https://app.example/guides/lisbon",
    og_title: "A weekend in Lisbon",
    og_description: "Open the guide in the app, with the map and saved places.",
    og_image_url: "https://app.example/images/lisbon-1200x630.jpg",
  }),
});

const link = (await response.json()) as { short_url: string };
```

### REST API (TypeScript)

```typescript
// An article link for the weekly newsletter. The UTM fields name the issue.
const response = await fetch("https://api.warplink.app/v1/links", {
  method: "POST",
  headers: {
      // API key from Keys > API
      Authorization: "Bearer wl_live_YOUR_API_KEY",
      "Content-Type": "application/json",
    },
  body: JSON.stringify({
    app_id: "3f9a1c2e-6b7d-4e1a-9c2f-8a5b1d0e7c44",
    domain: "go.news.example",
    slug: "longread-harbor-cities",
    destination_url: "https://news.example/longreads/harbor-cities",
    utm_source: "newsletter",
    utm_medium: "email",
    utm_campaign: "weekly-issue-42",
  }),
});

const link = (await response.json()) as { short_url: string };
```

## What you get

- **Linking.** Article and episode links that open the right screen in the app, with a preview card for the feed they are shared in.
- **Attribution.** Installs that follow a tap on a WarpLink link, in any channel, are matched to the article or newsletter that drove them.
- **Analytics.** Clicks, unique clicks and installs per link, with referrer, device and country breakdowns and CSV export.

## Questions

### Can a link open one article in the app?

Yes. Set the destination to the article screen. Readers with the app are taken to it, and readers without it go to the store page and then to the article on first launch.

### How does the preview card work?

A recognized crawler gets a small page with Open Graph and Twitter Card tags from the fields on the link. A reader asking for the same address gets the redirect.

### Why does the link open a browser in some social apps?

Many social apps use an embedded browser that does not hand links to your app. Give the link a web destination that works, and read the post on in-app browsers.

### Can I see which newsletter issue brought installs?

Yes, when each issue has its own link or its own utm_campaign value. The report shows clicks and installs for each.

### Do crawlers inflate my click counts?

No. Recognized crawlers are excluded before a click is recorded.

## Related

- [Social previews](https://warplink.app/docs/concepts/social-previews)
- [Deep links in in-app browsers](https://warplink.app/blog/deep-linking-in-app-browsers)
- [Social and in-app browsers](https://warplink.app/use-cases/social-and-in-app-browsers)
- [Email to app](https://warplink.app/use-cases/email-to-app)
- [Link analytics for mobile teams](https://warplink.app/use-cases/link-analytics-for-mobile-teams)
