@getlatedev/node 0.2.259 → 0.2.261

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 CHANGED
@@ -382,7 +382,7 @@ try {
382
382
  | `ads.listFormLeads()` | List leads for a single form |
383
383
  | `ads.listLeadForms()` | List Lead Gen (Instant) forms |
384
384
  | `ads.listLeads()` | List submitted leads (cross-form CRM view) |
385
- | `ads.createConversionDestination()` | Create a conversion destination (LinkedIn) |
385
+ | `ads.createConversionDestination()` | Create a conversion destination (LinkedIn, Google Ads) |
386
386
  | `ads.createCtwaAd()` | Create Click-to-WhatsApp ad(s) |
387
387
  | `ads.createLeadForm()` | Create a Lead Gen (Instant) form |
388
388
  | `ads.createStandaloneAd()` | Create standalone ad |
package/dist/index.d.mts CHANGED
@@ -20476,44 +20476,54 @@ type ListConversionDestinationsError = (unknown | {
20476
20476
  type CreateConversionDestinationData = {
20477
20477
  body: {
20478
20478
  /**
20479
- * Sponsored ad account ID. Numeric (e.g. "5123456") or
20480
- * full `urn:li:sponsoredAccount:{id}` URN.
20479
+ * Ad account ID. For LinkedIn: numeric (e.g. "5123456") or
20480
+ * full `urn:li:sponsoredAccount:{id}` URN. For Google: numeric
20481
+ * customer ID (e.g. "1234567890") or `customers/{id}` form.
20481
20482
  *
20482
20483
  */
20483
20484
  adAccountId: string;
20484
20485
  name: string;
20485
20486
  /**
20486
- * Either a unified standard event name (e.g. "Purchase",
20487
- * "Lead", "AddToCart") or a LinkedIn rule type enum value
20488
- * (e.g. "PURCHASE", "QUALIFIED_LEAD"). The API maps
20489
- * standard names to LinkedIn enum values automatically.
20487
+ * Conversion type. For LinkedIn: a unified standard event name
20488
+ * (e.g. "Purchase", "Lead", "AddToCart") or a LinkedIn rule
20489
+ * type enum (e.g. "PURCHASE", "QUALIFIED_LEAD"). For Google:
20490
+ * a unified standard event name (Purchase, Subscribe,
20491
+ * CompleteRegistration, Lead, Schedule) or a Google
20492
+ * ConversionActionCategory enum value directly (e.g.
20493
+ * "PURCHASE", "SUBSCRIBE_PAID", "SIGNUP", "IMPORTED_LEAD",
20494
+ * "BOOK_APPOINTMENT"). Unknown values pass through to the
20495
+ * platform.
20490
20496
  *
20491
20497
  */
20492
20498
  type: string;
20499
+ /**
20500
+ * LinkedIn only.
20501
+ */
20493
20502
  attributionType?: 'LAST_TOUCH_BY_CAMPAIGN' | 'LAST_TOUCH_BY_CONVERSION';
20494
20503
  /**
20495
- * Default 30. 365 only allowed for LEAD, PURCHASE,
20496
- * ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION rule
20497
- * types the API rejects other combinations locally.
20504
+ * LinkedIn only. Default 30. 365 only allowed for LEAD,
20505
+ * PURCHASE, ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION
20506
+ * rule types; the API rejects other combinations locally.
20498
20507
  *
20499
20508
  */
20500
20509
  postClickAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
20501
20510
  /**
20502
- * Default 7. Same 365-day-window type restriction applies
20503
- * as `postClickAttributionWindowSize`.
20511
+ * LinkedIn only. Default 7. Same 365-day-window type
20512
+ * restriction applies as `postClickAttributionWindowSize`.
20504
20513
  *
20505
20514
  */
20506
20515
  viewThroughAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
20507
20516
  /**
20508
- * DYNAMIC (default) uses the per-event `value` from
20509
- * `sendConversions`. FIXED uses the rule's `value` field.
20517
+ * LinkedIn only. DYNAMIC (default) uses the per-event `value`
20518
+ * from `sendConversions`. FIXED uses the rule's `value` field.
20510
20519
  * NO_VALUE drops monetary value entirely.
20511
20520
  *
20512
20521
  */
20513
20522
  valueType?: 'DYNAMIC' | 'FIXED' | 'NO_VALUE';
20514
20523
  /**
20515
- * Static conversion value. Used when `valueType=FIXED`.
20516
- * The currency should match the ad account's currency.
20524
+ * LinkedIn only. Static conversion value. Used when
20525
+ * `valueType=FIXED`. The currency should match the ad
20526
+ * account's currency.
20517
20527
  *
20518
20528
  */
20519
20529
  value?: {
@@ -20527,7 +20537,8 @@ type CreateConversionDestinationData = {
20527
20537
  amount: string;
20528
20538
  };
20529
20539
  /**
20530
- * Controls campaign association at rule-creation time:
20540
+ * LinkedIn only. Controls campaign association at rule-creation
20541
+ * time:
20531
20542
  * - ALL_CAMPAIGNS: associate the rule with every active,
20532
20543
  * paused, and draft campaign in the ad account
20533
20544
  * - OBJECTIVE_BASED: associate only campaigns whose
@@ -20540,16 +20551,31 @@ type CreateConversionDestinationData = {
20540
20551
  *
20541
20552
  */
20542
20553
  autoAssociationType?: 'ALL_CAMPAIGNS' | 'OBJECTIVE_BASED' | 'NONE';
20554
+ /**
20555
+ * Google Ads only. Whether to count multiple conversions from
20556
+ * the same click (MANY_PER_CLICK) or at most one
20557
+ * (ONE_PER_CLICK). Defaults to MANY_PER_CLICK if omitted.
20558
+ *
20559
+ */
20560
+ countingType?: 'MANY_PER_CLICK' | 'ONE_PER_CLICK';
20561
+ /**
20562
+ * Google Ads only. When true, the conversion action is marked
20563
+ * as primary and immediately influences Smart Bidding. Defaults
20564
+ * to false (secondary, record-only) to avoid unintentionally
20565
+ * steering the customer's campaigns on creation.
20566
+ *
20567
+ */
20568
+ primaryForGoal?: boolean;
20543
20569
  };
20544
20570
  path: {
20545
20571
  /**
20546
- * SocialAccount ID (linkedinads).
20572
+ * SocialAccount ID (linkedinads or googleads).
20547
20573
  */
20548
20574
  accountId: string;
20549
20575
  };
20550
20576
  };
20551
20577
  type CreateConversionDestinationResponse = ({
20552
- platform?: 'linkedinads';
20578
+ platform?: 'linkedinads' | 'googleads';
20553
20579
  destination?: ConversionDestination;
20554
20580
  });
20555
20581
  type CreateConversionDestinationError = (unknown | {
package/dist/index.d.ts CHANGED
@@ -20476,44 +20476,54 @@ type ListConversionDestinationsError = (unknown | {
20476
20476
  type CreateConversionDestinationData = {
20477
20477
  body: {
20478
20478
  /**
20479
- * Sponsored ad account ID. Numeric (e.g. "5123456") or
20480
- * full `urn:li:sponsoredAccount:{id}` URN.
20479
+ * Ad account ID. For LinkedIn: numeric (e.g. "5123456") or
20480
+ * full `urn:li:sponsoredAccount:{id}` URN. For Google: numeric
20481
+ * customer ID (e.g. "1234567890") or `customers/{id}` form.
20481
20482
  *
20482
20483
  */
20483
20484
  adAccountId: string;
20484
20485
  name: string;
20485
20486
  /**
20486
- * Either a unified standard event name (e.g. "Purchase",
20487
- * "Lead", "AddToCart") or a LinkedIn rule type enum value
20488
- * (e.g. "PURCHASE", "QUALIFIED_LEAD"). The API maps
20489
- * standard names to LinkedIn enum values automatically.
20487
+ * Conversion type. For LinkedIn: a unified standard event name
20488
+ * (e.g. "Purchase", "Lead", "AddToCart") or a LinkedIn rule
20489
+ * type enum (e.g. "PURCHASE", "QUALIFIED_LEAD"). For Google:
20490
+ * a unified standard event name (Purchase, Subscribe,
20491
+ * CompleteRegistration, Lead, Schedule) or a Google
20492
+ * ConversionActionCategory enum value directly (e.g.
20493
+ * "PURCHASE", "SUBSCRIBE_PAID", "SIGNUP", "IMPORTED_LEAD",
20494
+ * "BOOK_APPOINTMENT"). Unknown values pass through to the
20495
+ * platform.
20490
20496
  *
20491
20497
  */
20492
20498
  type: string;
20499
+ /**
20500
+ * LinkedIn only.
20501
+ */
20493
20502
  attributionType?: 'LAST_TOUCH_BY_CAMPAIGN' | 'LAST_TOUCH_BY_CONVERSION';
20494
20503
  /**
20495
- * Default 30. 365 only allowed for LEAD, PURCHASE,
20496
- * ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION rule
20497
- * types the API rejects other combinations locally.
20504
+ * LinkedIn only. Default 30. 365 only allowed for LEAD,
20505
+ * PURCHASE, ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION
20506
+ * rule types; the API rejects other combinations locally.
20498
20507
  *
20499
20508
  */
20500
20509
  postClickAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
20501
20510
  /**
20502
- * Default 7. Same 365-day-window type restriction applies
20503
- * as `postClickAttributionWindowSize`.
20511
+ * LinkedIn only. Default 7. Same 365-day-window type
20512
+ * restriction applies as `postClickAttributionWindowSize`.
20504
20513
  *
20505
20514
  */
20506
20515
  viewThroughAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
20507
20516
  /**
20508
- * DYNAMIC (default) uses the per-event `value` from
20509
- * `sendConversions`. FIXED uses the rule's `value` field.
20517
+ * LinkedIn only. DYNAMIC (default) uses the per-event `value`
20518
+ * from `sendConversions`. FIXED uses the rule's `value` field.
20510
20519
  * NO_VALUE drops monetary value entirely.
20511
20520
  *
20512
20521
  */
20513
20522
  valueType?: 'DYNAMIC' | 'FIXED' | 'NO_VALUE';
20514
20523
  /**
20515
- * Static conversion value. Used when `valueType=FIXED`.
20516
- * The currency should match the ad account's currency.
20524
+ * LinkedIn only. Static conversion value. Used when
20525
+ * `valueType=FIXED`. The currency should match the ad
20526
+ * account's currency.
20517
20527
  *
20518
20528
  */
20519
20529
  value?: {
@@ -20527,7 +20537,8 @@ type CreateConversionDestinationData = {
20527
20537
  amount: string;
20528
20538
  };
20529
20539
  /**
20530
- * Controls campaign association at rule-creation time:
20540
+ * LinkedIn only. Controls campaign association at rule-creation
20541
+ * time:
20531
20542
  * - ALL_CAMPAIGNS: associate the rule with every active,
20532
20543
  * paused, and draft campaign in the ad account
20533
20544
  * - OBJECTIVE_BASED: associate only campaigns whose
@@ -20540,16 +20551,31 @@ type CreateConversionDestinationData = {
20540
20551
  *
20541
20552
  */
20542
20553
  autoAssociationType?: 'ALL_CAMPAIGNS' | 'OBJECTIVE_BASED' | 'NONE';
20554
+ /**
20555
+ * Google Ads only. Whether to count multiple conversions from
20556
+ * the same click (MANY_PER_CLICK) or at most one
20557
+ * (ONE_PER_CLICK). Defaults to MANY_PER_CLICK if omitted.
20558
+ *
20559
+ */
20560
+ countingType?: 'MANY_PER_CLICK' | 'ONE_PER_CLICK';
20561
+ /**
20562
+ * Google Ads only. When true, the conversion action is marked
20563
+ * as primary and immediately influences Smart Bidding. Defaults
20564
+ * to false (secondary, record-only) to avoid unintentionally
20565
+ * steering the customer's campaigns on creation.
20566
+ *
20567
+ */
20568
+ primaryForGoal?: boolean;
20543
20569
  };
20544
20570
  path: {
20545
20571
  /**
20546
- * SocialAccount ID (linkedinads).
20572
+ * SocialAccount ID (linkedinads or googleads).
20547
20573
  */
20548
20574
  accountId: string;
20549
20575
  };
20550
20576
  };
20551
20577
  type CreateConversionDestinationResponse = ({
20552
- platform?: 'linkedinads';
20578
+ platform?: 'linkedinads' | 'googleads';
20553
20579
  destination?: ConversionDestination;
20554
20580
  });
20555
20581
  type CreateConversionDestinationError = (unknown | {
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
36
36
  // package.json
37
37
  var package_default = {
38
38
  name: "@getlatedev/node",
39
- version: "0.2.259",
39
+ version: "0.2.261",
40
40
  description: "The official Node.js library for the Zernio API",
41
41
  main: "dist/index.js",
42
42
  module: "dist/index.mjs",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@getlatedev/node",
8
- version: "0.2.259",
8
+ version: "0.2.261",
9
9
  description: "The official Node.js library for the Zernio API",
10
10
  main: "dist/index.js",
11
11
  module: "dist/index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getlatedev/node",
3
- "version": "0.2.259",
3
+ "version": "0.2.261",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -5324,11 +5324,21 @@ export const listConversionDestinations = <ThrowOnError extends boolean = false>
5324
5324
  };
5325
5325
 
5326
5326
  /**
5327
- * Create a conversion destination (LinkedIn)
5328
- * Create a new conversion rule on the platform. LinkedIn-only today;
5329
- * other platforms manage destinations in their own UIs and return 405.
5327
+ * Create a conversion destination (LinkedIn, Google Ads)
5328
+ * Create a new conversion destination on the platform. Supported for
5329
+ * LinkedIn (conversion rule) and Google Ads (conversion action). Meta
5330
+ * manages destinations in its own UI and returns 405.
5330
5331
  *
5331
- * For LinkedIn, the rule is created with `conversionMethod=CONVERSIONS_API`
5332
+ * **LinkedIn:** creation is NOT idempotent. A retry creates a second
5333
+ * destination. Deduplicate before retrying.
5334
+ *
5335
+ * **Google Ads:** calling with a name that already exists reuses the
5336
+ * existing conversion action transparently (the response is identical to
5337
+ * a fresh create). Calling with the same name but a different category
5338
+ * returns a typed `IDEMPOTENCY_CONFLICT` (409) rather than silently
5339
+ * returning the mismatched action.
5340
+ *
5341
+ * **LinkedIn:** the rule is created with `conversionMethod=CONVERSIONS_API`
5332
5342
  * and (by default) auto-associated with all of the ad account's campaigns
5333
5343
  * via `autoAssociationType=ALL_CAMPAIGNS`. Pass `autoAssociationType: NONE`
5334
5344
  * to opt out and manage associations explicitly via the associations
@@ -5338,6 +5348,17 @@ export const listConversionDestinations = <ThrowOnError extends boolean = false>
5338
5348
  * `PURCHASE`, `ADD_TO_CART`, `QUALIFIED_LEAD`, and `LEAD` rule types;
5339
5349
  * the API rejects other combinations locally.
5340
5350
  *
5351
+ * **Google Ads:** the conversion action is created with
5352
+ * `type=UPLOAD_CLICKS` (required for API-uploaded offline conversions,
5353
+ * immutable after creation). The `type` field carries the Google
5354
+ * `ConversionActionCategory` enum value, e.g. `PURCHASE`,
5355
+ * `SUBSCRIBE_PAID`, `SIGNUP`, `IMPORTED_LEAD`, `BOOK_APPOINTMENT`.
5356
+ * Unified standard event names (e.g. `Purchase`, `Subscribe`,
5357
+ * `CompleteRegistration`, `Lead`, `Schedule`) are resolved to their
5358
+ * Google category equivalents automatically. The action defaults to
5359
+ * secondary (non-primary) to avoid immediately steering Smart Bidding;
5360
+ * pass `primaryForGoal: true` to opt in.
5361
+ *
5341
5362
  */
5342
5363
  export const createConversionDestination = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateConversionDestinationData, ThrowOnError>) => {
5343
5364
  return (options?.client ?? client).post<CreateConversionDestinationResponse, CreateConversionDestinationError, ThrowOnError>({
@@ -21046,44 +21046,54 @@ export type ListConversionDestinationsError = (unknown | {
21046
21046
  export type CreateConversionDestinationData = {
21047
21047
  body: {
21048
21048
  /**
21049
- * Sponsored ad account ID. Numeric (e.g. "5123456") or
21050
- * full `urn:li:sponsoredAccount:{id}` URN.
21049
+ * Ad account ID. For LinkedIn: numeric (e.g. "5123456") or
21050
+ * full `urn:li:sponsoredAccount:{id}` URN. For Google: numeric
21051
+ * customer ID (e.g. "1234567890") or `customers/{id}` form.
21051
21052
  *
21052
21053
  */
21053
21054
  adAccountId: string;
21054
21055
  name: string;
21055
21056
  /**
21056
- * Either a unified standard event name (e.g. "Purchase",
21057
- * "Lead", "AddToCart") or a LinkedIn rule type enum value
21058
- * (e.g. "PURCHASE", "QUALIFIED_LEAD"). The API maps
21059
- * standard names to LinkedIn enum values automatically.
21057
+ * Conversion type. For LinkedIn: a unified standard event name
21058
+ * (e.g. "Purchase", "Lead", "AddToCart") or a LinkedIn rule
21059
+ * type enum (e.g. "PURCHASE", "QUALIFIED_LEAD"). For Google:
21060
+ * a unified standard event name (Purchase, Subscribe,
21061
+ * CompleteRegistration, Lead, Schedule) or a Google
21062
+ * ConversionActionCategory enum value directly (e.g.
21063
+ * "PURCHASE", "SUBSCRIBE_PAID", "SIGNUP", "IMPORTED_LEAD",
21064
+ * "BOOK_APPOINTMENT"). Unknown values pass through to the
21065
+ * platform.
21060
21066
  *
21061
21067
  */
21062
21068
  type: string;
21069
+ /**
21070
+ * LinkedIn only.
21071
+ */
21063
21072
  attributionType?: 'LAST_TOUCH_BY_CAMPAIGN' | 'LAST_TOUCH_BY_CONVERSION';
21064
21073
  /**
21065
- * Default 30. 365 only allowed for LEAD, PURCHASE,
21066
- * ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION rule
21067
- * types the API rejects other combinations locally.
21074
+ * LinkedIn only. Default 30. 365 only allowed for LEAD,
21075
+ * PURCHASE, ADD_TO_CART, QUALIFIED_LEAD, SUBMIT_APPLICATION
21076
+ * rule types; the API rejects other combinations locally.
21068
21077
  *
21069
21078
  */
21070
21079
  postClickAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
21071
21080
  /**
21072
- * Default 7. Same 365-day-window type restriction applies
21073
- * as `postClickAttributionWindowSize`.
21081
+ * LinkedIn only. Default 7. Same 365-day-window type
21082
+ * restriction applies as `postClickAttributionWindowSize`.
21074
21083
  *
21075
21084
  */
21076
21085
  viewThroughAttributionWindowSize?: 1 | 7 | 30 | 90 | 365;
21077
21086
  /**
21078
- * DYNAMIC (default) uses the per-event `value` from
21079
- * `sendConversions`. FIXED uses the rule's `value` field.
21087
+ * LinkedIn only. DYNAMIC (default) uses the per-event `value`
21088
+ * from `sendConversions`. FIXED uses the rule's `value` field.
21080
21089
  * NO_VALUE drops monetary value entirely.
21081
21090
  *
21082
21091
  */
21083
21092
  valueType?: 'DYNAMIC' | 'FIXED' | 'NO_VALUE';
21084
21093
  /**
21085
- * Static conversion value. Used when `valueType=FIXED`.
21086
- * The currency should match the ad account's currency.
21094
+ * LinkedIn only. Static conversion value. Used when
21095
+ * `valueType=FIXED`. The currency should match the ad
21096
+ * account's currency.
21087
21097
  *
21088
21098
  */
21089
21099
  value?: {
@@ -21097,7 +21107,8 @@ export type CreateConversionDestinationData = {
21097
21107
  amount: string;
21098
21108
  };
21099
21109
  /**
21100
- * Controls campaign association at rule-creation time:
21110
+ * LinkedIn only. Controls campaign association at rule-creation
21111
+ * time:
21101
21112
  * - ALL_CAMPAIGNS: associate the rule with every active,
21102
21113
  * paused, and draft campaign in the ad account
21103
21114
  * - OBJECTIVE_BASED: associate only campaigns whose
@@ -21110,17 +21121,32 @@ export type CreateConversionDestinationData = {
21110
21121
  *
21111
21122
  */
21112
21123
  autoAssociationType?: 'ALL_CAMPAIGNS' | 'OBJECTIVE_BASED' | 'NONE';
21124
+ /**
21125
+ * Google Ads only. Whether to count multiple conversions from
21126
+ * the same click (MANY_PER_CLICK) or at most one
21127
+ * (ONE_PER_CLICK). Defaults to MANY_PER_CLICK if omitted.
21128
+ *
21129
+ */
21130
+ countingType?: 'MANY_PER_CLICK' | 'ONE_PER_CLICK';
21131
+ /**
21132
+ * Google Ads only. When true, the conversion action is marked
21133
+ * as primary and immediately influences Smart Bidding. Defaults
21134
+ * to false (secondary, record-only) to avoid unintentionally
21135
+ * steering the customer's campaigns on creation.
21136
+ *
21137
+ */
21138
+ primaryForGoal?: boolean;
21113
21139
  };
21114
21140
  path: {
21115
21141
  /**
21116
- * SocialAccount ID (linkedinads).
21142
+ * SocialAccount ID (linkedinads or googleads).
21117
21143
  */
21118
21144
  accountId: string;
21119
21145
  };
21120
21146
  };
21121
21147
 
21122
21148
  export type CreateConversionDestinationResponse = ({
21123
- platform?: 'linkedinads';
21149
+ platform?: 'linkedinads' | 'googleads';
21124
21150
  destination?: ConversionDestination;
21125
21151
  });
21126
21152