late-sdk 0.0.677 → 0.0.679

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 695b268267005192f0cf9c667549e50a5959c52ce4df344150a03fdc1382ac59
4
- data.tar.gz: 302e86c98e3b04209f23799b2d381ee5cb0502b5aba04612ffb72b155c7794d2
3
+ metadata.gz: b041b3a2662b2ecb5b099a332812c40a5e92dcc57c4948a1edf278591c384f75
4
+ data.tar.gz: 8655f7c7e11ff53f19a0323212ff8d9cda3573ce9117e497a46d7e2f6587d63d
5
5
  SHA512:
6
- metadata.gz: 0abf8aecf033c3c67512f9c2f086071fc1bff834aa4b28e9af89f07900c3c282ca383a43d2d4ffe6bf1809b9d01870aec5b21e5c9d0926f24fcaca993b8b6e78
7
- data.tar.gz: 41eb5ae78ea684b4b2596377d41da64ebbf627fc8d5b2e77dd80a18482ac0d42a60d9e51540ab7704a532fc36bfeb87ef8164f17e99ee3dce0348e6d95af6c45
6
+ metadata.gz: f8a4d1b8078e37fd6d4f98d85d0effa04d1159c4ef10ca129189fff0020fb218d5276fddfa58e1d134bc0aae95ca974ccd84641903bad2489ba3c96ec1b9093a
7
+ data.tar.gz: 0a6f62e1cdef7a37542127ce0745c662084a8c86d9e8cc16bc7283215f20ad43ad63f10b53af9bde7e50e6dc0f091dec261b1567ce9a3721d344647493f1d232
@@ -11,7 +11,7 @@
11
11
  | **ad_set_name** | **String** | Meta only. Exact ad set name. Overrides the default `<name> - Ad Set`. (For per-ad names on the multi-creative shape, set `name` on each `creatives[]` entry.) | [optional] |
12
12
  | **ad_name** | **String** | Meta only. Exact ad name (the single-creative ad object's name). Overrides the default, which is `name`. (For per-ad names on the multi-creative shape, set `name` on each `creatives[]` entry instead.) | [optional] |
13
13
  | **tracking** | [**CreateStandaloneAdRequestTracking**](CreateStandaloneAdRequestTracking.md) | | [optional] |
14
- | **goal** | **String** | Required on legacy and multi-creative shapes; the attach shape inherits it from the ad set. Available goals vary by platform. **Meta** - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion instead. - `lead_conversion`: OUTCOME_LEADS optimizing website pixel leads. Same pixel and event fields, but with a leads-class event such as LEAD, SUBMIT_APPLICATION, SCHEDULE or CONTACT (or `promotedObject.customConversionId` to optimise against a Custom Conversion instead). Meta gates conversion events by objective, so leads-class events are rejected under `conversions`. - `lead_generation`: OUTCOME_LEADS with instant forms. Requires `leadGenFormId`. `promotedObject.pageId` is optional and auto-filled from the connected Page. - `app_promotion`: requires `promotedObject.applicationId` and `promotedObject.objectStoreUrl`. - `catalog_sales`: Advantage+ catalog ads, for example vehicle inventory. Requires `promotedObject.productSetId`, `promotedObject.pixelId` and `promotedObject.customEventType`. Builds a catalog TEMPLATE creative from the copy fields, which may carry template tags like {{product.name}} or {{vehicle.make}}. No imageUrl or video is sent; Meta renders the visuals per catalog item. Discover catalogs via GET /v1/ads/catalogs and product sets via GET /v1/ads/catalogs/{catalogId}/product-sets. Single shape only, no creatives[], adSetId, dynamicCreative or placementAssets. **TikTok** - `conversions`: website-conversion ad group. Requires `promotedObject.pixelId`, your TikTok Pixel ID. Accepts an optional `promotedObject.customEventType` with a TikTok optimization_event code your pixel tracks (newer pixels use e.g. SHOPPING for purchase events; legacy pixels use ON_WEB_ORDER, INITIATE_ORDER, ON_WEB_REGISTER or FORM). To inherit pixel and event from an existing ad group, pass `adSetId` instead. **LinkedIn** - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`. - `job_applicants` requires a `platformSpecificData.jobs` creative. - For `lead_generation` or `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost. **OpenAI Ads** - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422. | [optional] |
14
+ | **goal** | **String** | Required on legacy and multi-creative shapes; the attach shape inherits it from the ad set. Available goals vary by platform. **Meta** - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion, or `customEventType: OTHER` + `customEventStr` to optimise against a pixel custom event. - `lead_conversion`: OUTCOME_LEADS optimizing website pixel leads. Same pixel and event fields, but with a leads-class event such as LEAD, SUBMIT_APPLICATION, SCHEDULE or CONTACT (or `promotedObject.customConversionId` to optimise against a Custom Conversion instead). Meta gates conversion events by objective, so leads-class events are rejected under `conversions`. - `lead_generation`: OUTCOME_LEADS with instant forms. Requires `leadGenFormId`. `promotedObject.pageId` is optional and auto-filled from the connected Page. - `app_promotion`: requires `promotedObject.applicationId` and `promotedObject.objectStoreUrl`. - `catalog_sales`: Advantage+ catalog ads, for example vehicle inventory. Requires `promotedObject.productSetId`, `promotedObject.pixelId` and `promotedObject.customEventType`. Builds a catalog TEMPLATE creative from the copy fields, which may carry template tags like {{product.name}} or {{vehicle.make}}. No imageUrl or video is sent; Meta renders the visuals per catalog item. Discover catalogs via GET /v1/ads/catalogs and product sets via GET /v1/ads/catalogs/{catalogId}/product-sets. Single shape only, no creatives[], adSetId, dynamicCreative or placementAssets. **TikTok** - `conversions`: website-conversion ad group. Requires `promotedObject.pixelId`, your TikTok Pixel ID. Accepts an optional `promotedObject.customEventType` with a TikTok optimization_event code your pixel tracks (newer pixels use e.g. SHOPPING for purchase events; legacy pixels use ON_WEB_ORDER, INITIATE_ORDER, ON_WEB_REGISTER or FORM). To inherit pixel and event from an existing ad group, pass `adSetId` instead. **LinkedIn** - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`. - `job_applicants` requires a `platformSpecificData.jobs` creative. - For `lead_generation` or `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost. **OpenAI Ads** - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422. | [optional] |
15
15
  | **optimization_goal** | **String** | Meta only. Explicit ad-set `optimization_goal` (e.g. `LANDING_PAGE_VIEWS`, `LINK_CLICKS`, `REACH`, `IMPRESSIONS`, `OFFSITE_CONVERSIONS`, `THRUPLAY`, `LEAD_GENERATION`). Overrides the default derived from `goal` (e.g. `traffic` defaults to `LINK_CLICKS`). Forwarded verbatim to Meta, which validates compatibility with the campaign objective and rejects incompatible combinations. | [optional] |
16
16
  | **billing_event** | **String** | Meta only. Explicit ad-set `billing_event`. Defaults to `IMPRESSIONS`. Forwarded verbatim to Meta, which validates compatibility with the optimization goal. | [optional] |
17
17
  | **buying_type** | **String** | Meta only. RESERVED = Reach & Frequency: requires `rfPredictionId` (a RESERVED prediction from /v1/ads/rf-predictions + /reserve). Budget, schedule and pricing come from the reservation, so budgetAmount/budgetType are not required and bid fields are ignored. Only the plain single-ad shape (no creatives[], adSetId, existingCampaignId or dynamicCreative). | [optional] |
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **pixel_id** | **String** | Pixel ID. **Meta:** Facebook Pixel ID, required for `goal: conversions`. **TikTok:** TikTok Pixel ID, required for `goal: conversions`. To discover the pixels an ad account can use, call `GET /v1/accounts/{accountId}/tracking-tags?adAccountId=act_...` (each entry carries `kind` and `ownerAdAccountId`), or `GET /v1/accounts/{accountId}/conversion-destinations`. Note this is a different resource from `GET /v1/ads/{adId}/tracking-tags`, which reads an ad's click-URL params (`url_tags`), not pixels. | [optional] |
8
8
  | **custom_event_type** | **String** | The event the campaign/ad group optimises against. **Meta:** standard event like `PURCHASE`, `LEAD`, `COMPLETE_REGISTRATION`, `ADD_TO_CART`. Uppercased internally so callers can pass any case. Required for `goal: conversions`. **TikTok:** an `optimization_event` code (UPPER_SNAKE, not Meta's vocabulary and not PascalCase), OR the exact event name shown in TikTok Events Manager (auto-resolved to its code). Must be one of the event types your TikTok Pixel tracks; custom events are not optimizable. Current taxonomy: `SHOPPING` (Purchase), `ON_WEB_CART` (Add to Cart), `INITIATE_ORDER` (Initiate Checkout), `FORM` (Lead), `ON_WEB_REGISTER` (Complete Registration), `ON_WEB_DETAIL` (View Content). `ON_WEB_ORDER` is deprecated. On rejection the error lists the event types your pixel actually tracks. Optional for `goal: conversions`. | [optional] |
9
+ | **custom_event_str** | **String** | Meta only. Pixel custom-event name to optimise against (Meta's `custom_event_str`), exactly as it appears in Events Manager and in your CAPI payloads (case-sensitive, not uppercased). Requires `customEventType: OTHER`, and `OTHER` requires this field (400 either way). The same as picking a custom event in Ads Manager's conversion-event dropdown. For rule-based Custom Conversions use `customConversionId` instead. | [optional] |
9
10
  | **page_id** | **String** | Facebook Page ID. Used by `goal: lead_generation`. Auto-filled from the connected Page when omitted. | [optional] |
10
11
  | **application_id** | **String** | App ID. Required for `goal: app_promotion`. | [optional] |
11
12
  | **object_store_url** | **String** | App Store / Play Store listing URL. Required for `goal: app_promotion`. | [optional] |
@@ -23,6 +24,7 @@ require 'zernio-sdk'
23
24
  instance = Zernio::CreateStandaloneAdRequestPromotedObject.new(
24
25
  pixel_id: null,
25
26
  custom_event_type: null,
27
+ custom_event_str: null,
26
28
  page_id: null,
27
29
  application_id: null,
28
30
  object_store_url: null,
@@ -18,7 +18,7 @@
18
18
  | **reply_markup** | [**SendInboxMessageRequestReplyMarkup**](SendInboxMessageRequestReplyMarkup.md) | | [optional] |
19
19
  | **messaging_type** | **String** | Facebook messaging type. Required when using messageTag. | [optional] |
20
20
  | **message_tag** | **String** | Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT. | [optional] |
21
- | **reply_to** | **String** | Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID. | [optional] |
21
+ | **reply_to** | **String** | Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID; for Instagram, the Meta mid (all available in message.platformMessageId from webhooks or the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without reply support, including Facebook Messenger (Meta's Messenger Send API has no reply_to). | [optional] |
22
22
  | **location** | [**SendInboxMessageRequestLocation**](SendInboxMessageRequestLocation.md) | | [optional] |
23
23
  | **contacts** | [**Array<SendInboxMessageRequestContactsInner>**](SendInboxMessageRequestContactsInner.md) | WhatsApp-only. Send one or more contact cards. | [optional] |
24
24
 
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **pixel_id** | **String** | | [optional] |
8
8
  | **custom_event_type** | **String** | | [optional] |
9
+ | **custom_event_str** | **String** | Pixel custom-event name (custom_event_str); requires customEventType OTHER. Same pairing rules as /v1/ads/create. | [optional] |
9
10
  | **page_id** | **String** | | [optional] |
10
11
  | **application_id** | **String** | | [optional] |
11
12
  | **object_store_url** | **String** | | [optional] |
@@ -23,6 +24,7 @@ require 'zernio-sdk'
23
24
  instance = Zernio::UpdateAdSetRequestPlatformSpecificDataPromotedObject.new(
24
25
  pixel_id: null,
25
26
  custom_event_type: null,
27
+ custom_event_str: null,
26
28
  page_id: null,
27
29
  application_id: null,
28
30
  object_store_url: null,
@@ -4,6 +4,7 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
+ | **quoted_message_id** | **String** | platformMessageId of the message this one is a quote-reply to. WhatsApp (`context.id`), Instagram and Facebook Messenger (`reply_to.mid`). On `message.sent` echoes (operator replied from the native app) this is the only metadata field populated. | [optional] |
7
8
  | **quick_reply_payload** | **String** | Payload from a quick reply tap (Facebook/Instagram Messenger). | [optional] |
8
9
  | **postback_payload** | **String** | Payload from a postback button tap (Facebook/Instagram Messenger). | [optional] |
9
10
  | **postback_title** | **String** | Title of the tapped postback button (Facebook/Instagram Messenger). | [optional] |
@@ -27,6 +28,7 @@
27
28
  require 'zernio-sdk'
28
29
 
29
30
  instance = Zernio::WebhookPayloadMessageMetadata.new(
31
+ quoted_message_id: null,
30
32
  quick_reply_payload: null,
31
33
  postback_payload: null,
32
34
  postback_title: null,
@@ -32,7 +32,7 @@ module Zernio
32
32
 
33
33
  attr_accessor :tracking
34
34
 
35
- # Required on legacy and multi-creative shapes; the attach shape inherits it from the ad set. Available goals vary by platform. **Meta** - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion instead. - `lead_conversion`: OUTCOME_LEADS optimizing website pixel leads. Same pixel and event fields, but with a leads-class event such as LEAD, SUBMIT_APPLICATION, SCHEDULE or CONTACT (or `promotedObject.customConversionId` to optimise against a Custom Conversion instead). Meta gates conversion events by objective, so leads-class events are rejected under `conversions`. - `lead_generation`: OUTCOME_LEADS with instant forms. Requires `leadGenFormId`. `promotedObject.pageId` is optional and auto-filled from the connected Page. - `app_promotion`: requires `promotedObject.applicationId` and `promotedObject.objectStoreUrl`. - `catalog_sales`: Advantage+ catalog ads, for example vehicle inventory. Requires `promotedObject.productSetId`, `promotedObject.pixelId` and `promotedObject.customEventType`. Builds a catalog TEMPLATE creative from the copy fields, which may carry template tags like {{product.name}} or {{vehicle.make}}. No imageUrl or video is sent; Meta renders the visuals per catalog item. Discover catalogs via GET /v1/ads/catalogs and product sets via GET /v1/ads/catalogs/{catalogId}/product-sets. Single shape only, no creatives[], adSetId, dynamicCreative or placementAssets. **TikTok** - `conversions`: website-conversion ad group. Requires `promotedObject.pixelId`, your TikTok Pixel ID. Accepts an optional `promotedObject.customEventType` with a TikTok optimization_event code your pixel tracks (newer pixels use e.g. SHOPPING for purchase events; legacy pixels use ON_WEB_ORDER, INITIATE_ORDER, ON_WEB_REGISTER or FORM). To inherit pixel and event from an existing ad group, pass `adSetId` instead. **LinkedIn** - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`. - `job_applicants` requires a `platformSpecificData.jobs` creative. - For `lead_generation` or `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost. **OpenAI Ads** - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422.
35
+ # Required on legacy and multi-creative shapes; the attach shape inherits it from the ad set. Available goals vary by platform. **Meta** - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion, or `customEventType: OTHER` + `customEventStr` to optimise against a pixel custom event. - `lead_conversion`: OUTCOME_LEADS optimizing website pixel leads. Same pixel and event fields, but with a leads-class event such as LEAD, SUBMIT_APPLICATION, SCHEDULE or CONTACT (or `promotedObject.customConversionId` to optimise against a Custom Conversion instead). Meta gates conversion events by objective, so leads-class events are rejected under `conversions`. - `lead_generation`: OUTCOME_LEADS with instant forms. Requires `leadGenFormId`. `promotedObject.pageId` is optional and auto-filled from the connected Page. - `app_promotion`: requires `promotedObject.applicationId` and `promotedObject.objectStoreUrl`. - `catalog_sales`: Advantage+ catalog ads, for example vehicle inventory. Requires `promotedObject.productSetId`, `promotedObject.pixelId` and `promotedObject.customEventType`. Builds a catalog TEMPLATE creative from the copy fields, which may carry template tags like {{product.name}} or {{vehicle.make}}. No imageUrl or video is sent; Meta renders the visuals per catalog item. Discover catalogs via GET /v1/ads/catalogs and product sets via GET /v1/ads/catalogs/{catalogId}/product-sets. Single shape only, no creatives[], adSetId, dynamicCreative or placementAssets. **TikTok** - `conversions`: website-conversion ad group. Requires `promotedObject.pixelId`, your TikTok Pixel ID. Accepts an optional `promotedObject.customEventType` with a TikTok optimization_event code your pixel tracks (newer pixels use e.g. SHOPPING for purchase events; legacy pixels use ON_WEB_ORDER, INITIATE_ORDER, ON_WEB_REGISTER or FORM). To inherit pixel and event from an existing ad group, pass `adSetId` instead. **LinkedIn** - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`. - `job_applicants` requires a `platformSpecificData.jobs` creative. - For `lead_generation` or `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost. **OpenAI Ads** - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422.
36
36
  attr_accessor :goal
37
37
 
38
38
  # Meta only. Explicit ad-set `optimization_goal` (e.g. `LANDING_PAGE_VIEWS`, `LINK_CLICKS`, `REACH`, `IMPRESSIONS`, `OFFSITE_CONVERSIONS`, `THRUPLAY`, `LEAD_GENERATION`). Overrides the default derived from `goal` (e.g. `traffic` defaults to `LINK_CLICKS`). Forwarded verbatim to Meta, which validates compatibility with the campaign objective and rejects incompatible combinations.
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Zernio
17
- # What the ad optimises against. Behaviour depends on the platform. **Meta**: forwarded to the ad set's `promoted_object` (snake-cased). Required for goals whose ad-set optimization_goal points at a specific event/page/app (without it Meta rejects the ad-set create with `error_subcode: 1815430` \"Please select a promoted object for your ad set\"): - `goal: conversions` / `lead_conversion` (OFFSITE_CONVERSIONS): requires `pixelId` + `customEventType`, or `customConversionId` when optimising against a Custom Conversion (the conversion carries its own event definition) - `goal: app_promotion` (APP_INSTALLS): requires `applicationId` + `objectStoreUrl` - `goal: lead_generation` (LEAD_GENERATION): `pageId` is auto-filled from the connected Page when omitted Other Meta goals (engagement, traffic, awareness, video_views) ignore this field. **TikTok**: only `goal: conversions` uses it. - `pixelId` maps to the ad group's `pixel_id`. Required: a TikTok website-conversion ad group without a pixel is rejected with `40002: Please select a pixel`. - `customEventType` maps to the ad group's `optimization_event` (the pixel event to optimise for). Optional: TikTok accepts a pixel-only auto-bid conversion ad group. See the `customEventType` field below for the valid TikTok codes. The remaining `promotedObject.*` fields are Meta-only. Platforms other than Meta and TikTok ignore `promotedObject` entirely.
17
+ # What the ad optimises against. Behaviour depends on the platform. **Meta**: forwarded to the ad set's `promoted_object` (snake-cased). Required for goals whose ad-set optimization_goal points at a specific event/page/app (without it Meta rejects the ad-set create with `error_subcode: 1815430` \"Please select a promoted object for your ad set\"): - `goal: conversions` / `lead_conversion` (OFFSITE_CONVERSIONS): requires `pixelId` + `customEventType`, or `customConversionId` when optimising against a Custom Conversion (the conversion carries its own event definition). For a pixel CUSTOM event (one you named yourself in CAPI/Events Manager), send `customEventType: OTHER` + `customEventStr` with the event name. - `goal: app_promotion` (APP_INSTALLS): requires `applicationId` + `objectStoreUrl` - `goal: lead_generation` (LEAD_GENERATION): `pageId` is auto-filled from the connected Page when omitted Other Meta goals (engagement, traffic, awareness, video_views) ignore this field. **TikTok**: only `goal: conversions` uses it. - `pixelId` maps to the ad group's `pixel_id`. Required: a TikTok website-conversion ad group without a pixel is rejected with `40002: Please select a pixel`. - `customEventType` maps to the ad group's `optimization_event` (the pixel event to optimise for). Optional: TikTok accepts a pixel-only auto-bid conversion ad group. See the `customEventType` field below for the valid TikTok codes. The remaining `promotedObject.*` fields are Meta-only. Platforms other than Meta and TikTok ignore `promotedObject` entirely.
18
18
  class CreateStandaloneAdRequestPromotedObject < ApiModelBase
19
19
  # Pixel ID. **Meta:** Facebook Pixel ID, required for `goal: conversions`. **TikTok:** TikTok Pixel ID, required for `goal: conversions`. To discover the pixels an ad account can use, call `GET /v1/accounts/{accountId}/tracking-tags?adAccountId=act_...` (each entry carries `kind` and `ownerAdAccountId`), or `GET /v1/accounts/{accountId}/conversion-destinations`. Note this is a different resource from `GET /v1/ads/{adId}/tracking-tags`, which reads an ad's click-URL params (`url_tags`), not pixels.
20
20
  attr_accessor :pixel_id
@@ -22,6 +22,9 @@ module Zernio
22
22
  # The event the campaign/ad group optimises against. **Meta:** standard event like `PURCHASE`, `LEAD`, `COMPLETE_REGISTRATION`, `ADD_TO_CART`. Uppercased internally so callers can pass any case. Required for `goal: conversions`. **TikTok:** an `optimization_event` code (UPPER_SNAKE, not Meta's vocabulary and not PascalCase), OR the exact event name shown in TikTok Events Manager (auto-resolved to its code). Must be one of the event types your TikTok Pixel tracks; custom events are not optimizable. Current taxonomy: `SHOPPING` (Purchase), `ON_WEB_CART` (Add to Cart), `INITIATE_ORDER` (Initiate Checkout), `FORM` (Lead), `ON_WEB_REGISTER` (Complete Registration), `ON_WEB_DETAIL` (View Content). `ON_WEB_ORDER` is deprecated. On rejection the error lists the event types your pixel actually tracks. Optional for `goal: conversions`.
23
23
  attr_accessor :custom_event_type
24
24
 
25
+ # Meta only. Pixel custom-event name to optimise against (Meta's `custom_event_str`), exactly as it appears in Events Manager and in your CAPI payloads (case-sensitive, not uppercased). Requires `customEventType: OTHER`, and `OTHER` requires this field (400 either way). The same as picking a custom event in Ads Manager's conversion-event dropdown. For rule-based Custom Conversions use `customConversionId` instead.
26
+ attr_accessor :custom_event_str
27
+
25
28
  # Facebook Page ID. Used by `goal: lead_generation`. Auto-filled from the connected Page when omitted.
26
29
  attr_accessor :page_id
27
30
 
@@ -51,6 +54,7 @@ module Zernio
51
54
  {
52
55
  :'pixel_id' => :'pixelId',
53
56
  :'custom_event_type' => :'customEventType',
57
+ :'custom_event_str' => :'customEventStr',
54
58
  :'page_id' => :'pageId',
55
59
  :'application_id' => :'applicationId',
56
60
  :'object_store_url' => :'objectStoreUrl',
@@ -77,6 +81,7 @@ module Zernio
77
81
  {
78
82
  :'pixel_id' => :'String',
79
83
  :'custom_event_type' => :'String',
84
+ :'custom_event_str' => :'String',
80
85
  :'page_id' => :'String',
81
86
  :'application_id' => :'String',
82
87
  :'object_store_url' => :'String',
@@ -118,6 +123,10 @@ module Zernio
118
123
  self.custom_event_type = attributes[:'custom_event_type']
119
124
  end
120
125
 
126
+ if attributes.key?(:'custom_event_str')
127
+ self.custom_event_str = attributes[:'custom_event_str']
128
+ end
129
+
121
130
  if attributes.key?(:'page_id')
122
131
  self.page_id = attributes[:'page_id']
123
132
  end
@@ -173,6 +182,7 @@ module Zernio
173
182
  self.class == o.class &&
174
183
  pixel_id == o.pixel_id &&
175
184
  custom_event_type == o.custom_event_type &&
185
+ custom_event_str == o.custom_event_str &&
176
186
  page_id == o.page_id &&
177
187
  application_id == o.application_id &&
178
188
  object_store_url == o.object_store_url &&
@@ -192,7 +202,7 @@ module Zernio
192
202
  # Calculates hash code according to all attributes.
193
203
  # @return [Integer] Hash code
194
204
  def hash
195
- [pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
205
+ [pixel_id, custom_event_type, custom_event_str, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
196
206
  end
197
207
 
198
208
  # Builds the object from hash
@@ -54,7 +54,7 @@ module Zernio
54
54
  # Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.
55
55
  attr_accessor :message_tag
56
56
 
57
- # Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID.
57
+ # Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID; for Instagram, the Meta mid (all available in message.platformMessageId from webhooks or the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without reply support, including Facebook Messenger (Meta's Messenger Send API has no reply_to).
58
58
  attr_accessor :reply_to
59
59
 
60
60
  attr_accessor :location
@@ -20,6 +20,9 @@ module Zernio
20
20
 
21
21
  attr_accessor :custom_event_type
22
22
 
23
+ # Pixel custom-event name (custom_event_str); requires customEventType OTHER. Same pairing rules as /v1/ads/create.
24
+ attr_accessor :custom_event_str
25
+
23
26
  attr_accessor :page_id
24
27
 
25
28
  attr_accessor :application_id
@@ -41,6 +44,7 @@ module Zernio
41
44
  {
42
45
  :'pixel_id' => :'pixelId',
43
46
  :'custom_event_type' => :'customEventType',
47
+ :'custom_event_str' => :'customEventStr',
44
48
  :'page_id' => :'pageId',
45
49
  :'application_id' => :'applicationId',
46
50
  :'object_store_url' => :'objectStoreUrl',
@@ -67,6 +71,7 @@ module Zernio
67
71
  {
68
72
  :'pixel_id' => :'String',
69
73
  :'custom_event_type' => :'String',
74
+ :'custom_event_str' => :'String',
70
75
  :'page_id' => :'String',
71
76
  :'application_id' => :'String',
72
77
  :'object_store_url' => :'String',
@@ -108,6 +113,10 @@ module Zernio
108
113
  self.custom_event_type = attributes[:'custom_event_type']
109
114
  end
110
115
 
116
+ if attributes.key?(:'custom_event_str')
117
+ self.custom_event_str = attributes[:'custom_event_str']
118
+ end
119
+
111
120
  if attributes.key?(:'page_id')
112
121
  self.page_id = attributes[:'page_id']
113
122
  end
@@ -163,6 +172,7 @@ module Zernio
163
172
  self.class == o.class &&
164
173
  pixel_id == o.pixel_id &&
165
174
  custom_event_type == o.custom_event_type &&
175
+ custom_event_str == o.custom_event_str &&
166
176
  page_id == o.page_id &&
167
177
  application_id == o.application_id &&
168
178
  object_store_url == o.object_store_url &&
@@ -182,7 +192,7 @@ module Zernio
182
192
  # Calculates hash code according to all attributes.
183
193
  # @return [Integer] Hash code
184
194
  def hash
185
- [pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
195
+ [pixel_id, custom_event_type, custom_event_str, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
186
196
  end
187
197
 
188
198
  # Builds the object from hash
@@ -14,8 +14,11 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Zernio
17
- # Interactive message metadata (present when message is a quick reply tap, postback button tap, or inline keyboard callback)
17
+ # Platform-specific message context (present when the message is a quick reply tap, postback button tap, inline keyboard callback, or a quote-reply to an earlier message)
18
18
  class WebhookPayloadMessageMetadata < ApiModelBase
19
+ # platformMessageId of the message this one is a quote-reply to. WhatsApp (`context.id`), Instagram and Facebook Messenger (`reply_to.mid`). On `message.sent` echoes (operator replied from the native app) this is the only metadata field populated.
20
+ attr_accessor :quoted_message_id
21
+
19
22
  # Payload from a quick reply tap (Facebook/Instagram Messenger).
20
23
  attr_accessor :quick_reply_payload
21
24
 
@@ -85,6 +88,7 @@ module Zernio
85
88
  # Attribute mapping from ruby-style variable name to JSON key.
86
89
  def self.attribute_map
87
90
  {
91
+ :'quoted_message_id' => :'quotedMessageId',
88
92
  :'quick_reply_payload' => :'quickReplyPayload',
89
93
  :'postback_payload' => :'postbackPayload',
90
94
  :'postback_title' => :'postbackTitle',
@@ -117,6 +121,7 @@ module Zernio
117
121
  # Attribute type mapping.
118
122
  def self.openapi_types
119
123
  {
124
+ :'quoted_message_id' => :'String',
120
125
  :'quick_reply_payload' => :'String',
121
126
  :'postback_payload' => :'String',
122
127
  :'postback_title' => :'String',
@@ -158,6 +163,10 @@ module Zernio
158
163
  h[k.to_sym] = v
159
164
  }
160
165
 
166
+ if attributes.key?(:'quoted_message_id')
167
+ self.quoted_message_id = attributes[:'quoted_message_id']
168
+ end
169
+
161
170
  if attributes.key?(:'quick_reply_payload')
162
171
  self.quick_reply_payload = attributes[:'quick_reply_payload']
163
172
  end
@@ -271,6 +280,7 @@ module Zernio
271
280
  def ==(o)
272
281
  return true if self.equal?(o)
273
282
  self.class == o.class &&
283
+ quoted_message_id == o.quoted_message_id &&
274
284
  quick_reply_payload == o.quick_reply_payload &&
275
285
  postback_payload == o.postback_payload &&
276
286
  postback_title == o.postback_title &&
@@ -298,7 +308,7 @@ module Zernio
298
308
  # Calculates hash code according to all attributes.
299
309
  # @return [Integer] Hash code
300
310
  def hash
301
- [quick_reply_payload, postback_payload, postback_title, callback_data, interactive_type, interactive_id, button_payload, flow_response_json, flow_response_data, order, referred_product, contacts, contacts_origin, story_reply, is_story_mention, referral].hash
311
+ [quoted_message_id, quick_reply_payload, postback_payload, postback_title, callback_data, interactive_type, interactive_id, button_payload, flow_response_json, flow_response_data, order, referred_product, contacts, contacts_origin, story_reply, is_story_mention, referral].hash
302
312
  end
303
313
 
304
314
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.677'
14
+ VERSION = '0.0.679'
15
15
  end
data/openapi.yaml CHANGED
@@ -3342,8 +3342,15 @@ components:
3342
3342
  $ref: '#/components/schemas/InboxWebhookAccount'
3343
3343
  metadata:
3344
3344
  type: [object, "null"]
3345
- description: Interactive message metadata (present when message is a quick reply tap, postback button tap, or inline keyboard callback)
3345
+ description: 'Platform-specific message context (present when the message is a quick reply tap, postback button tap, inline keyboard callback, or a quote-reply to an earlier message)'
3346
3346
  properties:
3347
+ quotedMessageId:
3348
+ type: string
3349
+ description: |
3350
+ platformMessageId of the message this one is a quote-reply to.
3351
+ WhatsApp (`context.id`), Instagram and Facebook Messenger
3352
+ (`reply_to.mid`). On `message.sent` echoes (operator replied
3353
+ from the native app) this is the only metadata field populated.
3347
3354
  quickReplyPayload:
3348
3355
  type: string
3349
3356
  description: Payload from a quick reply tap (Facebook/Instagram Messenger).
@@ -24475,7 +24482,7 @@ paths:
24475
24482
  description: Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.
24476
24483
  replyTo:
24477
24484
  type: string
24478
- description: Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID.
24485
+ description: 'Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID; for Instagram, the Meta mid (all available in message.platformMessageId from webhooks or the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without reply support, including Facebook Messenger (Meta''s Messenger Send API has no reply_to).'
24479
24486
  location:
24480
24487
  type: object
24481
24488
  description: WhatsApp-only. Send a location pin.
@@ -24544,7 +24551,7 @@ paths:
24544
24551
  description: Message tag (requires messagingType MESSAGE_TAG)
24545
24552
  replyTo:
24546
24553
  type: string
24547
- description: Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID.
24554
+ description: 'Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID; for Instagram, the Meta mid (all available in message.platformMessageId from webhooks or the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without reply support, including Facebook Messenger (Meta''s Messenger Send API has no reply_to).'
24548
24555
  voiceNote:
24549
24556
  type: string
24550
24557
  enum: ['true']
@@ -36793,6 +36800,7 @@ paths:
36793
36800
  properties:
36794
36801
  pixelId: { type: string }
36795
36802
  customEventType: { type: string }
36803
+ customEventStr: { type: string, description: 'Pixel custom-event name (custom_event_str); requires customEventType OTHER. Same pairing rules as /v1/ads/create.' }
36796
36804
  pageId: { type: string }
36797
36805
  applicationId: { type: string }
36798
36806
  objectStoreUrl: { type: string }
@@ -39322,7 +39330,7 @@ paths:
39322
39330
  Required on legacy and multi-creative shapes; the attach shape inherits it from the ad set. Available goals vary by platform.
39323
39331
 
39324
39332
  **Meta**
39325
- - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion instead.
39333
+ - `conversions`: OUTCOME_SALES. Requires `promotedObject.pixelId` and `promotedObject.customEventType` with a commerce event such as PURCHASE or START_TRIAL, or `promotedObject.customConversionId` to optimise against a Custom Conversion, or `customEventType: OTHER` + `customEventStr` to optimise against a pixel custom event.
39326
39334
  - `lead_conversion`: OUTCOME_LEADS optimizing website pixel leads. Same pixel and event fields, but with a leads-class event such as LEAD, SUBMIT_APPLICATION, SCHEDULE or CONTACT (or `promotedObject.customConversionId` to optimise against a Custom Conversion instead). Meta gates conversion events by objective, so leads-class events are rejected under `conversions`.
39327
39335
  - `lead_generation`: OUTCOME_LEADS with instant forms. Requires `leadGenFormId`. `promotedObject.pageId` is optional and auto-filled from the connected Page.
39328
39336
  - `app_promotion`: requires `promotedObject.applicationId` and `promotedObject.objectStoreUrl`.
@@ -40016,7 +40024,7 @@ paths:
40016
40024
  Required for goals whose ad-set optimization_goal points at a specific
40017
40025
  event/page/app (without it Meta rejects the ad-set create with
40018
40026
  `error_subcode: 1815430` "Please select a promoted object for your ad set"):
40019
- - `goal: conversions` / `lead_conversion` (OFFSITE_CONVERSIONS): requires `pixelId` + `customEventType`, or `customConversionId` when optimising against a Custom Conversion (the conversion carries its own event definition)
40027
+ - `goal: conversions` / `lead_conversion` (OFFSITE_CONVERSIONS): requires `pixelId` + `customEventType`, or `customConversionId` when optimising against a Custom Conversion (the conversion carries its own event definition). For a pixel CUSTOM event (one you named yourself in CAPI/Events Manager), send `customEventType: OTHER` + `customEventStr` with the event name.
40020
40028
  - `goal: app_promotion` (APP_INSTALLS): requires `applicationId` + `objectStoreUrl`
40021
40029
  - `goal: lead_generation` (LEAD_GENERATION): `pageId` is auto-filled from the connected Page when omitted
40022
40030
 
@@ -40061,6 +40069,16 @@ paths:
40061
40069
  Registration), `ON_WEB_DETAIL` (View Content). `ON_WEB_ORDER` is
40062
40070
  deprecated. On rejection the error lists the event types your pixel
40063
40071
  actually tracks. Optional for `goal: conversions`.
40072
+ customEventStr:
40073
+ type: string
40074
+ description: |
40075
+ Meta only. Pixel custom-event name to optimise against (Meta's
40076
+ `custom_event_str`), exactly as it appears in Events Manager and in your
40077
+ CAPI payloads (case-sensitive, not uppercased). Requires
40078
+ `customEventType: OTHER`, and `OTHER` requires this field (400 either way).
40079
+ The same as picking a custom event in Ads Manager's conversion-event
40080
+ dropdown. For rule-based Custom Conversions use `customConversionId`
40081
+ instead.
40064
40082
  pageId:
40065
40083
  type: string
40066
40084
  description: |
@@ -39,6 +39,12 @@ describe Zernio::CreateStandaloneAdRequestPromotedObject do
39
39
  end
40
40
  end
41
41
 
42
+ describe 'test attribute "custom_event_str"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
42
48
  describe 'test attribute "page_id"' do
43
49
  it 'should work' do
44
50
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -39,6 +39,12 @@ describe Zernio::UpdateAdSetRequestPlatformSpecificDataPromotedObject do
39
39
  end
40
40
  end
41
41
 
42
+ describe 'test attribute "custom_event_str"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
42
48
  describe 'test attribute "page_id"' do
43
49
  it 'should work' do
44
50
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -27,6 +27,12 @@ describe Zernio::WebhookPayloadMessageMetadata do
27
27
  end
28
28
  end
29
29
 
30
+ describe 'test attribute "quoted_message_id"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
30
36
  describe 'test attribute "quick_reply_payload"' do
31
37
  it 'should work' do
32
38
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.677
4
+ version: 0.0.679
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
@@ -4985,7 +4985,7 @@ files:
4985
4985
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
4986
4986
  - spec/models/you_tube_video_retention_response_spec.rb
4987
4987
  - spec/spec_helper.rb
4988
- - zernio-sdk-0.0.677.gem
4988
+ - zernio-sdk-0.0.679.gem
4989
4989
  - zernio-sdk.gemspec
4990
4990
  homepage: https://openapi-generator.tech
4991
4991
  licenses:
Binary file