late-sdk 0.0.959 → 0.0.961

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: 7c36aecfa4d211f3f26f5c61d8ea13974516afb1d6f95dac5afb0f80a6b9f7e8
4
- data.tar.gz: 6d905bf0ecc74efcab36c94f1b8a7b8c74554c21b3619acd6e1ad2a4948d4097
3
+ metadata.gz: b692adb92f600876da4d9fd09ec957e8e9256b2e764611b7e31701d28924fd30
4
+ data.tar.gz: 7d3e9fb29a43600cd909e2e6de855371bedd17de96233b07c37715caaa57c6b5
5
5
  SHA512:
6
- metadata.gz: 858ea02cdb583e193986cda9a5b956aacafb4a4e0b5266e09bb20ee12ed108badd2120594e1db5d80e4245616b32cd421f8144d74a7f0075ba6af2bb0dfbae62
7
- data.tar.gz: bd440a25d8e6e10df6df288fc0d860b75e546e35d45810b8c97b6aeae0496e5611189dbeca9df5f90d2a43ae266a36eace22dc8ea89df09a83e5f485707e777b
6
+ metadata.gz: bb514a9dadba4c34ec722c2a21c60cd80f8043a907fda3e9cb22529f3b48a24aab248fd9e30f2d09aea944cdfc66bafe8f82c2417cd5406e6d0d0a73f3a3dd43
7
+ data.tar.gz: 9ff71083147943157b4639bdeaa5d959d44667f5268643725a7b08411f27ca8be88efa52f8d5deccdf6fdb05f44f68dc07a535691671d82c4f1a3fdc774f2337
@@ -295,7 +295,7 @@ end
295
295
 
296
296
  Search targeting options
297
297
 
298
- Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets, and every id is usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. Every result has `type` set to `location`, and its id is a `urn:li:geo:*` URN usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate`. LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. Each id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
298
+ Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is TikTok's numeric location id, usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. A result whose URN is a country Zernio holds a code for has `type: country` and its ISO 3166-1 alpha-2 code as the id, for `targeting.countries`. Every other result has `type: region` and keeps its `urn:li:geo:*` URN as the id, usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate` (LinkedIn puts countries and regions in the same `locations` facet, so both target the same way). LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
299
299
 
300
300
  ### Examples
301
301
 
@@ -8,6 +8,7 @@
8
8
  | **filename** | **String** | | [optional] |
9
9
  | **base64** | **String** | Base64-encoded file bytes (or supply documentId instead). | [optional] |
10
10
  | **document_id** | **String** | Id of a document already uploaded out-of-band. | [optional] |
11
+ | **issued_at** | **Date** | Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF. | [optional] |
11
12
 
12
13
  ## Example
13
14
 
@@ -18,7 +19,8 @@ instance = Zernio::RespondToPhoneNumberReviewerRequestDocumentsInner.new(
18
19
  requirement_id: null,
19
20
  filename: null,
20
21
  base64: null,
21
- document_id: null
22
+ document_id: null,
23
+ issued_at: null
22
24
  )
23
25
  ```
24
26
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **id** | **String** | The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec. | |
7
+ | **id** | **String** | The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec. A `country` result is the exception on every platform: its id is the ISO 3166-1 alpha-2 code, which is what `targeting.countries` takes. | |
8
8
  | **name** | **String** | Human-readable label. | |
9
9
  | **type** | **String** | What the result is (e.g. city, region, country, zip, metro, location, interest, behavior, income, industry, jobFunction, seniority, companySize). | |
10
10
  | **path** | **Array<String>** | Optional breadcrumb of parent labels (e.g. ['United States', 'California', 'Los Angeles']). Disambiguates same-named results. | [optional] |
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **requirement_id** | **String** | | |
8
8
  | **document_id** | **String** | Id from POST /v1/phone-numbers/kyc/upload-document. | |
9
+ | **issued_at** | **Date** | Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF. | [optional] |
9
10
 
10
11
  ## Example
11
12
 
@@ -14,7 +15,8 @@ require 'zernio-sdk'
14
15
 
15
16
  instance = Zernio::SubmitPhoneNumberKycRequestDocumentsInnerOneOf1.new(
16
17
  requirement_id: null,
17
- document_id: null
18
+ document_id: null,
19
+ issued_at: null
18
20
  )
19
21
  ```
20
22
 
@@ -295,7 +295,7 @@ module Zernio
295
295
  end
296
296
 
297
297
  # Search targeting options
298
- # Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets, and every id is usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. Every result has `type` set to `location`, and its id is a `urn:li:geo:*` URN usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate`. LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. Each id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
298
+ # Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is TikTok's numeric location id, usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. A result whose URN is a country Zernio holds a code for has `type: country` and its ISO 3166-1 alpha-2 code as the id, for `targeting.countries`. Every other result has `type: region` and keeps its `urn:li:geo:*` URN as the id, usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate` (LinkedIn puts countries and regions in the same `locations` facet, so both target the same way). LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
299
299
  # @param account_id [String] Account ID (a connected account on the target ad platform).
300
300
  # @param q [String] Search query. For geo, the locality name only (no region/country suffix).
301
301
  # @param [Hash] opts the optional parameters
@@ -310,7 +310,7 @@ module Zernio
310
310
  end
311
311
 
312
312
  # Search targeting options
313
- # Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets, and every id is usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. Every result has `type` set to `location`, and its id is a `urn:li:geo:*` URN usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate`. LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. Each id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
313
+ # Resolve a human-readable query into the platform's opaque targeting ids used in the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and `interests`/`behaviors` entity ids) on `POST /v1/ads/create`, `POST /v1/ads/targeting/reach-estimate`, and `saved_targeting` audiences. The `dimension` param selects what is searched: - `geo`: locations, further scoped by `geoType` - `interest` - `behavior` - `income` - `language`: Google-only - `workPosition`, `workEmployer`, `workIndustry`: the Meta-only work demographics, whose ids feed `TargetingSpec.workPositions`/`workEmployers`/`workIndustries` - `industry`, `jobFunction`, `seniority`, `companySize`: the LinkedIn-only B2B facets, whose URNs feed `TargetingSpec.industries`/`jobFunctions`/`seniorities`/`companySizes` Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so `workIndustry` matching, ranking and `limit` happen in Zernio. `language` is likewise a fixed, checked-in table of Google's targetable `language_constant` rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed `TargetingSpec.languages`. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (`type` is `country`, `region`, `city`, `district`, or `metro` for DMA areas), and `geoType` is not applied. Results are scoped to the advertiser's targetable markets. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is TikTok's numeric location id, usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`. LinkedIn geo searches also return every matching level in one list, and neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only returns a name and a URN per result, with no level or country field to filter on. A result whose URN is a country Zernio holds a code for has `type: country` and its ISO 3166-1 alpha-2 code as the id, for `targeting.countries`. Every other result has `type: region` and keeps its `urn:li:geo:*` URN as the id, usable as a `regions[].key` on `POST /v1/ads/create`, `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate` (LinkedIn puts countries and regions in the same `locations` facet, so both target the same way). LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: `urn:li:industry:4`, `urn:li:function:8`, `urn:li:seniority:6`, `urn:li:staffCountRange:(51,200)`. Only `industry` is a server-side name search (LinkedIn's typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and `limit` cutoff itself. Those three never carry `audienceSize`, and `countryCode` and `geoType` are not applied to any of the four. Google geo searches resolve against Google's geoTargetConstants and return every matching level in one list; `geoType` is not applied (Google's `target_type` is an open taxonomy that does not map one-to-one onto the `geoType` enum), so filter client-side on the returned `type` (`country`, `region`, `city`, `zip`, `metro`, or the lowercased Google target type for rarer levels). `countryCode` scopes the search to one country. A `country` result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`; every other id is Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a `customLocations` lat/lng pin for a radius); country targeting also accepts plain ISO codes via `countries` with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the `limit` cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry `audienceSize`. Names come back localized to the connected Pinterest account's language (there is no way to force a locale), so match against whatever language that account returns. `geoType` routes to a different Pinterest catalog: - `country` and `metro_area` read the locations catalog (`type` is `country` or `metro`) - `region` reads the regions catalog (`type` is `region`, its id a `regions[].key` on `POST /v1/ads/create`) - `all` and the default `city` merge both catalogs with honest per-entry `type`s, since Pinterest has no city-level catalog and `city` is an alias for `all`, not a literal city search - `zip`, `subcity`, `neighborhood`, `place` and `geo_market` return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as `targeting.zips: [{ key }]` on `POST /v1/ads/create` For geo queries, `q` should contain only the locality name (e.g. `\"Amsterdam\"`, not `\"Amsterdam, NL\"`). Use `countryCode` to disambiguate.
314
314
  # @param account_id [String] Account ID (a connected account on the target ad platform).
315
315
  # @param q [String] Search query. For geo, the locality name only (no region/country suffix).
316
316
  # @param [Hash] opts the optional parameters
@@ -25,13 +25,17 @@ module Zernio
25
25
  # Id of a document already uploaded out-of-band.
26
26
  attr_accessor :document_id
27
27
 
28
+ # Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.
29
+ attr_accessor :issued_at
30
+
28
31
  # Attribute mapping from ruby-style variable name to JSON key.
29
32
  def self.attribute_map
30
33
  {
31
34
  :'requirement_id' => :'requirementId',
32
35
  :'filename' => :'filename',
33
36
  :'base64' => :'base64',
34
- :'document_id' => :'documentId'
37
+ :'document_id' => :'documentId',
38
+ :'issued_at' => :'issuedAt'
35
39
  }
36
40
  end
37
41
 
@@ -51,7 +55,8 @@ module Zernio
51
55
  :'requirement_id' => :'String',
52
56
  :'filename' => :'String',
53
57
  :'base64' => :'String',
54
- :'document_id' => :'String'
58
+ :'document_id' => :'String',
59
+ :'issued_at' => :'Date'
55
60
  }
56
61
  end
57
62
 
@@ -94,6 +99,10 @@ module Zernio
94
99
  if attributes.key?(:'document_id')
95
100
  self.document_id = attributes[:'document_id']
96
101
  end
102
+
103
+ if attributes.key?(:'issued_at')
104
+ self.issued_at = attributes[:'issued_at']
105
+ end
97
106
  end
98
107
 
99
108
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -134,7 +143,8 @@ module Zernio
134
143
  requirement_id == o.requirement_id &&
135
144
  filename == o.filename &&
136
145
  base64 == o.base64 &&
137
- document_id == o.document_id
146
+ document_id == o.document_id &&
147
+ issued_at == o.issued_at
138
148
  end
139
149
 
140
150
  # @see the `==` method
@@ -146,7 +156,7 @@ module Zernio
146
156
  # Calculates hash code according to all attributes.
147
157
  # @return [Integer] Hash code
148
158
  def hash
149
- [requirement_id, filename, base64, document_id].hash
159
+ [requirement_id, filename, base64, document_id, issued_at].hash
150
160
  end
151
161
 
152
162
  # Builds the object from hash
@@ -15,7 +15,7 @@ require 'time'
15
15
 
16
16
  module Zernio
17
17
  class SearchAdTargeting200ResponseResultsInner < ApiModelBase
18
- # The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec.
18
+ # The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec. A `country` result is the exception on every platform: its id is the ISO 3166-1 alpha-2 code, which is what `targeting.countries` takes.
19
19
  attr_accessor :id
20
20
 
21
21
  # Human-readable label.
@@ -20,11 +20,15 @@ module Zernio
20
20
  # Id from POST /v1/phone-numbers/kyc/upload-document.
21
21
  attr_accessor :document_id
22
22
 
23
+ # Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.
24
+ attr_accessor :issued_at
25
+
23
26
  # Attribute mapping from ruby-style variable name to JSON key.
24
27
  def self.attribute_map
25
28
  {
26
29
  :'requirement_id' => :'requirementId',
27
- :'document_id' => :'documentId'
30
+ :'document_id' => :'documentId',
31
+ :'issued_at' => :'issuedAt'
28
32
  }
29
33
  end
30
34
 
@@ -42,7 +46,8 @@ module Zernio
42
46
  def self.openapi_types
43
47
  {
44
48
  :'requirement_id' => :'String',
45
- :'document_id' => :'String'
49
+ :'document_id' => :'String',
50
+ :'issued_at' => :'Date'
46
51
  }
47
52
  end
48
53
 
@@ -79,6 +84,10 @@ module Zernio
79
84
  else
80
85
  self.document_id = nil
81
86
  end
87
+
88
+ if attributes.key?(:'issued_at')
89
+ self.issued_at = attributes[:'issued_at']
90
+ end
82
91
  end
83
92
 
84
93
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -132,7 +141,8 @@ module Zernio
132
141
  return true if self.equal?(o)
133
142
  self.class == o.class &&
134
143
  requirement_id == o.requirement_id &&
135
- document_id == o.document_id
144
+ document_id == o.document_id &&
145
+ issued_at == o.issued_at
136
146
  end
137
147
 
138
148
  # @see the `==` method
@@ -144,7 +154,7 @@ module Zernio
144
154
  # Calculates hash code according to all attributes.
145
155
  # @return [Integer] Hash code
146
156
  def hash
147
- [requirement_id, document_id].hash
157
+ [requirement_id, document_id, issued_at].hash
148
158
  end
149
159
 
150
160
  # 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.959'
14
+ VERSION = '0.0.961'
15
15
  end
data/openapi.yaml CHANGED
@@ -37922,6 +37922,7 @@ paths:
37922
37922
  properties:
37923
37923
  requirementId: { type: string }
37924
37924
  documentId: { type: string, description: Id from POST /v1/phone-numbers/kyc/upload-document. }
37925
+ issuedAt: { type: string, format: date, description: 'Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.' }
37925
37926
  address:
37926
37927
  type: object
37927
37928
  properties:
@@ -38551,6 +38552,7 @@ paths:
38551
38552
  properties:
38552
38553
  requirementId: { type: string }
38553
38554
  documentId: { type: string, description: Id from POST /v1/phone-numbers/kyc/upload-document. }
38555
+ issuedAt: { type: string, format: date, description: 'Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.' }
38554
38556
  responses:
38555
38557
  '200':
38556
38558
  description: Advisories (empty when the packet looks fine or the review was unavailable).
@@ -38736,6 +38738,7 @@ paths:
38736
38738
  filename: { type: string }
38737
38739
  base64: { type: string, description: Base64-encoded file bytes (or supply documentId instead). }
38738
38740
  documentId: { type: string, description: Id of a document already uploaded out-of-band. }
38741
+ issuedAt: { type: string, format: date, description: 'Date printed on the document (YYYY-MM-DD), for slots the regulator windows such as proof of address. The pre-submit review trusts it over its own read of the PDF.' }
38739
38742
  address:
38740
38743
  type: object
38741
38744
  description: A corrected address record, keyed to its requirement.
@@ -53807,15 +53810,20 @@ paths:
53807
53810
  TikTok geo searches return every matching level in one list (`type` is
53808
53811
  `country`, `region`, `city`, `district`, or `metro` for DMA areas), and
53809
53812
  `geoType` is not applied. Results are scoped to the advertiser's targetable
53810
- markets, and every id is usable in `regions`/`cities`/`metros` keys on
53811
- `POST /v1/ads/create`.
53813
+ markets. A `country` result's id is its ISO 3166-1 alpha-2 code, for
53814
+ `targeting.countries`; every other id is TikTok's numeric location id,
53815
+ usable in `regions`/`cities`/`metros` keys on `POST /v1/ads/create`.
53812
53816
 
53813
53817
  LinkedIn geo searches also return every matching level in one list, and
53814
53818
  neither `geoType` nor `countryCode` is applied: LinkedIn's typeahead only
53815
53819
  returns a name and a URN per result, with no level or country field to
53816
- filter on. Every result has `type` set to `location`, and its id is a
53817
- `urn:li:geo:*` URN usable as a `regions[].key` on `POST /v1/ads/create`,
53818
- `POST /v1/ads/boost` and `POST /v1/ads/targeting/reach-estimate`.
53820
+ filter on. A result whose URN is a country Zernio holds a code for has
53821
+ `type: country` and its ISO 3166-1 alpha-2 code as the id, for
53822
+ `targeting.countries`. Every other result has `type: region` and keeps
53823
+ its `urn:li:geo:*` URN as the id, usable as a `regions[].key` on
53824
+ `POST /v1/ads/create`, `POST /v1/ads/boost` and
53825
+ `POST /v1/ads/targeting/reach-estimate` (LinkedIn puts countries and
53826
+ regions in the same `locations` facet, so both target the same way).
53819
53827
 
53820
53828
  LinkedIn B2B searches (`industry`, `jobFunction`, `seniority`, `companySize`) return the
53821
53829
  full URN to pass straight back, so no URN id fragment has to be assembled by hand:
@@ -53831,11 +53839,13 @@ paths:
53831
53839
  `target_type` is an open taxonomy that does not map one-to-one onto the
53832
53840
  `geoType` enum), so filter client-side on the returned `type` (`country`,
53833
53841
  `region`, `city`, `zip`, `metro`, or the lowercased Google target type for
53834
- rarer levels). `countryCode` scopes the search to one country. Each id is
53835
- Google's numeric criterion id, usable as a `regions`/`cities`/`zips`/`metros`
53836
- `key` on `POST /v1/ads/create`. Google city radius is not supported (pass a
53837
- `customLocations` lat/lng pin for a radius); country targeting also accepts
53838
- plain ISO codes via `countries` with no search call.
53842
+ rarer levels). `countryCode` scopes the search to one country. A `country`
53843
+ result's id is its ISO 3166-1 alpha-2 code, for `targeting.countries`;
53844
+ every other id is Google's numeric criterion id, usable as a
53845
+ `regions`/`cities`/`zips`/`metros` `key` on `POST /v1/ads/create`. Google
53846
+ city radius is not supported (pass a `customLocations` lat/lng pin for a
53847
+ radius); country targeting also accepts plain ISO codes via `countries`
53848
+ with no search call.
53839
53849
 
53840
53850
  Pinterest resolves against three whole-catalog endpoints (interests, locations,
53841
53851
  regions) with no server-side query or pagination, so matching, ranking and the
@@ -53882,7 +53892,7 @@ paths:
53882
53892
  type: object
53883
53893
  required: [id, name, type]
53884
53894
  properties:
53885
- id: { type: string, description: "The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec." }
53895
+ id: { type: string, description: "The platform's opaque id. Use as a geo `key` (regions/cities/zips/metros) or an entity `id` (interests/behaviors) in TargetingSpec. A `country` result is the exception on every platform: its id is the ISO 3166-1 alpha-2 code, which is what `targeting.countries` takes." }
53886
53896
  name: { type: string, description: "Human-readable label." }
53887
53897
  type: { type: string, description: "What the result is (e.g. city, region, country, zip, metro, location, interest, behavior, income, industry, jobFunction, seniority, companySize)." }
53888
53898
  path: { type: array, items: { type: string }, description: "Optional breadcrumb of parent labels (e.g. ['United States', 'California', 'Los Angeles']). Disambiguates same-named results." }
@@ -83,7 +83,7 @@ describe 'AdTargetingApi' do
83
83
 
84
84
  # unit tests for search_ad_targeting
85
85
  # Search targeting options
86
- # Resolve a human-readable query into the platform&#39;s opaque targeting ids used in the &#x60;TargetingSpec&#x60; (&#x60;countries&#x60;/&#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;zips&#x60;/&#x60;metros&#x60; geo keys, and &#x60;interests&#x60;/&#x60;behaviors&#x60; entity ids) on &#x60;POST /v1/ads/create&#x60;, &#x60;POST /v1/ads/targeting/reach-estimate&#x60;, and &#x60;saved_targeting&#x60; audiences. The &#x60;dimension&#x60; param selects what is searched: - &#x60;geo&#x60;: locations, further scoped by &#x60;geoType&#x60; - &#x60;interest&#x60; - &#x60;behavior&#x60; - &#x60;income&#x60; - &#x60;language&#x60;: Google-only - &#x60;workPosition&#x60;, &#x60;workEmployer&#x60;, &#x60;workIndustry&#x60;: the Meta-only work demographics, whose ids feed &#x60;TargetingSpec.workPositions&#x60;/&#x60;workEmployers&#x60;/&#x60;workIndustries&#x60; - &#x60;industry&#x60;, &#x60;jobFunction&#x60;, &#x60;seniority&#x60;, &#x60;companySize&#x60;: the LinkedIn-only B2B facets, whose URNs feed &#x60;TargetingSpec.industries&#x60;/&#x60;jobFunctions&#x60;/&#x60;seniorities&#x60;/&#x60;companySizes&#x60; Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so &#x60;workIndustry&#x60; matching, ranking and &#x60;limit&#x60; happen in Zernio. &#x60;language&#x60; is likewise a fixed, checked-in table of Google&#39;s targetable &#x60;language_constant&#x60; rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed &#x60;TargetingSpec.languages&#x60;. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (&#x60;type&#x60; is &#x60;country&#x60;, &#x60;region&#x60;, &#x60;city&#x60;, &#x60;district&#x60;, or &#x60;metro&#x60; for DMA areas), and &#x60;geoType&#x60; is not applied. Results are scoped to the advertiser&#39;s targetable markets, and every id is usable in &#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;metros&#x60; keys on &#x60;POST /v1/ads/create&#x60;. LinkedIn geo searches also return every matching level in one list, and neither &#x60;geoType&#x60; nor &#x60;countryCode&#x60; is applied: LinkedIn&#39;s typeahead only returns a name and a URN per result, with no level or country field to filter on. Every result has &#x60;type&#x60; set to &#x60;location&#x60;, and its id is a &#x60;urn:li:geo:*&#x60; URN usable as a &#x60;regions[].key&#x60; on &#x60;POST /v1/ads/create&#x60;, &#x60;POST /v1/ads/boost&#x60; and &#x60;POST /v1/ads/targeting/reach-estimate&#x60;. LinkedIn B2B searches (&#x60;industry&#x60;, &#x60;jobFunction&#x60;, &#x60;seniority&#x60;, &#x60;companySize&#x60;) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: &#x60;urn:li:industry:4&#x60;, &#x60;urn:li:function:8&#x60;, &#x60;urn:li:seniority:6&#x60;, &#x60;urn:li:staffCountRange:(51,200)&#x60;. Only &#x60;industry&#x60; is a server-side name search (LinkedIn&#39;s typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and &#x60;limit&#x60; cutoff itself. Those three never carry &#x60;audienceSize&#x60;, and &#x60;countryCode&#x60; and &#x60;geoType&#x60; are not applied to any of the four. Google geo searches resolve against Google&#39;s geoTargetConstants and return every matching level in one list; &#x60;geoType&#x60; is not applied (Google&#39;s &#x60;target_type&#x60; is an open taxonomy that does not map one-to-one onto the &#x60;geoType&#x60; enum), so filter client-side on the returned &#x60;type&#x60; (&#x60;country&#x60;, &#x60;region&#x60;, &#x60;city&#x60;, &#x60;zip&#x60;, &#x60;metro&#x60;, or the lowercased Google target type for rarer levels). &#x60;countryCode&#x60; scopes the search to one country. Each id is Google&#39;s numeric criterion id, usable as a &#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;zips&#x60;/&#x60;metros&#x60; &#x60;key&#x60; on &#x60;POST /v1/ads/create&#x60;. Google city radius is not supported (pass a &#x60;customLocations&#x60; lat/lng pin for a radius); country targeting also accepts plain ISO codes via &#x60;countries&#x60; with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the &#x60;limit&#x60; cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry &#x60;audienceSize&#x60;. Names come back localized to the connected Pinterest account&#39;s language (there is no way to force a locale), so match against whatever language that account returns. &#x60;geoType&#x60; routes to a different Pinterest catalog: - &#x60;country&#x60; and &#x60;metro_area&#x60; read the locations catalog (&#x60;type&#x60; is &#x60;country&#x60; or &#x60;metro&#x60;) - &#x60;region&#x60; reads the regions catalog (&#x60;type&#x60; is &#x60;region&#x60;, its id a &#x60;regions[].key&#x60; on &#x60;POST /v1/ads/create&#x60;) - &#x60;all&#x60; and the default &#x60;city&#x60; merge both catalogs with honest per-entry &#x60;type&#x60;s, since Pinterest has no city-level catalog and &#x60;city&#x60; is an alias for &#x60;all&#x60;, not a literal city search - &#x60;zip&#x60;, &#x60;subcity&#x60;, &#x60;neighborhood&#x60;, &#x60;place&#x60; and &#x60;geo_market&#x60; return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as &#x60;targeting.zips: [{ key }]&#x60; on &#x60;POST /v1/ads/create&#x60; For geo queries, &#x60;q&#x60; should contain only the locality name (e.g. &#x60;\&quot;Amsterdam\&quot;&#x60;, not &#x60;\&quot;Amsterdam, NL\&quot;&#x60;). Use &#x60;countryCode&#x60; to disambiguate.
86
+ # Resolve a human-readable query into the platform&#39;s opaque targeting ids used in the &#x60;TargetingSpec&#x60; (&#x60;countries&#x60;/&#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;zips&#x60;/&#x60;metros&#x60; geo keys, and &#x60;interests&#x60;/&#x60;behaviors&#x60; entity ids) on &#x60;POST /v1/ads/create&#x60;, &#x60;POST /v1/ads/targeting/reach-estimate&#x60;, and &#x60;saved_targeting&#x60; audiences. The &#x60;dimension&#x60; param selects what is searched: - &#x60;geo&#x60;: locations, further scoped by &#x60;geoType&#x60; - &#x60;interest&#x60; - &#x60;behavior&#x60; - &#x60;income&#x60; - &#x60;language&#x60;: Google-only - &#x60;workPosition&#x60;, &#x60;workEmployer&#x60;, &#x60;workIndustry&#x60;: the Meta-only work demographics, whose ids feed &#x60;TargetingSpec.workPositions&#x60;/&#x60;workEmployers&#x60;/&#x60;workIndustries&#x60; - &#x60;industry&#x60;, &#x60;jobFunction&#x60;, &#x60;seniority&#x60;, &#x60;companySize&#x60;: the LinkedIn-only B2B facets, whose URNs feed &#x60;TargetingSpec.industries&#x60;/&#x60;jobFunctions&#x60;/&#x60;seniorities&#x60;/&#x60;companySizes&#x60; Availability of each dimension varies by platform (e.g. behaviours are Meta/TikTok only). Work industries are a fixed ~30-entry Meta catalog with no server-side query, so &#x60;workIndustry&#x60; matching, ranking and &#x60;limit&#x60; happen in Zernio. &#x60;language&#x60; is likewise a fixed, checked-in table of Google&#39;s targetable &#x60;language_constant&#x60; rows (id, ISO code, name) matched by name or code, capped at 20, with no network call; its ids feed &#x60;TargetingSpec.languages&#x60;. Results are normalized across platforms into a single shape, so the same client code consumes Meta, TikTok, LinkedIn, X, Pinterest, and Google results. TikTok geo searches return every matching level in one list (&#x60;type&#x60; is &#x60;country&#x60;, &#x60;region&#x60;, &#x60;city&#x60;, &#x60;district&#x60;, or &#x60;metro&#x60; for DMA areas), and &#x60;geoType&#x60; is not applied. Results are scoped to the advertiser&#39;s targetable markets. A &#x60;country&#x60; result&#39;s id is its ISO 3166-1 alpha-2 code, for &#x60;targeting.countries&#x60;; every other id is TikTok&#39;s numeric location id, usable in &#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;metros&#x60; keys on &#x60;POST /v1/ads/create&#x60;. LinkedIn geo searches also return every matching level in one list, and neither &#x60;geoType&#x60; nor &#x60;countryCode&#x60; is applied: LinkedIn&#39;s typeahead only returns a name and a URN per result, with no level or country field to filter on. A result whose URN is a country Zernio holds a code for has &#x60;type: country&#x60; and its ISO 3166-1 alpha-2 code as the id, for &#x60;targeting.countries&#x60;. Every other result has &#x60;type: region&#x60; and keeps its &#x60;urn:li:geo:*&#x60; URN as the id, usable as a &#x60;regions[].key&#x60; on &#x60;POST /v1/ads/create&#x60;, &#x60;POST /v1/ads/boost&#x60; and &#x60;POST /v1/ads/targeting/reach-estimate&#x60; (LinkedIn puts countries and regions in the same &#x60;locations&#x60; facet, so both target the same way). LinkedIn B2B searches (&#x60;industry&#x60;, &#x60;jobFunction&#x60;, &#x60;seniority&#x60;, &#x60;companySize&#x60;) return the full URN to pass straight back, so no URN id fragment has to be assembled by hand: &#x60;urn:li:industry:4&#x60;, &#x60;urn:li:function:8&#x60;, &#x60;urn:li:seniority:6&#x60;, &#x60;urn:li:staffCountRange:(51,200)&#x60;. Only &#x60;industry&#x60; is a server-side name search (LinkedIn&#39;s typeahead finder). LinkedIn exposes no typeahead for job functions, seniorities and company sizes, so Zernio fetches each whole table (26, 10 and 9 entries), caches it, and does the matching, ranking and &#x60;limit&#x60; cutoff itself. Those three never carry &#x60;audienceSize&#x60;, and &#x60;countryCode&#x60; and &#x60;geoType&#x60; are not applied to any of the four. Google geo searches resolve against Google&#39;s geoTargetConstants and return every matching level in one list; &#x60;geoType&#x60; is not applied (Google&#39;s &#x60;target_type&#x60; is an open taxonomy that does not map one-to-one onto the &#x60;geoType&#x60; enum), so filter client-side on the returned &#x60;type&#x60; (&#x60;country&#x60;, &#x60;region&#x60;, &#x60;city&#x60;, &#x60;zip&#x60;, &#x60;metro&#x60;, or the lowercased Google target type for rarer levels). &#x60;countryCode&#x60; scopes the search to one country. A &#x60;country&#x60; result&#39;s id is its ISO 3166-1 alpha-2 code, for &#x60;targeting.countries&#x60;; every other id is Google&#39;s numeric criterion id, usable as a &#x60;regions&#x60;/&#x60;cities&#x60;/&#x60;zips&#x60;/&#x60;metros&#x60; &#x60;key&#x60; on &#x60;POST /v1/ads/create&#x60;. Google city radius is not supported (pass a &#x60;customLocations&#x60; lat/lng pin for a radius); country targeting also accepts plain ISO codes via &#x60;countries&#x60; with no search call. Pinterest resolves against three whole-catalog endpoints (interests, locations, regions) with no server-side query or pagination, so matching, ranking and the &#x60;limit&#x60; cutoff all happen in Zernio; the catalog is independent of any ad account and results never carry &#x60;audienceSize&#x60;. Names come back localized to the connected Pinterest account&#39;s language (there is no way to force a locale), so match against whatever language that account returns. &#x60;geoType&#x60; routes to a different Pinterest catalog: - &#x60;country&#x60; and &#x60;metro_area&#x60; read the locations catalog (&#x60;type&#x60; is &#x60;country&#x60; or &#x60;metro&#x60;) - &#x60;region&#x60; reads the regions catalog (&#x60;type&#x60; is &#x60;region&#x60;, its id a &#x60;regions[].key&#x60; on &#x60;POST /v1/ads/create&#x60;) - &#x60;all&#x60; and the default &#x60;city&#x60; merge both catalogs with honest per-entry &#x60;type&#x60;s, since Pinterest has no city-level catalog and &#x60;city&#x60; is an alias for &#x60;all&#x60;, not a literal city search - &#x60;zip&#x60;, &#x60;subcity&#x60;, &#x60;neighborhood&#x60;, &#x60;place&#x60; and &#x60;geo_market&#x60; return a 400: Pinterest exposes no postal-code catalog, pass postal codes directly as &#x60;targeting.zips: [{ key }]&#x60; on &#x60;POST /v1/ads/create&#x60; For geo queries, &#x60;q&#x60; should contain only the locality name (e.g. &#x60;\&quot;Amsterdam\&quot;&#x60;, not &#x60;\&quot;Amsterdam, NL\&quot;&#x60;). Use &#x60;countryCode&#x60; to disambiguate.
87
87
  # @param account_id Account ID (a connected account on the target ad platform).
88
88
  # @param q Search query. For geo, the locality name only (no region/country suffix).
89
89
  # @param [Hash] opts the optional parameters
@@ -51,4 +51,10 @@ describe Zernio::RespondToPhoneNumberReviewerRequestDocumentsInner do
51
51
  end
52
52
  end
53
53
 
54
+ describe 'test attribute "issued_at"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
54
60
  end
@@ -39,4 +39,10 @@ describe Zernio::SubmitPhoneNumberKycRequestDocumentsInnerOneOf1 do
39
39
  end
40
40
  end
41
41
 
42
+ describe 'test attribute "issued_at"' 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
  end
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.959
4
+ version: 0.0.961
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
@@ -6487,7 +6487,7 @@ files:
6487
6487
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
6488
6488
  - spec/models/you_tube_video_retention_response_spec.rb
6489
6489
  - spec/spec_helper.rb
6490
- - zernio-sdk-0.0.959.gem
6490
+ - zernio-sdk-0.0.961.gem
6491
6491
  - zernio-sdk.gemspec
6492
6492
  homepage: https://openapi-generator.tech
6493
6493
  licenses:
Binary file