@mj-biz-apps/marketing-server 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/linkedInTargeting.test.d.ts +2 -0
- package/dist/__tests__/linkedInTargeting.test.d.ts.map +1 -0
- package/dist/__tests__/linkedInTargeting.test.js +65 -0
- package/dist/__tests__/linkedInTargeting.test.js.map +1 -0
- package/dist/agents/MarketingCreativeAgent.d.ts +16 -0
- package/dist/agents/MarketingCreativeAgent.d.ts.map +1 -0
- package/dist/agents/MarketingCreativeAgent.js +28 -0
- package/dist/agents/MarketingCreativeAgent.js.map +1 -0
- package/dist/agents/MarketingExperimentationAgent.d.ts +39 -0
- package/dist/agents/MarketingExperimentationAgent.d.ts.map +1 -1
- package/dist/agents/MarketingExperimentationAgent.js +73 -3
- package/dist/agents/MarketingExperimentationAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +3 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/programs/google/GoogleAdsProgramDriver.d.ts.map +1 -1
- package/dist/programs/google/GoogleAdsProgramDriver.js +14 -3
- package/dist/programs/google/GoogleAdsProgramDriver.js.map +1 -1
- package/dist/programs/google/googleBrandAssets.d.ts +5 -0
- package/dist/programs/google/googleBrandAssets.d.ts.map +1 -1
- package/dist/programs/google/googleBrandAssets.js +20 -15
- package/dist/programs/google/googleBrandAssets.js.map +1 -1
- package/dist/programs/index.d.ts +4 -0
- package/dist/programs/index.d.ts.map +1 -1
- package/dist/programs/index.js +5 -0
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/linkedin/LinkedInAdsClient.d.ts +123 -2
- package/dist/programs/linkedin/LinkedInAdsClient.d.ts.map +1 -1
- package/dist/programs/linkedin/LinkedInAdsClient.js +183 -26
- package/dist/programs/linkedin/LinkedInAdsClient.js.map +1 -1
- package/dist/programs/linkedin/LinkedInAdsProgramDriver.d.ts +38 -7
- package/dist/programs/linkedin/LinkedInAdsProgramDriver.d.ts.map +1 -1
- package/dist/programs/linkedin/LinkedInAdsProgramDriver.js +364 -70
- package/dist/programs/linkedin/LinkedInAdsProgramDriver.js.map +1 -1
- package/dist/programs/linkedin/linkedInExecutionContext.d.ts +6 -0
- package/dist/programs/linkedin/linkedInExecutionContext.d.ts.map +1 -1
- package/dist/programs/linkedin/linkedInExecutionContext.js +2 -1
- package/dist/programs/linkedin/linkedInExecutionContext.js.map +1 -1
- package/dist/programs/meta/MetaAdsClient.d.ts +101 -0
- package/dist/programs/meta/MetaAdsClient.d.ts.map +1 -0
- package/dist/programs/meta/MetaAdsClient.js +239 -0
- package/dist/programs/meta/MetaAdsClient.js.map +1 -0
- package/dist/programs/meta/MetaAdsProgramDriver.d.ts +76 -0
- package/dist/programs/meta/MetaAdsProgramDriver.d.ts.map +1 -0
- package/dist/programs/meta/MetaAdsProgramDriver.js +431 -0
- package/dist/programs/meta/MetaAdsProgramDriver.js.map +1 -0
- package/dist/programs/meta/metaAdsExecutionContext.d.ts +39 -0
- package/dist/programs/meta/metaAdsExecutionContext.d.ts.map +1 -0
- package/dist/programs/meta/metaAdsExecutionContext.js +99 -0
- package/dist/programs/meta/metaAdsExecutionContext.js.map +1 -0
- package/package.json +9 -8
|
@@ -30,6 +30,7 @@ const ENDPOINTS = {
|
|
|
30
30
|
campaignGroups: (adAccountId) => `/adAccounts/${adAccountId}/adCampaignGroups`,
|
|
31
31
|
campaigns: (adAccountId) => `/adAccounts/${adAccountId}/adCampaigns`,
|
|
32
32
|
campaign: (adAccountId, campaignId) => `/adAccounts/${adAccountId}/adCampaigns/${campaignId}`,
|
|
33
|
+
campaignGroup: (adAccountId, groupId) => `/adAccounts/${adAccountId}/adCampaignGroups/${groupId}`,
|
|
33
34
|
/**
|
|
34
35
|
* Website retargeting is a THREE-object flow (live-verified 2026-09-21 after /dmpSegments
|
|
35
36
|
* answered 422 — that API is for uploaded lists, not Insight Tag visitors): a page set
|
|
@@ -47,6 +48,12 @@ const ENDPOINTS = {
|
|
|
47
48
|
creativesInline: (adAccountId) => `/adAccounts/${adAccountId}/creatives?action=createInline`,
|
|
48
49
|
creative: (adAccountId, creativeUrn) => `/adAccounts/${adAccountId}/creatives/${encodeURIComponent(creativeUrn)}`,
|
|
49
50
|
post: (postUrn) => `/posts/${encodeURIComponent(postUrn)}`,
|
|
51
|
+
/** Saved audiences ("Saved Audience Templates"): account-level, carry their own targetingCriteria and an approximate member count (R1/R2). */
|
|
52
|
+
audienceTemplates: (accountUrn) => `/adTargetTemplates?q=account&account=${encodeURIComponent(accountUrn)}&sortField=ID`,
|
|
53
|
+
/** Conversions defined on the account (Insight Tag rules, CAPI, lead gen), paged (R5). */
|
|
54
|
+
conversions: (accountUrn, start) => `/conversions?q=account&account=${encodeURIComponent(accountUrn)}&start=${start}&count=50`,
|
|
55
|
+
/** The campaign ↔ conversion association — a compound-key PUT, idempotent (R5). */
|
|
56
|
+
campaignConversion: (campaignUrn, conversionUrn) => `/campaignConversions/${restliCompoundKey({ campaign: campaignUrn, conversion: conversionUrn })}`,
|
|
50
57
|
};
|
|
51
58
|
export class LinkedInApiError extends Error {
|
|
52
59
|
constructor(status, message,
|
|
@@ -58,6 +65,30 @@ export class LinkedInApiError extends Error {
|
|
|
58
65
|
this.name = 'LinkedInApiError';
|
|
59
66
|
}
|
|
60
67
|
}
|
|
68
|
+
/** The scope a campaign↔conversion association needs (an UPDATE on the conversion): the Conversions API product's scope. */
|
|
69
|
+
export const CONVERSION_SCOPE = 'rw_conversions';
|
|
70
|
+
/**
|
|
71
|
+
* Whether a token's scopes allow attaching a conversion (KI-148). Null scopes = the refresh response named none,
|
|
72
|
+
* which is not a refusal — the lock will find out — so only a KNOWN list without the scope is a miss.
|
|
73
|
+
*/
|
|
74
|
+
export function lacksConversionScope(scopes) {
|
|
75
|
+
return scopes !== null && !scopes.includes(CONVERSION_SCOPE);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The post content of an ad (KI-150): article content with the image as the thumbnail — the only shape Campaign
|
|
79
|
+
* Manager renders with a headline, a destination URL and a button. Without an image the article has no thumbnail
|
|
80
|
+
* (a plain link card). Exported for the unit test; the builder above is the one caller.
|
|
81
|
+
*/
|
|
82
|
+
export function inlineCreativeContent(opts) {
|
|
83
|
+
return {
|
|
84
|
+
article: {
|
|
85
|
+
source: opts.landingPageUrl,
|
|
86
|
+
title: opts.headline,
|
|
87
|
+
...(opts.description ? { description: opts.description } : {}),
|
|
88
|
+
...(opts.imageUrn ? { thumbnail: opts.imageUrn, thumbnailAltText: opts.headline } : {}),
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
61
92
|
export class LinkedInAdsClient {
|
|
62
93
|
constructor(config) {
|
|
63
94
|
this.config = config;
|
|
@@ -100,34 +131,73 @@ export class LinkedInAdsClient {
|
|
|
100
131
|
// — the Audience Network is a reach lever nobody has asked for yet.
|
|
101
132
|
politicalIntent: 'NOT_POLITICAL',
|
|
102
133
|
offsiteDeliveryEnabled: false,
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
// LinkedIn's allowed-combination matrix: for WEBSITE_VISIT
|
|
108
|
-
//
|
|
109
|
-
|
|
134
|
+
// The objective follows the levers (R5): a program that names a conversion optimises for it
|
|
135
|
+
// (WEBSITE_CONVERSION + MAX_CONVERSION — the pair the account's own Teams Demo campaign runs,
|
|
136
|
+
// read back 2026-10-14); without one the campaign lands on the stamped page and optimises for clicks
|
|
137
|
+
// (WEBSITE_VISIT — singular, the docs table says WEBSITE_VISITS and the API rejects it, live-verified).
|
|
138
|
+
// LinkedIn's allowed-combination matrix: for WEBSITE_VISIT auto-bidding is MAX_CLICK (MAX_IMPRESSION is
|
|
139
|
+
// BRAND_AWARENESS-only), and auto-bidding is charged CPM — CPC with MAX_CLICK is rejected (2026-09-21).
|
|
140
|
+
objectiveType: opts.objective ?? 'WEBSITE_VISIT',
|
|
110
141
|
// Sponsored Content = a single-image/text update from the company page; both are
|
|
111
142
|
// LinkedIn business rules (MULTIPLE_VALIDATIONS_FAILED without them, live-verified).
|
|
112
143
|
format: 'STANDARD_UPDATE',
|
|
113
144
|
associatedEntity: opts.organizationUrn,
|
|
114
|
-
optimizationTargetType: 'MAX_CLICK',
|
|
145
|
+
optimizationTargetType: (opts.objective ?? 'WEBSITE_VISIT') === 'WEBSITE_CONVERSION' ? 'MAX_CONVERSION' : 'MAX_CLICK',
|
|
115
146
|
creativeSelection: 'OPTIMIZED',
|
|
116
147
|
audienceExpansionEnabled: false,
|
|
117
148
|
};
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
|
|
123
|
-
const facets = [];
|
|
124
|
-
if (opts.audienceUrn)
|
|
125
|
-
facets.push({ 'urn:li:adTargetingFacet:dynamicSegments': [opts.audienceUrn] });
|
|
126
|
-
facets.push({ 'urn:li:adTargetingFacet:locations': [TARGETING_DEFAULTS.geoUrn] });
|
|
127
|
-
facets.push({ 'urn:li:adTargetingFacet:interfaceLocales': [TARGETING_DEFAULTS.localeUrn] });
|
|
128
|
-
body['targetingCriteria'] = { include: { and: facets.map(f => ({ or: f })) } };
|
|
149
|
+
// The saved audience's criteria, verbatim (R1), with what LinkedIn requires on every campaign added when the
|
|
150
|
+
// template lacks it (a location and an interface locale — a segment alone is rejected), and the website
|
|
151
|
+
// retargeting segment AND-ed in through the DYNAMIC facet (the audienceMatching facet is for uploaded lists
|
|
152
|
+
// and 422s for a retargeting segment, live-verified 2026-09-21).
|
|
153
|
+
body['targetingCriteria'] = withRequiredFacets(opts.targetingCriteria, opts.audienceUrn ?? null);
|
|
129
154
|
return this.create(ENDPOINTS.campaigns(this.config.adAccountId), body, 'urn:li:sponsoredCampaign');
|
|
130
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* The account's saved audiences (R1). Exact, case-insensitive name match; null when the account has none by
|
|
158
|
+
* that name — the driver turns that into `LI_AUDIENCE_TEMPLATE_UNKNOWN` with the names it did find.
|
|
159
|
+
*/
|
|
160
|
+
async audienceTemplates() {
|
|
161
|
+
const res = await this.rest('GET', ENDPOINTS.audienceTemplates(this.accountUrn));
|
|
162
|
+
return (res.elements ?? [])
|
|
163
|
+
.filter(e => typeof e.name === 'string' && e.targetingCriteria && typeof e.targetingCriteria === 'object')
|
|
164
|
+
.map(e => ({
|
|
165
|
+
id: String(e.id ?? ''),
|
|
166
|
+
name: e.name,
|
|
167
|
+
approximateMemberCount: typeof e.approximateMemberCount === 'number' ? e.approximateMemberCount : null,
|
|
168
|
+
targetingCriteria: e.targetingCriteria,
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
/** One saved audience by its id (D-34): the lever and the connection default carry ids, never names. */
|
|
172
|
+
async findAudienceTemplateById(id) {
|
|
173
|
+
const want = id.trim();
|
|
174
|
+
return (await this.audienceTemplates()).find(t => t.id === want) ?? null;
|
|
175
|
+
}
|
|
176
|
+
/** Every conversion on the account (R5), all pages. */
|
|
177
|
+
async conversions() {
|
|
178
|
+
const out = [];
|
|
179
|
+
for (let start = 0; start < 2000; start += 50) {
|
|
180
|
+
const res = await this.rest('GET', ENDPOINTS.conversions(this.accountUrn, start));
|
|
181
|
+
const page = res.elements ?? [];
|
|
182
|
+
for (const c of page) {
|
|
183
|
+
if (typeof c.name !== 'string' || c.id == null)
|
|
184
|
+
continue;
|
|
185
|
+
out.push({ id: String(c.id), urn: `urn:lla:llaPartnerConversion:${c.id}`, name: c.name, type: c.type ?? null, enabled: c.enabled !== false });
|
|
186
|
+
}
|
|
187
|
+
if (page.length < 50)
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
192
|
+
/** One conversion by its id (D-34). */
|
|
193
|
+
async findConversionById(id) {
|
|
194
|
+
const want = id.trim();
|
|
195
|
+
return (await this.conversions()).find(c => c.id === want) ?? null;
|
|
196
|
+
}
|
|
197
|
+
/** Attaches a conversion to a campaign (R5). A PUT on the compound key; repeating it is a no-op on LinkedIn's side. */
|
|
198
|
+
async associateConversion(campaignUrn, conversionUrn) {
|
|
199
|
+
await this.raw('PUT', ENDPOINTS.campaignConversion(campaignUrn, conversionUrn), { campaign: campaignUrn, conversion: conversionUrn });
|
|
200
|
+
}
|
|
131
201
|
/**
|
|
132
202
|
* Creates a website-visitor retargeting audience: page set → empty RETARGETING segment →
|
|
133
203
|
* source link. Returns the SEGMENT urn (what a campaign targets) plus the page set urn, so
|
|
@@ -241,13 +311,16 @@ export class LinkedInAdsClient {
|
|
|
241
311
|
/**
|
|
242
312
|
* Creates the ad: a DARK post (Direct Sponsored Content — authored by the company page but
|
|
243
313
|
* never shown on its feed; it exists only inside the campaign) and the creative that sponsors
|
|
244
|
-
* it, in LinkedIn's single inline call.
|
|
245
|
-
*
|
|
314
|
+
* it, in LinkedIn's single inline call. The post is ALWAYS article content (KI-150): the landing
|
|
315
|
+
* page as `source`, the headline as `title`, the image as `thumbnail`. That is what Campaign
|
|
316
|
+
* Manager calls a single image ad — headline, destination URL and button under the image. The
|
|
317
|
+
* `media` shape LinkedIn's Image Ads page shows is a sponsored image post: Campaign Manager maps
|
|
318
|
+
* its title to alt text and has no headline, destination or button for it, so CP-02 served as a
|
|
319
|
+
* bare picture (the editor's own preview showed intro text and image only, 2026-10-19). Returns
|
|
320
|
+
* the creative urn.
|
|
246
321
|
*/
|
|
247
322
|
async createInlineCreative(opts) {
|
|
248
|
-
const content = opts
|
|
249
|
-
? { media: { id: opts.imageUrn, title: opts.headline, altText: opts.headline } }
|
|
250
|
-
: { article: { source: opts.landingPageUrl, title: opts.headline, ...(opts.description ? { description: opts.description } : {}) } };
|
|
323
|
+
const content = inlineCreativeContent(opts);
|
|
251
324
|
const body = {
|
|
252
325
|
creative: {
|
|
253
326
|
inlineContent: {
|
|
@@ -258,7 +331,7 @@ export class LinkedInAdsClient {
|
|
|
258
331
|
visibility: 'PUBLIC',
|
|
259
332
|
lifecycleState: 'PUBLISHED',
|
|
260
333
|
isReshareDisabledByAuthor: true,
|
|
261
|
-
contentCallToActionLabel:
|
|
334
|
+
contentCallToActionLabel: opts.callToAction,
|
|
262
335
|
contentLandingPage: opts.landingPageUrl,
|
|
263
336
|
content,
|
|
264
337
|
},
|
|
@@ -302,6 +375,19 @@ export class LinkedInAdsClient {
|
|
|
302
375
|
const creative = await this.rest('GET', ENDPOINTS.creative(this.config.adAccountId, creativeUrn));
|
|
303
376
|
return typeof creative.content?.reference === 'string' ? creative.content.reference : null;
|
|
304
377
|
}
|
|
378
|
+
/**
|
|
379
|
+
* Retires a creative the way LinkedIn allows (KI-146, live-verified 2026-10-15 on the test account): ACTIVE → ARCHIVED
|
|
380
|
+
* is refused unless `review.status` is APPROVED (`TRANSITION_CONDITIONALLY_NOT_ALLOWED`), so a REJECTED or
|
|
381
|
+
* PENDING creative is PAUSED instead — it cannot serve either way, and the dark post is deleted by the caller.
|
|
382
|
+
* Returns the status LinkedIn accepted.
|
|
383
|
+
*/
|
|
384
|
+
async retireCreative(creativeUrn) {
|
|
385
|
+
const creative = await this.rest('GET', ENDPOINTS.creative(this.config.adAccountId, creativeUrn));
|
|
386
|
+
const target = creativeRetireTarget(creative);
|
|
387
|
+
if (target.change)
|
|
388
|
+
await this.setCreativeStatus(creativeUrn, 'ARCHIVED');
|
|
389
|
+
return target.status;
|
|
390
|
+
}
|
|
305
391
|
async setCreativeStatus(creativeUrn, status) {
|
|
306
392
|
await this.raw('POST', ENDPOINTS.creative(this.config.adAccountId, creativeUrn), { patch: { $set: { intendedStatus: status } } }, { 'X-RestLi-Method': 'PARTIAL_UPDATE' });
|
|
307
393
|
}
|
|
@@ -324,7 +410,7 @@ export class LinkedInAdsClient {
|
|
|
324
410
|
const campaigns = `List(${campaignUrns.map(u => encodeURIComponent(u)).join(',')})`;
|
|
325
411
|
const path = `${ENDPOINTS.adAnalytics}?q=analytics&pivot=CAMPAIGN&timeGranularity=ALL`
|
|
326
412
|
+ `&dateRange=${range}&campaigns=${campaigns}`
|
|
327
|
-
+ `&fields=impressions,clicks,externalWebsiteConversions,costInLocalCurrency`;
|
|
413
|
+
+ `&fields=impressions,clicks,landingPageClicks,externalWebsiteConversions,costInLocalCurrency`;
|
|
328
414
|
const res = await this.rest('GET', path);
|
|
329
415
|
const elements = Array.isArray(res?.elements)
|
|
330
416
|
? res.elements
|
|
@@ -333,6 +419,7 @@ export class LinkedInAdsClient {
|
|
|
333
419
|
return {
|
|
334
420
|
impressions: sum('impressions'),
|
|
335
421
|
clicks: sum('clicks'),
|
|
422
|
+
landingPageClicks: sum('landingPageClicks'),
|
|
336
423
|
externalWebsiteConversions: sum('externalWebsiteConversions'),
|
|
337
424
|
spendUsd: elements.reduce((a, e) => a + (Number(e['costInLocalCurrency']) || 0), 0),
|
|
338
425
|
};
|
|
@@ -349,6 +436,31 @@ export class LinkedInAdsClient {
|
|
|
349
436
|
throw new LinkedInApiError(response.status, `LinkedIn create at ${path} returned no x-restli-id header.`, false);
|
|
350
437
|
return id.startsWith('urn:') ? id : `${urnPrefix}:${id}`;
|
|
351
438
|
}
|
|
439
|
+
/**
|
|
440
|
+
* Moves a campaign's run schedule (KI-119): the program's sprint was pulled forward after lock and the platform
|
|
441
|
+
* still carried the old start. LinkedIn's rules, live-verified 2026-10-12 on a real account: a CAMPAIGN's
|
|
442
|
+
* start and end can be changed while it is Active and unserved; a non-draft campaign GROUP's `runSchedule.start`
|
|
443
|
+
* is immutable (`FIELD_IMMUTABLE_FOR_NON_DRAFT_CAMPAIGNS`), and a campaign may not run outside its group. So the
|
|
444
|
+
* group's start is never touched, its END is extended only when the new window runs past it, and the campaign
|
|
445
|
+
* gets the window — in that order, because the campaign update is refused while it would exceed the group.
|
|
446
|
+
*/
|
|
447
|
+
async setRunSchedule(campaignUrn, campaignGroupUrn, runSchedule) {
|
|
448
|
+
if (campaignGroupUrn && runSchedule.end != null) {
|
|
449
|
+
const groupId = campaignGroupUrn.split(':').pop() ?? campaignGroupUrn;
|
|
450
|
+
const group = await this.rest('GET', ENDPOINTS.campaignGroup(this.config.adAccountId, groupId));
|
|
451
|
+
const groupEnd = group.runSchedule?.end;
|
|
452
|
+
if (groupEnd != null && groupEnd < runSchedule.end) {
|
|
453
|
+
await this.raw('POST', ENDPOINTS.campaignGroup(this.config.adAccountId, groupId), { patch: { $set: { runSchedule: { start: group.runSchedule?.start ?? runSchedule.start, end: runSchedule.end } } } }, { 'X-RestLi-Method': 'PARTIAL_UPDATE' });
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
await this.partialUpdateCampaign(campaignUrn, { runSchedule });
|
|
457
|
+
}
|
|
458
|
+
/** A campaign group's recorded start (epoch ms), or null when LinkedIn reports none (KI-143). */
|
|
459
|
+
async campaignGroupStart(campaignGroupUrn) {
|
|
460
|
+
const groupId = campaignGroupUrn.split(':').pop() ?? campaignGroupUrn;
|
|
461
|
+
const group = await this.rest('GET', ENDPOINTS.campaignGroup(this.config.adAccountId, groupId));
|
|
462
|
+
return group.runSchedule?.start ?? null;
|
|
463
|
+
}
|
|
352
464
|
async partialUpdateCampaign(campaignUrn, set) {
|
|
353
465
|
const campaignId = campaignUrn.split(':').pop() ?? campaignUrn;
|
|
354
466
|
await this.raw('POST', ENDPOINTS.campaign(this.config.adAccountId, campaignId), { patch: { $set: set } }, { 'X-RestLi-Method': 'PARTIAL_UPDATE' });
|
|
@@ -377,6 +489,11 @@ export class LinkedInAdsClient {
|
|
|
377
489
|
return response;
|
|
378
490
|
}
|
|
379
491
|
/** Refresh-token grant, cached in-memory with a 60s safety margin. */
|
|
492
|
+
/** The scopes the member authorization carries, as the token refresh reports them; null when it reported none. */
|
|
493
|
+
async tokenScopes() {
|
|
494
|
+
await this.accessToken();
|
|
495
|
+
return this.token?.scopes.length ? this.token.scopes : null;
|
|
496
|
+
}
|
|
380
497
|
async accessToken() {
|
|
381
498
|
if (this.token && Date.now() < this.token.expiresAtMs - 60_000)
|
|
382
499
|
return this.token.accessToken;
|
|
@@ -402,11 +519,33 @@ export class LinkedInAdsClient {
|
|
|
402
519
|
this.token = {
|
|
403
520
|
accessToken: json.access_token,
|
|
404
521
|
expiresAtMs: Date.now() + (Number(json.expires_in) || 1800) * 1000,
|
|
522
|
+
scopes: typeof json.scope === 'string' ? json.scope.split(/[\s,]+/).filter(Boolean) : [],
|
|
405
523
|
};
|
|
406
524
|
LogStatus('LinkedInAdsClient: access token refreshed.');
|
|
407
525
|
return this.token.accessToken;
|
|
408
526
|
}
|
|
409
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* A saved audience's criteria plus what LinkedIn requires on every campaign: a location and an interface locale
|
|
530
|
+
* (both rejected when absent), and the retargeting segment when the audience lever asked for one. The template's
|
|
531
|
+
* own `and` list is preserved in order; `exclude` passes through untouched. Exported for the unit test.
|
|
532
|
+
*/
|
|
533
|
+
export function withRequiredFacets(targetingCriteria, audienceUrn) {
|
|
534
|
+
const include = (targetingCriteria['include'] && typeof targetingCriteria['include'] === 'object')
|
|
535
|
+
? { ...targetingCriteria['include'] } : {};
|
|
536
|
+
const and = Array.isArray(include['and'])
|
|
537
|
+
? include['and'].map(a => ({ or: { ...(a.or ?? {}) } }))
|
|
538
|
+
: [];
|
|
539
|
+
const has = (facet) => and.some(a => Object.keys(a.or).includes(facet));
|
|
540
|
+
if (audienceUrn)
|
|
541
|
+
and.unshift({ or: { 'urn:li:adTargetingFacet:dynamicSegments': [audienceUrn] } });
|
|
542
|
+
if (!has('urn:li:adTargetingFacet:locations'))
|
|
543
|
+
and.push({ or: { 'urn:li:adTargetingFacet:locations': [TARGETING_DEFAULTS.geoUrn] } });
|
|
544
|
+
if (!has('urn:li:adTargetingFacet:interfaceLocales'))
|
|
545
|
+
and.push({ or: { 'urn:li:adTargetingFacet:interfaceLocales': [TARGETING_DEFAULTS.localeUrn] } });
|
|
546
|
+
include['and'] = and;
|
|
547
|
+
return { ...targetingCriteria, include };
|
|
548
|
+
}
|
|
410
549
|
async function safeText(response) {
|
|
411
550
|
try {
|
|
412
551
|
return (await response.text()).slice(0, 500);
|
|
@@ -415,4 +554,22 @@ async function safeText(response) {
|
|
|
415
554
|
return '';
|
|
416
555
|
}
|
|
417
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* LinkedIn's retire rule as a pure decision (KI-146): an already-archived creative needs nothing; an APPROVED one is
|
|
559
|
+
* archived; anything else (REJECTED, PENDING, no review) can only be paused — ACTIVE → ARCHIVED is refused for it.
|
|
560
|
+
*/
|
|
561
|
+
/**
|
|
562
|
+
* What a stand-down may do to a creative (KI-146, live-verified twice): LinkedIn allows NO status change — not to
|
|
563
|
+
* ARCHIVED, not to PAUSED — until `review.status` is APPROVED ("transition is not allowed from ACTIVE to PAUSED if
|
|
564
|
+
* reviewStatus is not set to APPROVED", CP-03). An approved creative is archived; an unreviewed or rejected one is left
|
|
565
|
+
* as it is (`HELD`): its campaign is paused and its post deleted, so it cannot serve, and LinkedIn holds it with
|
|
566
|
+
* CAMPAIGN_STOPPED.
|
|
567
|
+
*/
|
|
568
|
+
export function creativeRetireTarget(creative) {
|
|
569
|
+
if (creative.intendedStatus === 'ARCHIVED')
|
|
570
|
+
return { status: 'ARCHIVED', change: false };
|
|
571
|
+
if (creative.review?.status === 'APPROVED')
|
|
572
|
+
return { status: 'ARCHIVED', change: true };
|
|
573
|
+
return { status: 'HELD', change: false };
|
|
574
|
+
}
|
|
418
575
|
//# sourceMappingURL=LinkedInAdsClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedInAdsClient.js","sourceRoot":"","sources":["../../../src/programs/linkedin/LinkedInAdsClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LinkedInAdsClient.js","sourceRoot":"","sources":["../../../src/programs/linkedin/LinkedInAdsClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* program-approval gate (V3-12) — by the time onLock runs, a human approved the spend.
|
|
29
29
|
*/
|
|
30
30
|
import { type UserInfo } from '@memberjunction/core';
|
|
31
|
-
import { BaseProgramTypeDriver, type DriverRetirementReason, type DriverValidationIssue, type MetricCollectionWindow, type MetricObservation, type ProgramForDriver, type ProgramTypeParamSpec, type RefreshStatusResult, type RetireStatusResult } from '@mj-biz-apps/marketing-core';
|
|
31
|
+
import { BaseProgramTypeDriver, type DriverRetirementReason, type DriverValidationIssue, type AdCampaignConfig, type MetricCollectionWindow, type MetricObservation, type ProgramForDriver, type ProgramTypeParamSpec, type RefreshStatusResult, type RetireStatusResult, type ServingChangeResult, type ServingSnapshot, type PlatformAudienceOptions, type MovedWindow, type RescheduleResult } from '@mj-biz-apps/marketing-core';
|
|
32
32
|
import { type LinkedInContextResolver } from './linkedInExecutionContext.js';
|
|
33
33
|
export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
34
34
|
private readonly contextUser?;
|
|
@@ -38,15 +38,23 @@ export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
|
38
38
|
readonly paramSpecs: ReadonlyArray<ProgramTypeParamSpec>;
|
|
39
39
|
constructor(contextUser?: UserInfo, resolveContext?: LinkedInContextResolver);
|
|
40
40
|
validateProposal(program: ProgramForDriver): Promise<DriverValidationIssue[]>;
|
|
41
|
+
/**
|
|
42
|
+
* The audience and the conversion are platform OBJECTS the levers point at by id (R1/R2/R5, D-34): the pre-check
|
|
43
|
+
* looks them up so an id the account does not hold, a country-wide audience or an audience LinkedIn will not serve
|
|
44
|
+
* to is refused while the proposal is still a draft — not discovered at lock, and never, as with CP-02, discovered
|
|
45
|
+
* on the invoice. One GET each; a lookup that fails is a warning (the platform, not the proposal, is the problem).
|
|
46
|
+
*/
|
|
47
|
+
private validateAudienceAndConversion;
|
|
41
48
|
onLock(program: ProgramForDriver): Promise<void>;
|
|
42
49
|
/**
|
|
43
|
-
* The
|
|
44
|
-
* page (a dark post — it exists only inside the campaign, never on the page's feed) and
|
|
45
|
-
* attached to the campaign
|
|
46
|
-
* means the campaign launches ad-less and SAYS so; a missing or unusable
|
|
47
|
-
* to an article ad (link card) rather than to no ad
|
|
50
|
+
* The ads themselves (R4): ONE creative per headline, up to five, each the agent's copy posted as Direct Sponsored
|
|
51
|
+
* Content from the brand's page (a dark post — it exists only inside the campaign, never on the page's feed) and
|
|
52
|
+
* attached to the campaign, so `creativeSelection: OPTIMIZED` has something to optimise. Mirrors the Google
|
|
53
|
+
* driver's contract: no headline means the campaign launches ad-less and SAYS so; a missing or unusable image
|
|
54
|
+
* degrades to an article ad (link card) rather than to no ad. Idempotent per VARIANT: a second lock finds each
|
|
55
|
+
* variant's ref (or adopts an orphan by name) and creates only what is missing.
|
|
48
56
|
*/
|
|
49
|
-
private
|
|
57
|
+
private attachCreatives;
|
|
50
58
|
/**
|
|
51
59
|
* The brand's marketing image (Brand.MarketingImageURL — Settings → Brand ad assets), fetched
|
|
52
60
|
* with the same guards as the Google driver (public URL only, PNG/JPEG, 5MB) and uploaded to
|
|
@@ -54,6 +62,8 @@ export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
|
54
62
|
* cannot be used, so the caller can say why.
|
|
55
63
|
*/
|
|
56
64
|
private uploadBrandImage;
|
|
65
|
+
/** One fetch-and-upload for every image source (brand or program): public URL only, PNG/JPEG, 5MB. */
|
|
66
|
+
private uploadImageFromUrl;
|
|
57
67
|
collectMetrics(program: ProgramForDriver, window: MetricCollectionWindow): Promise<MetricObservation[] | null>;
|
|
58
68
|
/**
|
|
59
69
|
* The continuous poll (HA-7): the same platform figures collectMetrics reports at review time,
|
|
@@ -63,6 +73,14 @@ export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
|
63
73
|
*/
|
|
64
74
|
refreshStatus(program: ProgramForDriver, window: MetricCollectionWindow): Promise<RefreshStatusResult>;
|
|
65
75
|
onRetire(program: ProgramForDriver, reason: DriverRetirementReason): Promise<RetireStatusResult>;
|
|
76
|
+
/** Stop serving, keep everything (R6 / KI-120): the campaigns go PAUSED; creatives and posts stay. */
|
|
77
|
+
onPause(program: ProgramForDriver): Promise<ServingChangeResult>;
|
|
78
|
+
onResume(program: ProgramForDriver): Promise<ServingChangeResult>;
|
|
79
|
+
private setServing;
|
|
80
|
+
/** The account's saved audiences and conversions (R1/R5): what Settings offers and the agent may name. */
|
|
81
|
+
listAudienceOptions(brandId: string): Promise<PlatformAudienceOptions | null>;
|
|
82
|
+
/** Live figures since the campaign was created (R6): what the early serving check judges. */
|
|
83
|
+
servingSnapshot(program: ProgramForDriver): Promise<ServingSnapshot | null>;
|
|
66
84
|
/**
|
|
67
85
|
* Which company page sponsors the campaign. The ad account's `reference` wins when it is a
|
|
68
86
|
* page (a business account always carries one); the connection setting fills in when the
|
|
@@ -78,6 +96,12 @@ export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
|
78
96
|
* way starts now; a missing end leaves the window open (the decision pauses it anyway).
|
|
79
97
|
*/
|
|
80
98
|
private runScheduleFor;
|
|
99
|
+
/**
|
|
100
|
+
* KI-119: the sprint moved after lock (an early close pulled it forward). The campaign group and campaign were
|
|
101
|
+
* created with the OLD window as their run schedule, so without this the real ad sat waiting for the original
|
|
102
|
+
* date while the app said the sprint was running. Both objects get the window the program now carries.
|
|
103
|
+
*/
|
|
104
|
+
onWindowMoved(program: ProgramForDriver, window: MovedWindow): Promise<RescheduleResult>;
|
|
81
105
|
private loadRefs;
|
|
82
106
|
private saveRef;
|
|
83
107
|
/** A ref's recorded state (breadcrumbs written at create time); an unparseable one reads as empty. */
|
|
@@ -89,4 +113,11 @@ export declare class LinkedInAdsProgramDriver extends BaseProgramTypeDriver {
|
|
|
89
113
|
private requireUser;
|
|
90
114
|
}
|
|
91
115
|
export declare function LoadLinkedInAdsProgramDriver(): void;
|
|
116
|
+
/**
|
|
117
|
+
* LinkedIn's own copy rules, at propose (DRIVERS.md §11: "the only place a platform's rules live"). Lengths that
|
|
118
|
+
* LinkedIn enforces are errors in the shared parser (600 for the intro); what it merely clips is a notice.
|
|
119
|
+
*/
|
|
120
|
+
export declare function validateLinkedInCreative(config: AdCampaignConfig): DriverValidationIssue[];
|
|
121
|
+
/** R2: the saved audience's own approximate count against the floor LinkedIn serves to and the ceiling Trent set. */
|
|
122
|
+
export declare function conversionScopeMessage(): string;
|
|
92
123
|
//# sourceMappingURL=LinkedInAdsProgramDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedInAdsProgramDriver.d.ts","sourceRoot":"","sources":["../../../src/programs/linkedin/LinkedInAdsProgramDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG7F,OAAO,EACH,qBAAqB,EAKrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"LinkedInAdsProgramDriver.d.ts","sourceRoot":"","sources":["../../../src/programs/linkedin/LinkedInAdsProgramDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG7F,OAAO,EACH,qBAAqB,EAKrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAOsC,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKnJ,OAAO,EAGH,KAAK,uBAAuB,EAA4B,MAAM,+BAA+B,CAAC;AAIlG,qBACa,wBAAyB,SAAQ,qBAAqB;IAS3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IATnC,SAAgB,QAAQ,kBAA0B;IAClD,yFAAyF;IACzF,SAAgB,UAAU,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAG7D;gBAGmB,WAAW,CAAC,EAAE,QAAQ,EACtB,cAAc,GAAE,uBAAyD;IAKjF,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAsB1F;;;;;OAKG;YACW,6BAA6B;IAiE9B,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmH7D;;;;;;;OAOG;YACW,eAAe;IAyE7B;;;;;OAKG;YACW,gBAAgB;IAM9B,sGAAsG;YACxF,kBAAkB;IAYnB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAoC3H;;;;;OAKG;IACmB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoB/G,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkD7G,sGAAsG;IAChF,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIhE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAIzE,UAAU;IAmBxB,0GAA0G;IACpF,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAYnG,6FAA6F;IACvE,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAejG;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;;;OAMG;YACW,cAAc;IAiB5B;;;;OAIG;IACmB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAyBhG,QAAQ;YAaR,OAAO;IAqBrB,sGAAsG;IACtG,OAAO,CAAC,OAAO;YAID,cAAc;IAW5B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;CAItB;AAED,wBAAgB,4BAA4B,SAAK;AAEjD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,EAAE,CAa1F;AAED,qHAAqH;AACrH,wBACS,sBAAsB,IAAI,MAAM,CAGxC"}
|