New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@23blocks/block-campaigns

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@23blocks/block-campaigns

Campaigns block for 23blocks SDK - marketing campaigns, media, landing pages, and audience management

latest
Source
npmnpm
Version
4.0.4
Version published
Weekly downloads
82
30.16%
Maintainers
1
Weekly downloads
 
Created
Source

@23blocks/block-campaigns

Campaigns block for the 23blocks SDK - marketing campaigns, media, landing pages, and audiences.

npm version License: MIT

Installation

npm install @23blocks/block-campaigns @23blocks/transport-http

Overview

This package provides marketing campaign functionality including:

  • Campaigns - Campaign management and tracking
  • Campaign Media - Media assets for campaigns
  • Landing Pages - Landing page management
  • Audiences - Target audience management

Quick Start

import { createHttpTransport } from '@23blocks/transport-http';
import { createCampaignsBlock } from '@23blocks/block-campaigns';

const transport = createHttpTransport({
  baseUrl: 'https://api.yourapp.com',
  headers: () => {
    const token = localStorage.getItem('access_token');
    return token ? { Authorization: `Bearer ${token}` } : {};
  },
});

const campaigns = createCampaignsBlock(transport, {
  apiKey: 'your-api-key',
});

// List active campaigns
const { data: campaignList } = await campaigns.campaigns.list({
  status: 'active',
  limit: 20,
});

campaignList.forEach((campaign) => {
  console.log(campaign.name, campaign.startDate, campaign.endDate);
});

Services

campaigns - Campaign Management

// List campaigns
const { data: campaignList } = await campaigns.campaigns.list({
  limit: 20,
  status: 'active',
});

// Get campaign by ID
const campaign = await campaigns.campaigns.get('campaign-id');

// Create campaign
const newCampaign = await campaigns.campaigns.create({
  name: 'Summer Sale 2024',
  description: 'Annual summer promotion',
  type: 'promotion',
  startDate: '2024-06-01',
  endDate: '2024-08-31',
  budget: 10000,
  status: 'draft',
});

// Update campaign
await campaigns.campaigns.update('campaign-id', {
  status: 'active',
  budget: 15000,
});

// Delete campaign
await campaigns.campaigns.delete('campaign-id');

// Get campaign results
const results = await campaigns.campaigns.getResults('campaign-id');
console.log(results.impressions, results.clicks, results.conversions);

campaignMedia - Media Management

// List media for campaign
const { data: mediaList } = await campaigns.campaignMedia.list({
  campaignId: 'campaign-id',
});

// Get media by ID
const media = await campaigns.campaignMedia.get('media-id');

// Create campaign media
const newMedia = await campaigns.campaignMedia.create({
  campaignId: 'campaign-id',
  name: 'Banner Ad',
  type: 'image',
  fileId: 'file-id',
  placement: 'homepage_banner',
  status: 'active',
});

// Update media
await campaigns.campaignMedia.update('media-id', {
  status: 'paused',
});

// Delete media
await campaigns.campaignMedia.delete('media-id');

// Get media results
const results = await campaigns.campaignMedia.getResults('media-id');
console.log(results.impressions, results.clicks, results.ctr);

landingPages - Landing Page Management

// List landing pages
const { data: pages } = await campaigns.landingPages.list({
  campaignId: 'campaign-id',
});

// Get landing page by ID
const page = await campaigns.landingPages.get('page-id');

// Create landing page
const newPage = await campaigns.landingPages.create({
  campaignId: 'campaign-id',
  name: 'Summer Sale Landing',
  slug: 'summer-sale-2024',
  title: 'Summer Sale - Up to 50% Off',
  content: '<h1>Summer Sale</h1>...',
  status: 'published',
});

// Update landing page
await campaigns.landingPages.update('page-id', {
  content: '<h1>Updated Content</h1>...',
});

// Delete landing page
await campaigns.landingPages.delete('page-id');

audiences - Audience Management

// List audiences
const { data: audiences } = await campaigns.audiences.list();

// Get audience by ID
const audience = await campaigns.audiences.get('audience-id');

// Create audience
const newAudience = await campaigns.audiences.create({
  name: 'Premium Customers',
  description: 'Customers with lifetime value > $1000',
  criteria: {
    minLifetimeValue: 1000,
    segments: ['active', 'returning'],
  },
});

// Update audience
await campaigns.audiences.update('audience-id', {
  criteria: {
    minLifetimeValue: 1500,
  },
});

// Delete audience
await campaigns.audiences.delete('audience-id');

// Get audience members
const { data: members } = await campaigns.audiences.getMembers('audience-id', {
  limit: 100,
});

// Add member to audience
await campaigns.audiences.addMember('audience-id', {
  userId: 'user-id',
});

// Remove member from audience
await campaigns.audiences.removeMember('audience-id', 'member-id');

Types

import type {
  Campaign,
  CampaignResults,
  CampaignMedia,
  CampaignMediaResults,
  LandingPage,
  Audience,
  AudienceMember,
  CreateCampaignRequest,
  CreateCampaignMediaRequest,
  CreateLandingPageRequest,
  CreateAudienceRequest,
} from '@23blocks/block-campaigns';

Campaign

PropertyTypeDescription
idstringCampaign ID
namestringCampaign name
descriptionstringCampaign description
typestringCampaign type
statusstringdraft, active, paused, completed
startDateDateCampaign start date
endDateDateCampaign end date
budgetnumberCampaign budget

CampaignResults

PropertyTypeDescription
impressionsnumberTotal impressions
clicksnumberTotal clicks
conversionsnumberTotal conversions
spendnumberTotal spend
revenuenumberTotal revenue
roinumberReturn on investment

License

MIT - Copyright (c) 2024 23blocks

Keywords

23blocks

FAQs

Package last updated on 28 May 2026

Related posts