@feastalytics/cli 0.1.14 → 0.1.15
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/cli.js +45 -2
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -13903,12 +13903,25 @@ var CLI_MANIFEST = {
|
|
|
13903
13903
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
13904
13904
|
}
|
|
13905
13905
|
},
|
|
13906
|
+
{
|
|
13907
|
+
"id": "getCampaignBenchmarks",
|
|
13908
|
+
"domain": "campaigns",
|
|
13909
|
+
"description": "The definition and target band of every campaign metric id that getCampaignKpis and getCampaignBreakdown return. One entry per id: { id, label, unit, description, formula, benchmark }, where unit is count, percent (0-100), usd (dollars), days or multiple (ROAS, 2 = 2x), and benchmark is { min, good, great } in that unit or null when the metric has no target band. Grade a value as green at or above good, yellow at or above min, red below min; great is a stretch level (null for ROAS). The bands are fleet percentiles (P25/P50/P75 of campaigns with over 500 visitors) rounded to clean numbers, not per-organization; ROAS is anchored at 1x break-even. Call once and reuse; the table does not change per campaign.",
|
|
13910
|
+
"type": "query",
|
|
13911
|
+
"path": [
|
|
13912
|
+
"api",
|
|
13913
|
+
"campaigns",
|
|
13914
|
+
"app",
|
|
13915
|
+
"benchmarks"
|
|
13916
|
+
],
|
|
13917
|
+
"inputJsonSchema": null
|
|
13918
|
+
},
|
|
13906
13919
|
{
|
|
13907
13920
|
"id": "getCampaignBreakdown",
|
|
13908
13921
|
"domain": "campaigns",
|
|
13909
13922
|
"description": `A campaign's metrics broken down by channel, Facebook campaign, ad set, ad, referrer and creator, as a tree of nodes, loaded a batch at a time. Pass node refs, get back each node's metrics plus the refs of its children (identifiers only, no metrics). Load children by passing those refs back in.
|
|
13910
13923
|
|
|
13911
|
-
Start from { type: "campaign", campaign: { campaignId } }, where campaignId is the Feast campaign id from listCampaigns. It returns the campaign totals and its channel refs. The tree is: campaign \u2192 channel (facebook, influencer, tiktok, google, misc, referral, unknown) \u2192 per channel: facebook \u2192 fbCampaign \u2192 fbAdset \u2192 fbAd; google \u2192 googleCampaign; tiktok \u2192 tiktokCampaign; misc \u2192 miscSource; referral \u2192 referrer; influencer \u2192 creator. A null id inside a ref is the "Unknown" bucket for sessions that could not be matched. Refs from different campaigns can be mixed in one call (max 100).
|
|
13924
|
+
Start from { type: "campaign", campaign: { campaignId } }, where campaignId is the Feast campaign id from listCampaigns. It returns the campaign totals and its channel refs. The tree is: campaign \u2192 channel (facebook, influencer, tiktok, google, misc, referral, unknown) \u2192 per channel: facebook \u2192 fbCampaign \u2192 fbAdset \u2192 fbAd; google \u2192 googleCampaign; tiktok \u2192 tiktokCampaign; misc \u2192 miscSource; referral \u2192 referrer; influencer \u2192 creator. Variants split the campaign by pass instead of by session: the campaign node lists them in details.campaign.variants (empty when the campaign has no variants), and { type: "variant", variant: { campaignId, variantId } } with variantId null is the default variant; variant nodes carry only signups, pass registration and show rate, time to show, revenue and revenue per signup. A null id inside a ref is the "Unknown" bucket for sessions that could not be matched. Refs from different campaigns can be mixed in one call (max 100).
|
|
13912
13925
|
|
|
13913
13926
|
Metrics use start/end as the session window. Units: sessions, visitors, signups, impressions, reach are counts; *Rate, thumbStopRatio, holdRate and uniqueClickthrough are percentages (0-100); spend, cpm, revenue, costPerSignup, revenuePerSignup are USD; averageTimeToShow is days from signup to first scan. A missing metric key means the metric does not apply to that node (for example spend on a Google row); null means it applies but could not be computed (no denominator, or Facebook was unreachable, see details.facebook.error). Facebook delivery metrics are read live from Meta.`,
|
|
13914
13927
|
"type": "query",
|
|
@@ -14251,6 +14264,36 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14251
14264
|
"creator"
|
|
14252
14265
|
],
|
|
14253
14266
|
"additionalProperties": false
|
|
14267
|
+
},
|
|
14268
|
+
{
|
|
14269
|
+
"type": "object",
|
|
14270
|
+
"properties": {
|
|
14271
|
+
"type": {
|
|
14272
|
+
"type": "string",
|
|
14273
|
+
"const": "variant"
|
|
14274
|
+
},
|
|
14275
|
+
"variant": {
|
|
14276
|
+
"type": "object",
|
|
14277
|
+
"properties": {
|
|
14278
|
+
"campaignId": {
|
|
14279
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14280
|
+
},
|
|
14281
|
+
"variantId": {
|
|
14282
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14283
|
+
}
|
|
14284
|
+
},
|
|
14285
|
+
"required": [
|
|
14286
|
+
"campaignId",
|
|
14287
|
+
"variantId"
|
|
14288
|
+
],
|
|
14289
|
+
"additionalProperties": false
|
|
14290
|
+
}
|
|
14291
|
+
},
|
|
14292
|
+
"required": [
|
|
14293
|
+
"type",
|
|
14294
|
+
"variant"
|
|
14295
|
+
],
|
|
14296
|
+
"additionalProperties": false
|
|
14254
14297
|
}
|
|
14255
14298
|
]
|
|
14256
14299
|
},
|
|
@@ -14287,7 +14330,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14287
14330
|
{
|
|
14288
14331
|
"id": "getCampaignKpis",
|
|
14289
14332
|
"domain": "campaigns",
|
|
14290
|
-
"description": "Performance metrics for an acquisition campaign. campaignId is the Feast campaign's `id` from listCampaigns (a UUID), NOT the nested Meta campaignId. Returns { id, type, value, unit } per metric,
|
|
14333
|
+
"description": "Performance metrics for an acquisition campaign. campaignId is the Feast campaign's `id` from listCampaigns (a UUID), NOT the nested Meta campaignId. Returns { id, type, value, unit } per metric. Metric ids are the same camelCase ids getCampaignBreakdown uses (signupRate, thumbStopRatio, uniqueClickthrough, revenue, ...), and units match it too: count, percent (0-100), usd (dollars). Rate metrics with a target band carry benchmark: { min, good, great } in the same unit (see getCampaignBenchmarks for the full table and grading rule). Covers ad performance (spend, impressions, hook rate (thumb stop), hold rate, CTR \u2014 sourced from synced Facebook data, so ROAS is revenue divided by spend), the funnel, automations, and results. Metrics whose value would be zero are omitted rather than returned as 0 \u2014 notably spend, so an absent spend metric means no spend OR no sync yet, never a confirmed zero.",
|
|
14291
14334
|
"type": "query",
|
|
14292
14335
|
"path": [
|
|
14293
14336
|
"api",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feastalytics/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "Command-line client for the Feastalytics platform — list, create, and update campaigns, automations, offers, and members-program rewards from the terminal.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|