late-sdk 0.0.908 → 0.0.909
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 +4 -4
- data/docs/AdAccountsApi.md +4 -4
- data/docs/CheckPhoneNumberAvailability200Response.md +1 -1
- data/docs/GetAdComments200ResponseMeta.md +1 -1
- data/docs/ListPhoneNumberCountries200ResponseCountriesInnerTypesInner.md +1 -1
- data/docs/SubmitPhoneNumberKyc200Response.md +1 -1
- data/lib/zernio-sdk/api/ad_accounts_api.rb +8 -8
- data/lib/zernio-sdk/models/check_phone_number_availability200_response.rb +1 -1
- data/lib/zernio-sdk/models/get_ad_comments200_response_meta.rb +1 -1
- data/lib/zernio-sdk/models/list_phone_number_countries200_response_countries_inner_types_inner.rb +1 -1
- data/lib/zernio-sdk/models/submit_phone_number_kyc200_response.rb +1 -1
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +43 -17
- data/spec/api/ad_accounts_api_spec.rb +4 -4
- data/zernio-sdk-0.0.909.gem +0 -0
- metadata +2 -2
- data/zernio-sdk-0.0.908.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 974e77513dba9112d9e110a423ce5297cd5f0527ed74b170e152796ea936db4a
|
|
4
|
+
data.tar.gz: 468ad164a81258985f0539aa1bb46d3e88021834505f5b4826a5c9cda8f6a441
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 29b970c78f1ccf37b6822e9206bf55c67a183dac2b292aefb6a630eabd8a92bf8b6649923269f732f45d8863e6623cbf19ebf262e00b551292d23197f7e7409b
|
|
7
|
+
data.tar.gz: 826f9fae0064573311d9f19aa06937fe62e17ed2848dd5a149f55a265aba841ff1e780d56d0c5c9ebffca93d9b6cd2af05a685e8b18b00b152f83698123114f7
|
data/docs/AdAccountsApi.md
CHANGED
|
@@ -611,7 +611,7 @@ end
|
|
|
611
611
|
|
|
612
612
|
Delete an ad comment
|
|
613
613
|
|
|
614
|
-
Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
614
|
+
Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
615
615
|
|
|
616
616
|
### Examples
|
|
617
617
|
|
|
@@ -907,7 +907,7 @@ end
|
|
|
907
907
|
|
|
908
908
|
List comments on an ad
|
|
909
909
|
|
|
910
|
-
Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment and
|
|
910
|
+
Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. Listing needs no identity or video item ID. When the ad group is stored, each page makes one comment-list call and no ad-detail lookup, including for external ads that TikTok no longer returns from ad details. `meta.tiktokItemId: null` does not prevent listing. If the ad group is missing, Zernio fetches ad details; unavailable details return 404 ad_not_found, and no ad group returns 400 ad_not_commentable. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment, comment-management permission, a video item ID and a supported TT_USER or CUSTOMIZED_USER identity. `canDelete` requires TikTok's own-comment deletion capability, a video item ID and a supported identity. Both flags are false when identity or item is unknown. Listing uses stored and comment-specific fields without fetching identity. A direct reply or delete request can lazily resolve missing fields and succeed even after a false flag. `canHide` is true because visibility changes need only advertiser and comment IDs. `canLike` is false. Use the ad comment reply, hide and delete operations below to moderate TikTok comments. Other platforms return feature_not_available. Requires the Ads add-on. Response shape matches GET /v1/inbox/comments/{postId}. The `{adId}` path segment accepts any identifier dialect Zernio indexes for the ad: Zernio internal `_id` (24-char hex), the numeric `platformAdId` (the value shipped in `comment.received` webhooks as `comment.ad.id`), or the creative's `effective_object_story_id` / `effective_instagram_media_id`. Caller doesn't need a translation step.
|
|
911
911
|
|
|
912
912
|
### Examples
|
|
913
913
|
|
|
@@ -1434,7 +1434,7 @@ end
|
|
|
1434
1434
|
|
|
1435
1435
|
Hide or unhide an ad comment
|
|
1436
1436
|
|
|
1437
|
-
Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1437
|
+
Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Identity and video item ID are not required; no identity lookup is performed. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1438
1438
|
|
|
1439
1439
|
### Examples
|
|
1440
1440
|
|
|
@@ -2829,7 +2829,7 @@ end
|
|
|
2829
2829
|
|
|
2830
2830
|
Reply to an ad comment
|
|
2831
2831
|
|
|
2832
|
-
Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2832
|
+
Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2833
2833
|
|
|
2834
2834
|
### Examples
|
|
2835
2835
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| **country** | **String** | | [optional] |
|
|
8
8
|
| **number_type** | **String** | | [optional] |
|
|
9
9
|
| **available** | **Boolean** | Whether deliverable voice inventory exists right now. | [optional] |
|
|
10
|
-
| **pre_orderable** | **Boolean** | Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and the carrier sources the number
|
|
10
|
+
| **pre_orderable** | **Boolean** | Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and we buy regular stock the moment it returns, otherwise the carrier sources the number (usually 2 to 4 weeks, never guaranteed). Only document tiers (3/4) qualify. | [optional] |
|
|
11
11
|
| **address_constraint** | **String** | | [optional] |
|
|
12
12
|
| **areas** | **Array<String>** | For `geo` only: the area(s) the registered address must be in. | [optional] |
|
|
13
13
|
| **area_options** | [**Array<CheckPhoneNumberAvailability200ResponseAreaOptionsInner>**](CheckPhoneNumberAvailability200ResponseAreaOptionsInner.md) | Live inventory grouped by area code. For US and CA this is the full country inventory (every area code with stock, recognizable metros listed first, then alphabetical); other countries are ordered largest stock first; they list the areas in the latest inventory page (up to 500 numbers, which for most countries is the entire pool). Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area. | [optional] |
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| **ad_id** | **String** | Internal Zernio ad ID. | |
|
|
10
10
|
| **platform_ad_id** | **String** | Platform ad ID. | [optional] |
|
|
11
11
|
| **effective_story_id** | **String** | Underlying post ID the comments belong to. effective_object_story_id for the Facebook side, effective_instagram_media_id for the Instagram side. | [optional] |
|
|
12
|
-
| **tiktok_item_id** | **String** | TikTok-only video item ID. Null
|
|
12
|
+
| **tiktok_item_id** | **String** | TikTok-only video item ID from stored ad fields or returned comments. Null does not prevent listing; ad details are not fetched to populate it. | [optional] |
|
|
13
13
|
| **since** | **Date** | TikTok-only resolved start date. | [optional] |
|
|
14
14
|
| **_until** | **Date** | TikTok-only resolved end date. | [optional] |
|
|
15
15
|
| **facebook_account_id** | **String** | Facebook-only. The connected Facebook Page SocialAccount these comments were read through. Pass it as `accountId` (with `effectiveStoryId` as the postId) to /v1/inbox/comments to reply/hide/delete. Null when no connected Page was used (then moderation isn't possible). | [optional] |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
| **calls_available** | **Boolean** | | [optional] |
|
|
14
14
|
| **in_stock** | **Boolean** | | [optional] |
|
|
15
15
|
| **fulfilment** | **String** | `request`: the carrier stocks this type nowhere and only sources it to order, so it is always a pre-order. | [optional] |
|
|
16
|
-
| **pre_orderable** | **Boolean** | Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc)
|
|
16
|
+
| **pre_orderable** | **Boolean** | Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc): we buy regular stock the moment it returns, otherwise the carrier sources the number. Usually 2 to 4 weeks, never guaranteed. Only document tiers (3/4) qualify, and nothing is billed until the number is active. | [optional] |
|
|
17
17
|
|
|
18
18
|
## Example
|
|
19
19
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **status** | **String** | | [optional] |
|
|
8
|
-
| **pre_order** | **Boolean** | True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until the
|
|
8
|
+
| **pre_order** | **Boolean** | True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until we get it, from regular stock the moment it returns or sourced by the carrier (usually 2 to 4 weeks), and is not billed until active. Releasing it (DELETE /v1/phone-numbers/{id}) cancels the pre-order. A pre-order is one number: `quantity` above 1 is rejected with 400. | [optional] |
|
|
9
9
|
| **phone_number** | [**SubmitPhoneNumberKyc200ResponsePhoneNumber**](SubmitPhoneNumberKyc200ResponsePhoneNumber.md) | | [optional] |
|
|
10
10
|
| **numbers** | [**Array<SubmitPhoneNumberKyc200ResponseNumbersInner>**](SubmitPhoneNumberKyc200ResponseNumbersInner.md) | Every number provisioned from this submission. Length equals the requested `quantity` on full success (fewer if some orders failed; best-effort). The first element mirrors `phoneNumber`. | [optional] |
|
|
11
11
|
|
|
@@ -570,7 +570,7 @@ module Zernio
|
|
|
570
570
|
end
|
|
571
571
|
|
|
572
572
|
# Delete an ad comment
|
|
573
|
-
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
573
|
+
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
574
574
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
575
575
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
576
576
|
# @param [Hash] opts the optional parameters
|
|
@@ -583,7 +583,7 @@ module Zernio
|
|
|
583
583
|
end
|
|
584
584
|
|
|
585
585
|
# Delete an ad comment
|
|
586
|
-
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
586
|
+
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
587
587
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
588
588
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
589
589
|
# @param [Hash] opts the optional parameters
|
|
@@ -886,7 +886,7 @@ module Zernio
|
|
|
886
886
|
end
|
|
887
887
|
|
|
888
888
|
# List comments on an ad
|
|
889
|
-
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment and
|
|
889
|
+
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. Listing needs no identity or video item ID. When the ad group is stored, each page makes one comment-list call and no ad-detail lookup, including for external ads that TikTok no longer returns from ad details. `meta.tiktokItemId: null` does not prevent listing. If the ad group is missing, Zernio fetches ad details; unavailable details return 404 ad_not_found, and no ad group returns 400 ad_not_commentable. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment, comment-management permission, a video item ID and a supported TT_USER or CUSTOMIZED_USER identity. `canDelete` requires TikTok's own-comment deletion capability, a video item ID and a supported identity. Both flags are false when identity or item is unknown. Listing uses stored and comment-specific fields without fetching identity. A direct reply or delete request can lazily resolve missing fields and succeed even after a false flag. `canHide` is true because visibility changes need only advertiser and comment IDs. `canLike` is false. Use the ad comment reply, hide and delete operations below to moderate TikTok comments. Other platforms return feature_not_available. Requires the Ads add-on. Response shape matches GET /v1/inbox/comments/{postId}. The `{adId}` path segment accepts any identifier dialect Zernio indexes for the ad: Zernio internal `_id` (24-char hex), the numeric `platformAdId` (the value shipped in `comment.received` webhooks as `comment.ad.id`), or the creative's `effective_object_story_id` / `effective_instagram_media_id`. Caller doesn't need a translation step.
|
|
890
890
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad/post ID.
|
|
891
891
|
# @param [Hash] opts the optional parameters
|
|
892
892
|
# @option opts [String] :placement Which side of the ad to return comments for. Omit to default to the Instagram side when present, else Facebook. Returns ad_not_commentable if the ad has no such placement.
|
|
@@ -901,7 +901,7 @@ module Zernio
|
|
|
901
901
|
end
|
|
902
902
|
|
|
903
903
|
# List comments on an ad
|
|
904
|
-
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment and
|
|
904
|
+
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. Listing needs no identity or video item ID. When the ad group is stored, each page makes one comment-list call and no ad-detail lookup, including for external ads that TikTok no longer returns from ad details. `meta.tiktokItemId: null` does not prevent listing. If the ad group is missing, Zernio fetches ad details; unavailable details return 404 ad_not_found, and no ad group returns 400 ad_not_commentable. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment, comment-management permission, a video item ID and a supported TT_USER or CUSTOMIZED_USER identity. `canDelete` requires TikTok's own-comment deletion capability, a video item ID and a supported identity. Both flags are false when identity or item is unknown. Listing uses stored and comment-specific fields without fetching identity. A direct reply or delete request can lazily resolve missing fields and succeed even after a false flag. `canHide` is true because visibility changes need only advertiser and comment IDs. `canLike` is false. Use the ad comment reply, hide and delete operations below to moderate TikTok comments. Other platforms return feature_not_available. Requires the Ads add-on. Response shape matches GET /v1/inbox/comments/{postId}. The `{adId}` path segment accepts any identifier dialect Zernio indexes for the ad: Zernio internal `_id` (24-char hex), the numeric `platformAdId` (the value shipped in `comment.received` webhooks as `comment.ad.id`), or the creative's `effective_object_story_id` / `effective_instagram_media_id`. Caller doesn't need a translation step.
|
|
905
905
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad/post ID.
|
|
906
906
|
# @param [Hash] opts the optional parameters
|
|
907
907
|
# @option opts [String] :placement Which side of the ad to return comments for. Omit to default to the Instagram side when present, else Facebook. Returns ad_not_commentable if the ad has no such placement.
|
|
@@ -1465,7 +1465,7 @@ module Zernio
|
|
|
1465
1465
|
end
|
|
1466
1466
|
|
|
1467
1467
|
# Hide or unhide an ad comment
|
|
1468
|
-
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1468
|
+
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Identity and video item ID are not required; no identity lookup is performed. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1469
1469
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
1470
1470
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
1471
1471
|
# @param hide_ad_comment_request [HideAdCommentRequest]
|
|
@@ -1479,7 +1479,7 @@ module Zernio
|
|
|
1479
1479
|
end
|
|
1480
1480
|
|
|
1481
1481
|
# Hide or unhide an ad comment
|
|
1482
|
-
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1482
|
+
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Identity and video item ID are not required; no identity lookup is performed. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
1483
1483
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
1484
1484
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
1485
1485
|
# @param hide_ad_comment_request [HideAdCommentRequest]
|
|
@@ -2938,7 +2938,7 @@ module Zernio
|
|
|
2938
2938
|
end
|
|
2939
2939
|
|
|
2940
2940
|
# Reply to an ad comment
|
|
2941
|
-
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2941
|
+
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2942
2942
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
2943
2943
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
2944
2944
|
# @param reply_to_ad_comment_request [ReplyToAdCommentRequest]
|
|
@@ -2952,7 +2952,7 @@ module Zernio
|
|
|
2952
2952
|
end
|
|
2953
2953
|
|
|
2954
2954
|
# Reply to an ad comment
|
|
2955
|
-
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2955
|
+
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
2956
2956
|
# @param ad_id [String] Internal Zernio ad ID or indexed platform ad ID.
|
|
2957
2957
|
# @param comment_id [String] TikTok comment ID from the ad comment listing.
|
|
2958
2958
|
# @param reply_to_ad_comment_request [ReplyToAdCommentRequest]
|
|
@@ -22,7 +22,7 @@ module Zernio
|
|
|
22
22
|
# Whether deliverable voice inventory exists right now.
|
|
23
23
|
attr_accessor :available
|
|
24
24
|
|
|
25
|
-
# Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and the carrier sources the number
|
|
25
|
+
# Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and we buy regular stock the moment it returns, otherwise the carrier sources the number (usually 2 to 4 weeks, never guaranteed). Only document tiers (3/4) qualify.
|
|
26
26
|
attr_accessor :pre_orderable
|
|
27
27
|
|
|
28
28
|
attr_accessor :address_constraint
|
|
@@ -30,7 +30,7 @@ module Zernio
|
|
|
30
30
|
# Underlying post ID the comments belong to. effective_object_story_id for the Facebook side, effective_instagram_media_id for the Instagram side.
|
|
31
31
|
attr_accessor :effective_story_id
|
|
32
32
|
|
|
33
|
-
# TikTok-only video item ID. Null
|
|
33
|
+
# TikTok-only video item ID from stored ad fields or returned comments. Null does not prevent listing; ad details are not fetched to populate it.
|
|
34
34
|
attr_accessor :tiktok_item_id
|
|
35
35
|
|
|
36
36
|
# TikTok-only resolved start date.
|
data/lib/zernio-sdk/models/list_phone_number_countries200_response_countries_inner_types_inner.rb
CHANGED
|
@@ -37,7 +37,7 @@ module Zernio
|
|
|
37
37
|
# `request`: the carrier stocks this type nowhere and only sources it to order, so it is always a pre-order.
|
|
38
38
|
attr_accessor :fulfilment
|
|
39
39
|
|
|
40
|
-
# Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc)
|
|
40
|
+
# Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc): we buy regular stock the moment it returns, otherwise the carrier sources the number. Usually 2 to 4 weeks, never guaranteed. Only document tiers (3/4) qualify, and nothing is billed until the number is active.
|
|
41
41
|
attr_accessor :pre_orderable
|
|
42
42
|
|
|
43
43
|
class EnumAttributeValidator
|
|
@@ -17,7 +17,7 @@ module Zernio
|
|
|
17
17
|
class SubmitPhoneNumberKyc200Response < ApiModelBase
|
|
18
18
|
attr_accessor :status
|
|
19
19
|
|
|
20
|
-
# True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until the
|
|
20
|
+
# True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until we get it, from regular stock the moment it returns or sourced by the carrier (usually 2 to 4 weeks), and is not billed until active. Releasing it (DELETE /v1/phone-numbers/{id}) cancels the pre-order. A pre-order is one number: `quantity` above 1 is rejected with 400.
|
|
21
21
|
attr_accessor :pre_order
|
|
22
22
|
|
|
23
23
|
attr_accessor :phone_number
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -36337,7 +36337,7 @@ paths:
|
|
|
36337
36337
|
callsAvailable: { type: boolean }
|
|
36338
36338
|
inStock: { type: boolean }
|
|
36339
36339
|
fulfilment: { type: string, enum: [instant, request], description: "`request`: the carrier stocks this type nowhere and only sources it to order, so it is always a pre-order." }
|
|
36340
|
-
preOrderable: { type: boolean, description: "Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc)
|
|
36340
|
+
preOrderable: { type: boolean, description: "Out of stock but orderable anyway. Submit KYC as usual (POST /v1/phone-numbers/kyc): we buy regular stock the moment it returns, otherwise the carrier sources the number. Usually 2 to 4 weeks, never guaranteed. Only document tiers (3/4) qualify, and nothing is billed until the number is active." }
|
|
36341
36341
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
36342
36342
|
|
|
36343
36343
|
/v1/phone-numbers/available:
|
|
@@ -36416,7 +36416,7 @@ paths:
|
|
|
36416
36416
|
country: { type: string }
|
|
36417
36417
|
numberType: { type: string }
|
|
36418
36418
|
available: { type: boolean, description: Whether deliverable voice inventory exists right now. }
|
|
36419
|
-
preOrderable: { type: boolean, description: "Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and the carrier sources the number
|
|
36419
|
+
preOrderable: { type: boolean, description: "Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and we buy regular stock the moment it returns, otherwise the carrier sources the number (usually 2 to 4 weeks, never guaranteed). Only document tiers (3/4) qualify." }
|
|
36420
36420
|
addressConstraint: { type: string, enum: [geo, country, none] }
|
|
36421
36421
|
areas:
|
|
36422
36422
|
type: array
|
|
@@ -36802,7 +36802,7 @@ paths:
|
|
|
36802
36802
|
country: { type: string }
|
|
36803
36803
|
numberType: { type: string }
|
|
36804
36804
|
available: { type: boolean, description: Whether deliverable voice inventory exists right now. }
|
|
36805
|
-
preOrderable: { type: boolean, description: "Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and the carrier sources the number
|
|
36805
|
+
preOrderable: { type: boolean, description: "Nothing deliverable now, but this pair can be pre-ordered: submit KYC as usual and we buy regular stock the moment it returns, otherwise the carrier sources the number (usually 2 to 4 weeks, never guaranteed). Only document tiers (3/4) qualify." }
|
|
36806
36806
|
addressConstraint: { type: string, enum: [geo, country, none] }
|
|
36807
36807
|
areas:
|
|
36808
36808
|
type: array
|
|
@@ -36987,7 +36987,7 @@ paths:
|
|
|
36987
36987
|
type: object
|
|
36988
36988
|
properties:
|
|
36989
36989
|
status: { type: string, enum: [kyc_submitted, kyc_reused, kyc_already_submitted] }
|
|
36990
|
-
preOrder: { type: boolean, description: "True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until the
|
|
36990
|
+
preOrder: { type: boolean, description: "True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until we get it, from regular stock the moment it returns or sourced by the carrier (usually 2 to 4 weeks), and is not billed until active. Releasing it (DELETE /v1/phone-numbers/{id}) cancels the pre-order. A pre-order is one number: `quantity` above 1 is rejected with 400." }
|
|
36991
36991
|
phoneNumber:
|
|
36992
36992
|
type: object
|
|
36993
36993
|
description: The first/primary number, kept at the top level for backward compatibility. See `numbers` for the full set when `quantity` > 1.
|
|
@@ -37981,7 +37981,7 @@ paths:
|
|
|
37981
37981
|
type: object
|
|
37982
37982
|
properties:
|
|
37983
37983
|
status: { type: string, enum: [kyc_submitted, kyc_reused, kyc_already_submitted] }
|
|
37984
|
-
preOrder: { type: boolean, description: "True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until the
|
|
37984
|
+
preOrder: { type: boolean, description: "True when nothing was in stock and this submission placed a pre-order. The number stays `pending_regulatory` until we get it, from regular stock the moment it returns or sourced by the carrier (usually 2 to 4 weeks), and is not billed until active. Releasing it (DELETE /v1/phone-numbers/{id}) cancels the pre-order. A pre-order is one number: `quantity` above 1 is rejected with 400." }
|
|
37985
37985
|
phoneNumber:
|
|
37986
37986
|
type: object
|
|
37987
37987
|
description: The first/primary number, kept at the top level for backward compatibility. See `numbers` for the full set when `quantity` > 1.
|
|
@@ -46675,12 +46675,22 @@ paths:
|
|
|
46675
46675
|
each page to this ad. A page can be empty while `pagination.hasMore` is true.
|
|
46676
46676
|
Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window.
|
|
46677
46677
|
`placement` is Meta-only and returns a 400 for TikTok.
|
|
46678
|
+
Listing needs no identity or video item ID. When the ad group is stored, each
|
|
46679
|
+
page makes one comment-list call and no ad-detail lookup, including for external
|
|
46680
|
+
ads that TikTok no longer returns from ad details. `meta.tiktokItemId: null`
|
|
46681
|
+
does not prevent listing. If the ad group is missing, Zernio fetches ad details;
|
|
46682
|
+
unavailable details return 404 ad_not_found, and no ad group returns 400 ad_not_commentable.
|
|
46678
46683
|
|
|
46679
46684
|
TikTok returns replies as separate comments with `parentId`; nested reply fetching
|
|
46680
|
-
is not supported. `canReply` requires a first-level comment
|
|
46681
|
-
|
|
46682
|
-
|
|
46683
|
-
|
|
46685
|
+
is not supported. `canReply` requires a first-level comment, comment-management
|
|
46686
|
+
permission, a video item ID and a supported TT_USER or CUSTOMIZED_USER identity.
|
|
46687
|
+
`canDelete` requires TikTok's own-comment deletion capability, a video item ID
|
|
46688
|
+
and a supported identity. Both flags are false when identity or item is unknown.
|
|
46689
|
+
Listing uses stored and comment-specific fields without fetching identity.
|
|
46690
|
+
A direct reply or delete request can lazily resolve missing fields and succeed
|
|
46691
|
+
even after a false flag. `canHide` is true because visibility changes need only
|
|
46692
|
+
advertiser and comment IDs. `canLike` is false. Use the ad comment reply, hide
|
|
46693
|
+
and delete operations below to moderate TikTok comments.
|
|
46684
46694
|
Other platforms return feature_not_available.
|
|
46685
46695
|
|
|
46686
46696
|
Requires the Ads add-on. Response shape matches GET /v1/inbox/comments/{postId}.
|
|
@@ -46732,7 +46742,7 @@ paths:
|
|
|
46732
46742
|
description: "Underlying post ID the comments belong to. effective_object_story_id for the Facebook side, effective_instagram_media_id for the Instagram side."
|
|
46733
46743
|
tiktokItemId:
|
|
46734
46744
|
type: [string, "null"]
|
|
46735
|
-
description: "TikTok-only video item ID. Null
|
|
46745
|
+
description: "TikTok-only video item ID from stored ad fields or returned comments. Null does not prevent listing; ad details are not fetched to populate it."
|
|
46736
46746
|
since: { type: string, format: date, description: "TikTok-only resolved start date." }
|
|
46737
46747
|
until: { type: string, format: date, description: "TikTok-only resolved end date." }
|
|
46738
46748
|
facebookAccountId:
|
|
@@ -46762,7 +46772,7 @@ paths:
|
|
|
46762
46772
|
url: null
|
|
46763
46773
|
replies: []
|
|
46764
46774
|
isHidden: false
|
|
46765
|
-
canReply:
|
|
46775
|
+
canReply: false
|
|
46766
46776
|
canDelete: false
|
|
46767
46777
|
canHide: true
|
|
46768
46778
|
canLike: false
|
|
@@ -46773,7 +46783,7 @@ paths:
|
|
|
46773
46783
|
adId: "507f1f77bcf86cd799439011"
|
|
46774
46784
|
platformAdId: "1790166588666881"
|
|
46775
46785
|
accountId: "507f1f77bcf86cd799439012"
|
|
46776
|
-
tiktokItemId:
|
|
46786
|
+
tiktokItemId: null
|
|
46777
46787
|
since: "2026-08-10"
|
|
46778
46788
|
until: "2026-09-09"
|
|
46779
46789
|
lastUpdated: "2026-09-09T12:00:00.000Z"
|
|
@@ -46800,6 +46810,14 @@ paths:
|
|
|
46800
46810
|
description: |
|
|
46801
46811
|
Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response.
|
|
46802
46812
|
|
|
46813
|
+
Unknown identity and video item fields are resolved only when needed for this
|
|
46814
|
+
action, then persisted for reuse. Comment-specific fields take precedence.
|
|
46815
|
+
If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found
|
|
46816
|
+
directs you to check deletion or archival in TikTok Ads Manager. Listing can
|
|
46817
|
+
still succeed. Unsupported or unavailable identity returns 403 feature_not_available.
|
|
46818
|
+
Denied access to ad details returns 403 insufficient_permissions with reconnect
|
|
46819
|
+
guidance and the upstream platformError.
|
|
46820
|
+
|
|
46803
46821
|
Requires Ads access. The ad is resolved within the caller's accessible profiles.
|
|
46804
46822
|
Before moderation, Zernio verifies that the comment belongs to this ad using
|
|
46805
46823
|
TikTok's ad-group comment listing. The default search window is the last 30 days.
|
|
@@ -46839,9 +46857,9 @@ paths:
|
|
|
46839
46857
|
'400': { $ref: '#/components/responses/BadRequest' }
|
|
46840
46858
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
46841
46859
|
'403':
|
|
46842
|
-
description: "Ads access or
|
|
46860
|
+
description: "Ads access or supported identity is unavailable (feature_not_available), or TikTok denies ad-detail access or comment-management permission (insufficient_permissions). Grant permission and reconnect the TikTok Ads account before retrying."
|
|
46843
46861
|
'404':
|
|
46844
|
-
description: "Ad is inaccessible or the comment was not found on this ad in the selected date window."
|
|
46862
|
+
description: "Ad is inaccessible or unavailable on TikTok for identity resolution (ad_not_found), or the comment was not found on this ad in the selected date window (resource_not_found)."
|
|
46845
46863
|
'422':
|
|
46846
46864
|
description: "TikTok Ads connection is unavailable."
|
|
46847
46865
|
'501':
|
|
@@ -46857,7 +46875,7 @@ paths:
|
|
|
46857
46875
|
x-resource-group: "engagement"
|
|
46858
46876
|
x-platforms: ["tiktok"]
|
|
46859
46877
|
description: |
|
|
46860
|
-
Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again.
|
|
46878
|
+
Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Identity and video item ID are not required; no identity lookup is performed.
|
|
46861
46879
|
|
|
46862
46880
|
Requires Ads access. The ad is resolved within the caller's accessible profiles.
|
|
46863
46881
|
Before moderation, Zernio verifies that the comment belongs to this ad using
|
|
@@ -46919,6 +46937,14 @@ paths:
|
|
|
46919
46937
|
description: |
|
|
46920
46938
|
Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead.
|
|
46921
46939
|
|
|
46940
|
+
Unknown identity and video item fields are resolved only when needed for this
|
|
46941
|
+
action, then persisted for reuse. Comment-specific fields take precedence.
|
|
46942
|
+
If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found
|
|
46943
|
+
directs you to check deletion or archival in TikTok Ads Manager. Listing can
|
|
46944
|
+
still succeed. Unsupported or unavailable identity returns 403 feature_not_available.
|
|
46945
|
+
Denied access to ad details returns 403 insufficient_permissions with reconnect
|
|
46946
|
+
guidance and the upstream platformError.
|
|
46947
|
+
|
|
46922
46948
|
Requires Ads access. The ad is resolved within the caller's accessible profiles.
|
|
46923
46949
|
Before moderation, Zernio verifies that the comment belongs to this ad using
|
|
46924
46950
|
TikTok's ad-group comment listing. The default search window is the last 30 days.
|
|
@@ -46948,9 +46974,9 @@ paths:
|
|
|
46948
46974
|
'400': { $ref: '#/components/responses/BadRequest' }
|
|
46949
46975
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
46950
46976
|
'403':
|
|
46951
|
-
description: "Ads access or
|
|
46977
|
+
description: "Ads access, own-comment deletion or supported identity is unavailable (feature_not_available), or TikTok denies ad-detail access (insufficient_permissions)."
|
|
46952
46978
|
'404':
|
|
46953
|
-
description: "Ad is inaccessible or the comment was not found on this ad in the selected date window."
|
|
46979
|
+
description: "Ad is inaccessible or unavailable on TikTok for identity resolution (ad_not_found), or the comment was not found on this ad in the selected date window (resource_not_found)."
|
|
46954
46980
|
'422':
|
|
46955
46981
|
description: "TikTok Ads connection is unavailable."
|
|
46956
46982
|
'501':
|
|
@@ -131,7 +131,7 @@ describe 'AdAccountsApi' do
|
|
|
131
131
|
|
|
132
132
|
# unit tests for delete_ad_comment
|
|
133
133
|
# Delete an ad comment
|
|
134
|
-
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
134
|
+
# Delete your own TikTok ad comment or reply. TikTok must return can_delete=true for the comment. Other users' comments can be hidden instead. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
135
135
|
# @param ad_id Internal Zernio ad ID or indexed platform ad ID.
|
|
136
136
|
# @param comment_id TikTok comment ID from the ad comment listing.
|
|
137
137
|
# @param [Hash] opts the optional parameters
|
|
@@ -187,7 +187,7 @@ describe 'AdAccountsApi' do
|
|
|
187
187
|
|
|
188
188
|
# unit tests for get_ad_comments
|
|
189
189
|
# List comments on an ad
|
|
190
|
-
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment and
|
|
190
|
+
# Returns comments on an ad's underlying creative post. Useful for moderating or analyzing engagement on dark posts (ad creatives that never went live organically), which the regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are not in Zernio's post database. An ad that runs on both Facebook feed and Instagram feed has two separate underlying posts with separate comment threads (the creative's effective_object_story_id and effective_instagram_media_id). Use the `placement` query param to pick one; with no param the Instagram side is returned when it exists, otherwise Facebook. The identifiers are read from the ad record (persisted during sync) with a Marketing-API fallback for ads that predate the field. For Instagram-placed comments, the Instagram account that runs the ad must be connected to Zernio, because those comments are read through that account's token. If no connected Instagram account on the profile can read the ad's media, the call returns ads_connection_required (the Facebook side, if any, is still readable via ?placement=facebook). TikTok uses the connected TikTok Ads advertiser token and supports both paid video ads and Spark Ads. `since` and `until` select a date window of at most 30 days; the default is the last 30 days. TikTok searches by ad group, so Zernio filters each page to this ad. A page can be empty while `pagination.hasMore` is true. Reuse `pagination.cursor` with the same `limit`; the cursor retains the date window. `placement` is Meta-only and returns a 400 for TikTok. Listing needs no identity or video item ID. When the ad group is stored, each page makes one comment-list call and no ad-detail lookup, including for external ads that TikTok no longer returns from ad details. `meta.tiktokItemId: null` does not prevent listing. If the ad group is missing, Zernio fetches ad details; unavailable details return 404 ad_not_found, and no ad group returns 400 ad_not_commentable. TikTok returns replies as separate comments with `parentId`; nested reply fetching is not supported. `canReply` requires a first-level comment, comment-management permission, a video item ID and a supported TT_USER or CUSTOMIZED_USER identity. `canDelete` requires TikTok's own-comment deletion capability, a video item ID and a supported identity. Both flags are false when identity or item is unknown. Listing uses stored and comment-specific fields without fetching identity. A direct reply or delete request can lazily resolve missing fields and succeed even after a false flag. `canHide` is true because visibility changes need only advertiser and comment IDs. `canLike` is false. Use the ad comment reply, hide and delete operations below to moderate TikTok comments. Other platforms return feature_not_available. Requires the Ads add-on. Response shape matches GET /v1/inbox/comments/{postId}. The `{adId}` path segment accepts any identifier dialect Zernio indexes for the ad: Zernio internal `_id` (24-char hex), the numeric `platformAdId` (the value shipped in `comment.received` webhooks as `comment.ad.id`), or the creative's `effective_object_story_id` / `effective_instagram_media_id`. Caller doesn't need a translation step.
|
|
191
191
|
# @param ad_id Internal Zernio ad ID or indexed platform ad/post ID.
|
|
192
192
|
# @param [Hash] opts the optional parameters
|
|
193
193
|
# @option opts [String] :placement Which side of the ad to return comments for. Omit to default to the Instagram side when present, else Facebook. Returns ad_not_commentable if the ad has no such placement.
|
|
@@ -290,7 +290,7 @@ describe 'AdAccountsApi' do
|
|
|
290
290
|
|
|
291
291
|
# unit tests for hide_ad_comment
|
|
292
292
|
# Hide or unhide an ad comment
|
|
293
|
-
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
293
|
+
# Hide or restore a TikTok ad comment. Send hidden=true to hide it or hidden=false to make it public again. Identity and video item ID are not required; no identity lookup is performed. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
294
294
|
# @param ad_id Internal Zernio ad ID or indexed platform ad ID.
|
|
295
295
|
# @param comment_id TikTok comment ID from the ad comment listing.
|
|
296
296
|
# @param hide_ad_comment_request
|
|
@@ -549,7 +549,7 @@ describe 'AdAccountsApi' do
|
|
|
549
549
|
|
|
550
550
|
# unit tests for reply_to_ad_comment
|
|
551
551
|
# Reply to an ad comment
|
|
552
|
-
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
552
|
+
# Reply to a first-level TikTok ad comment. Requires a TT_USER or CUSTOMIZED_USER identity with comment-management permission. Replies to replies are rejected. The response commentId identifies the new reply. This operation is not idempotent; do not blindly retry an uncertain response. Unknown identity and video item fields are resolved only when needed for this action, then persisted for reuse. Comment-specific fields take precedence. If TikTok no longer returns the ad needed to resolve identity, 404 ad_not_found directs you to check deletion or archival in TikTok Ads Manager. Listing can still succeed. Unsupported or unavailable identity returns 403 feature_not_available. Denied access to ad details returns 403 insufficient_permissions with reconnect guidance and the upstream platformError. Requires Ads access. The ad is resolved within the caller's accessible profiles. Before moderation, Zernio verifies that the comment belongs to this ad using TikTok's ad-group comment listing. The default search window is the last 30 days. Use since/until for older comments, with at most 30 days between the dates. Lookups scan at most 2,000 ad-group comments; narrow the date window if exceeded. Meta returns 501 feature_not_available with guidance to use the existing inbox comment endpoints and the account/post IDs from GET /v1/ads/{adId}/comments.
|
|
553
553
|
# @param ad_id Internal Zernio ad ID or indexed platform ad ID.
|
|
554
554
|
# @param comment_id TikTok comment ID from the ad comment listing.
|
|
555
555
|
# @param reply_to_ad_comment_request
|
|
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.
|
|
4
|
+
version: 0.0.909
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -6295,7 +6295,7 @@ files:
|
|
|
6295
6295
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
6296
6296
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
6297
6297
|
- spec/spec_helper.rb
|
|
6298
|
-
- zernio-sdk-0.0.
|
|
6298
|
+
- zernio-sdk-0.0.909.gem
|
|
6299
6299
|
- zernio-sdk.gemspec
|
|
6300
6300
|
homepage: https://openapi-generator.tech
|
|
6301
6301
|
licenses:
|
data/zernio-sdk-0.0.908.gem
DELETED
|
Binary file
|