@adkit/cli 1.13.32 → 1.13.33
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/README.md +8 -1
- package/dist/cli.js +54 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,9 +41,14 @@ adkit projects current
|
|
|
41
41
|
|
|
42
42
|
### Ad Library
|
|
43
43
|
|
|
44
|
-
Browse
|
|
44
|
+
Browse the shared ad library or your project’s My Watchlist. `add` finds or creates an advertiser and saves it to that project; `track` and `untrack` change membership for an existing ID. Repeating either is safe. Untracking keeps the shared advertiser and other projects intact.
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
+
adkit library advertisers list --scope watchlist --project <project-id>
|
|
48
|
+
adkit library advertisers search "notion" --scope watchlist --project <project-id>
|
|
49
|
+
adkit library advertisers add --website notion.so --project <project-id>
|
|
50
|
+
adkit library advertisers track <id> --project <project-id>
|
|
51
|
+
adkit library advertisers untrack <id> --project <project-id>
|
|
47
52
|
adkit library advertisers search "notion" --platform meta
|
|
48
53
|
adkit library advertisers <id>
|
|
49
54
|
adkit library advertisers similar --industry saas
|
|
@@ -51,6 +56,8 @@ adkit library ads list --advertiser <id>
|
|
|
51
56
|
adkit library ads <id>
|
|
52
57
|
```
|
|
53
58
|
|
|
59
|
+
Omit `--scope` (or use `--scope library`) for the whole library. List/search default to newest first; use `--sort name` for alphabetical order. Use `--json` for automation.
|
|
60
|
+
|
|
54
61
|
### Studio
|
|
55
62
|
|
|
56
63
|
Create and manage AI-generated ads.
|
package/dist/cli.js
CHANGED
|
@@ -4727,7 +4727,7 @@ function readStringFlag2(flags, key) {
|
|
|
4727
4727
|
const value = flags[key];
|
|
4728
4728
|
return typeof value === "string" ? value : void 0;
|
|
4729
4729
|
}
|
|
4730
|
-
var ADVERTISER_FILTER_FLAGS = ["industry", "category", "platform", "sort", "limit", "page"];
|
|
4730
|
+
var ADVERTISER_FILTER_FLAGS = ["industry", "category", "platform", "sort", "limit", "page", "scope"];
|
|
4731
4731
|
async function listAdvertisers(client, _args, flags) {
|
|
4732
4732
|
validateFlags(flags, ADVERTISER_FILTER_FLAGS, "library advertisers list");
|
|
4733
4733
|
const qs = buildAdvertiserQueryString(flags);
|
|
@@ -4769,14 +4769,31 @@ async function addAdvertiser(client, _args, flags) {
|
|
|
4769
4769
|
linkedInLibraryUrl: linkedinLibrary
|
|
4770
4770
|
});
|
|
4771
4771
|
}
|
|
4772
|
+
async function trackAdvertiser(client, args, flags) {
|
|
4773
|
+
const path3 = getAdvertiserWatchlistPath(args, flags);
|
|
4774
|
+
return client.post(path3);
|
|
4775
|
+
}
|
|
4776
|
+
async function untrackAdvertiser(client, args, flags) {
|
|
4777
|
+
const path3 = getAdvertiserWatchlistPath(args, flags);
|
|
4778
|
+
return client.delete(path3);
|
|
4779
|
+
}
|
|
4780
|
+
function getAdvertiserWatchlistPath(args, flags) {
|
|
4781
|
+
validateFlags(flags, [], "library advertisers");
|
|
4782
|
+
if (args.length !== 1 || !args[0]) throw new CliError("MISSING_ARGUMENT", "Expected exactly one advertiser ID", "Run: adkit library advertisers track <id> or adkit library advertisers untrack <id>");
|
|
4783
|
+
if (flags.data !== void 0) throw new CliError("INVALID_VALUE", "Watchlist changes do not accept --data", "Pass the advertiser ID as a positional argument and select the project with --project");
|
|
4784
|
+
const id = encodeURIComponent(args[0]);
|
|
4785
|
+
return `/library/advertisers/${id}/watchlist`;
|
|
4786
|
+
}
|
|
4772
4787
|
function buildAdvertiserQueryString(flags, query) {
|
|
4788
|
+
const scope = flags.scope;
|
|
4789
|
+
if (scope !== void 0 && scope !== "library" && scope !== "watchlist") throw new CliError("INVALID_VALUE", "--scope must be library or watchlist", "Use --scope watchlist for the selected project, or omit it to search the whole library");
|
|
4773
4790
|
const industry = typeof flags.industry === "string" ? flags.industry : void 0;
|
|
4774
4791
|
const category = typeof flags.category === "string" ? flags.category : void 0;
|
|
4775
4792
|
const platform2 = typeof flags.platform === "string" ? flags.platform : void 0;
|
|
4776
|
-
const sort = typeof flags.sort === "string" ? flags.sort :
|
|
4793
|
+
const sort = typeof flags.sort === "string" ? flags.sort : void 0;
|
|
4777
4794
|
const limit = typeof flags.limit === "string" ? flags.limit : void 0;
|
|
4778
4795
|
const page = typeof flags.page === "string" ? flags.page : void 0;
|
|
4779
|
-
return queryString3({ industry, category, platform: platform2, query, sort, limit, page });
|
|
4796
|
+
return queryString3({ industry, category, platform: platform2, query, sort, limit, page, scope });
|
|
4780
4797
|
}
|
|
4781
4798
|
async function listLibraryAds(client, _args, flags) {
|
|
4782
4799
|
const platform2 = readStringFlag2(flags, "platform");
|
|
@@ -8208,10 +8225,22 @@ Examples:
|
|
|
8208
8225
|
<id> View advertiser details
|
|
8209
8226
|
similar Find similar to your project
|
|
8210
8227
|
similar <id> Find similar to an advertiser
|
|
8211
|
-
add
|
|
8228
|
+
add Find or add an advertiser and save it to My Watchlist
|
|
8229
|
+
track <id> Save an existing advertiser to My Watchlist
|
|
8230
|
+
untrack <id> Remove it from this project only
|
|
8231
|
+
|
|
8232
|
+
Watchlist:
|
|
8233
|
+
--scope <library|watchlist> List/search the whole library (default) or My Watchlist
|
|
8234
|
+
--project <id> Choose the project; otherwise use the active project
|
|
8235
|
+
Track/untrack return advertiserId and tracked. Repeating either is safe.
|
|
8236
|
+
Untrack keeps the advertiser and other projects intact.
|
|
8212
8237
|
|
|
8213
8238
|
Examples:
|
|
8214
8239
|
adkit library advertisers list
|
|
8240
|
+
adkit library advertisers list --scope watchlist --project <project-id>
|
|
8241
|
+
adkit library advertisers search nike --scope watchlist --project <project-id>
|
|
8242
|
+
adkit library advertisers track <advertiser-id> --project <project-id>
|
|
8243
|
+
adkit library advertisers untrack <advertiser-id> --project <project-id>
|
|
8215
8244
|
adkit library advertisers search nike
|
|
8216
8245
|
adkit library advertisers list --platform meta --industry SaaS
|
|
8217
8246
|
adkit library advertisers similar
|
|
@@ -8360,13 +8389,15 @@ var HELP_FULL = {
|
|
|
8360
8389
|
<id> View advertiser details
|
|
8361
8390
|
similar Find similar to your project
|
|
8362
8391
|
similar <id> Find similar to an advertiser
|
|
8363
|
-
add
|
|
8392
|
+
add Find or add an advertiser and save it to My Watchlist
|
|
8393
|
+
track <id> Save an existing advertiser to My Watchlist
|
|
8394
|
+
untrack <id> Remove it from this project only
|
|
8364
8395
|
|
|
8365
8396
|
Filters (list / search):
|
|
8366
8397
|
--industry <string> Filter by industry (e.g. "SaaS", "E-commerce")
|
|
8367
8398
|
--category <string> Filter by category (e.g. "Productivity Tools")
|
|
8368
8399
|
--platform <meta|google|linkedin> Filter by ad platform
|
|
8369
|
-
--sort <name|newest|spend> Sort order (default:
|
|
8400
|
+
--sort <name|newest|spend> Sort order (default: newest)
|
|
8370
8401
|
--limit <n> Results per page (default: 20, max: 100)
|
|
8371
8402
|
--page <n> Page number (default: 1)
|
|
8372
8403
|
|
|
@@ -8384,8 +8415,18 @@ Add flags:
|
|
|
8384
8415
|
--google-library <url> Google Ads Transparency URL
|
|
8385
8416
|
--linkedin-library <url> LinkedIn Ad Library URL
|
|
8386
8417
|
|
|
8418
|
+
Watchlist:
|
|
8419
|
+
--scope <library|watchlist> List/search the whole library (default) or My Watchlist
|
|
8420
|
+
--project <id> Choose the project; otherwise use the active project
|
|
8421
|
+
Track/untrack return advertiserId and tracked. Repeating either is safe.
|
|
8422
|
+
Untrack keeps the advertiser and other projects intact.
|
|
8423
|
+
|
|
8387
8424
|
Examples:
|
|
8388
8425
|
adkit library advertisers list
|
|
8426
|
+
adkit library advertisers list --scope watchlist --project <project-id>
|
|
8427
|
+
adkit library advertisers search nike --scope watchlist --project <project-id>
|
|
8428
|
+
adkit library advertisers track <advertiser-id> --project <project-id>
|
|
8429
|
+
adkit library advertisers untrack <advertiser-id> --project <project-id>
|
|
8389
8430
|
adkit library advertisers search nike
|
|
8390
8431
|
adkit library advertisers search "productivity tools" --platform meta
|
|
8391
8432
|
adkit library advertisers list --industry SaaS --limit 10
|
|
@@ -8930,11 +8971,13 @@ function printAddAdvertiserResult(data) {
|
|
|
8930
8971
|
const adv = dig(data, "advertiser");
|
|
8931
8972
|
const isNew = dig(data, "isNew");
|
|
8932
8973
|
const jobCreated = dig(data, "jobCreated");
|
|
8974
|
+
const tracked = dig(data, "tracked");
|
|
8933
8975
|
const lines = [""];
|
|
8934
8976
|
if (isNew) lines.push(` \u2713 Created advertiser: ${toStr2(dig(adv, "name"))}`);
|
|
8935
8977
|
else lines.push(` Advertiser already exists: ${toStr2(dig(adv, "name"))}`);
|
|
8936
8978
|
if (dig(adv, "website")) lines.push(` Website: ${toStr2(dig(adv, "website"))}`);
|
|
8937
8979
|
if (dig(adv, "_id")) lines.push(` ID: ${toStr2(dig(adv, "_id"))}`);
|
|
8980
|
+
if (tracked === true) lines.push(" Saved to this project\u2019s watchlist.");
|
|
8938
8981
|
if (jobCreated) lines.push("", " Scraping job queued \u2014 advertiser data will be populated shortly.");
|
|
8939
8982
|
else if (!isNew && dig(adv, "hasDescription")) lines.push("", " Advertiser already has complete data.");
|
|
8940
8983
|
const job = dig(data, "job");
|
|
@@ -10255,6 +10298,11 @@ async function main() {
|
|
|
10255
10298
|
const data = await addAdvertiser(client, args.slice(3), flags);
|
|
10256
10299
|
if (wantsJson(flags)) printResult(data, flags);
|
|
10257
10300
|
else printAddAdvertiserResult(data);
|
|
10301
|
+
} else if (action === "track" || action === "untrack") {
|
|
10302
|
+
const changeWatchlist = action === "track" ? trackAdvertiser : untrackAdvertiser;
|
|
10303
|
+
const commandArgs = args.slice(3);
|
|
10304
|
+
const data = await changeWatchlist(client, commandArgs, flags);
|
|
10305
|
+
printResult(data, flags);
|
|
10258
10306
|
} else if (action === "similar") {
|
|
10259
10307
|
const advertiserId = args[3];
|
|
10260
10308
|
if (advertiserId) flags.advertiserId = advertiserId;
|
package/package.json
CHANGED