late-sdk 0.0.754 → 0.0.756

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: 5dfed233786b86712922897663250fd0809aa8495ce782e40fec7512b6b9cd75
4
- data.tar.gz: ef5b2b011af25f6b00e12f371ffd044f1aba558e496ef0b796c5368003f3c50a
3
+ metadata.gz: 5b026bacb5cb7ccbdf440e3155e79306dc9e0bc9b2015659220718cbfa9e2c93
4
+ data.tar.gz: dbdcdf61c18f17fef90ca78ef8faba928c37e780102b41ab1c4d4653a893835b
5
5
  SHA512:
6
- metadata.gz: 3bb83b85f684a3f8e1ee385ca0259f78cdc4faa7683b73aca7917c964f4d2c516853e77309d823a28511057c426fbc5ebc9e5b8f5da4c5da35e8acfc0208fcc1
7
- data.tar.gz: 2404ac343f173031596b3ba87daf2b396f4d60c7c057e601fd2f997e173f720b1b37b52e907e065246ea0d16a5310fdd5990a76b9c8b1ed1e02216c979386883
6
+ metadata.gz: b40e9b0e6ff80086eb8cfb0c3c54d5216779f6c3a50e7ed2a643a41a1890516bec6e49c8f8973a5a0d88b595fa50d16d5e80c219d902b45b20dc87b031d77c9d
7
+ data.tar.gz: a6e70a1c662df2bc4d70367133247e92e2159606c8e54ecea2f36ef56617a4904d12dd0e834a114db00469e169539757c33bcc0d929bc52d5cd67a592037e2c7
data/README.md CHANGED
@@ -257,9 +257,12 @@ Class | Method | HTTP request | Description
257
257
  *Zernio::ConnectApi* | [**configure_tik_tok_ads_brand_identity**](docs/ConnectApi.md#configure_tik_tok_ads_brand_identity) | **PATCH** /v1/connect/tiktok-ads | Set TikTok brand identity
258
258
  *Zernio::ConnectApi* | [**connect_ads**](docs/ConnectApi.md#connect_ads) | **GET** /v1/connect/{platform}/ads | Connect ads for a platform
259
259
  *Zernio::ConnectApi* | [**connect_bluesky_credentials**](docs/ConnectApi.md#connect_bluesky_credentials) | **POST** /v1/connect/bluesky/credentials | Connect Bluesky account
260
+ *Zernio::ConnectApi* | [**connect_discord_channel**](docs/ConnectApi.md#connect_discord_channel) | **POST** /v1/connect/discord | Connect a Discord channel
260
261
  *Zernio::ConnectApi* | [**connect_open_ai_ads_credentials**](docs/ConnectApi.md#connect_open_ai_ads_credentials) | **POST** /v1/connect/openai-ads/credentials | Connect an OpenAI Ads account
261
262
  *Zernio::ConnectApi* | [**connect_shopify_with_token**](docs/ConnectApi.md#connect_shopify_with_token) | **POST** /v1/connect/shopify/token | Connect a Shopify store with a custom-app Admin token
263
+ *Zernio::ConnectApi* | [**connect_slack_channel**](docs/ConnectApi.md#connect_slack_channel) | **POST** /v1/connect/slack | Connect a Slack channel
262
264
  *Zernio::ConnectApi* | [**connect_whats_app_credentials**](docs/ConnectApi.md#connect_whats_app_credentials) | **POST** /v1/connect/whatsapp/credentials | Connect WhatsApp via credentials
265
+ *Zernio::ConnectApi* | [**connect_whats_app_embedded_signup**](docs/ConnectApi.md#connect_whats_app_embedded_signup) | **POST** /v1/connect/whatsapp/embedded-signup | Connect WhatsApp from Embedded Signup
263
266
  *Zernio::ConnectApi* | [**create_pinterest_board**](docs/ConnectApi.md#create_pinterest_board) | **POST** /v1/accounts/{accountId}/pinterest-boards | Create Pinterest board
264
267
  *Zernio::ConnectApi* | [**get_connect_url**](docs/ConnectApi.md#get_connect_url) | **GET** /v1/connect/{platform} | Get OAuth connect URL
265
268
  *Zernio::ConnectApi* | [**get_facebook_pages**](docs/ConnectApi.md#get_facebook_pages) | **GET** /v1/accounts/{accountId}/facebook-page | List Facebook pages
@@ -811,14 +814,17 @@ Class | Method | HTTP request | Description
811
814
  - [Zernio::ConnectAds200ResponseOneOf1](docs/ConnectAds200ResponseOneOf1.md)
812
815
  - [Zernio::ConnectBlueskyCredentials200Response](docs/ConnectBlueskyCredentials200Response.md)
813
816
  - [Zernio::ConnectBlueskyCredentialsRequest](docs/ConnectBlueskyCredentialsRequest.md)
817
+ - [Zernio::ConnectDiscordChannelRequest](docs/ConnectDiscordChannelRequest.md)
814
818
  - [Zernio::ConnectOpenAIAdsCredentials200Response](docs/ConnectOpenAIAdsCredentials200Response.md)
815
819
  - [Zernio::ConnectOpenAIAdsCredentialsRequest](docs/ConnectOpenAIAdsCredentialsRequest.md)
816
820
  - [Zernio::ConnectShopifyWithToken200Response](docs/ConnectShopifyWithToken200Response.md)
817
821
  - [Zernio::ConnectShopifyWithToken200ResponseAccount](docs/ConnectShopifyWithToken200ResponseAccount.md)
818
822
  - [Zernio::ConnectShopifyWithTokenRequest](docs/ConnectShopifyWithTokenRequest.md)
823
+ - [Zernio::ConnectSlackChannelRequest](docs/ConnectSlackChannelRequest.md)
819
824
  - [Zernio::ConnectWhatsAppCredentials200Response](docs/ConnectWhatsAppCredentials200Response.md)
820
825
  - [Zernio::ConnectWhatsAppCredentials200ResponseAccount](docs/ConnectWhatsAppCredentials200ResponseAccount.md)
821
826
  - [Zernio::ConnectWhatsAppCredentialsRequest](docs/ConnectWhatsAppCredentialsRequest.md)
827
+ - [Zernio::ConnectWhatsAppEmbeddedSignupRequest](docs/ConnectWhatsAppEmbeddedSignupRequest.md)
822
828
  - [Zernio::Connected](docs/Connected.md)
823
829
  - [Zernio::ConnectedAccount](docs/ConnectedAccount.md)
824
830
  - [Zernio::ConnectedApp](docs/ConnectedApp.md)
@@ -962,6 +968,7 @@ Class | Method | HTTP request | Description
962
968
  - [Zernio::CreateStandaloneAdRequestPlatformSpecificData](docs/CreateStandaloneAdRequestPlatformSpecificData.md)
963
969
  - [Zernio::CreateStandaloneAdRequestPromotedObject](docs/CreateStandaloneAdRequestPromotedObject.md)
964
970
  - [Zernio::CreateStandaloneAdRequestRegionsInner](docs/CreateStandaloneAdRequestRegionsInner.md)
971
+ - [Zernio::CreateStandaloneAdRequestSitelinksInner](docs/CreateStandaloneAdRequestSitelinksInner.md)
965
972
  - [Zernio::CreateStandaloneAdRequestTracking](docs/CreateStandaloneAdRequestTracking.md)
966
973
  - [Zernio::CreateStandaloneAdRequestTranslationsInner](docs/CreateStandaloneAdRequestTranslationsInner.md)
967
974
  - [Zernio::CreateStandaloneAdRequestVideo](docs/CreateStandaloneAdRequestVideo.md)
data/docs/ConnectApi.md CHANGED
@@ -10,9 +10,12 @@ All URIs are relative to *https://zernio.com/api*
10
10
  | [**configure_tik_tok_ads_brand_identity**](ConnectApi.md#configure_tik_tok_ads_brand_identity) | **PATCH** /v1/connect/tiktok-ads | Set TikTok brand identity |
11
11
  | [**connect_ads**](ConnectApi.md#connect_ads) | **GET** /v1/connect/{platform}/ads | Connect ads for a platform |
12
12
  | [**connect_bluesky_credentials**](ConnectApi.md#connect_bluesky_credentials) | **POST** /v1/connect/bluesky/credentials | Connect Bluesky account |
13
+ | [**connect_discord_channel**](ConnectApi.md#connect_discord_channel) | **POST** /v1/connect/discord | Connect a Discord channel |
13
14
  | [**connect_open_ai_ads_credentials**](ConnectApi.md#connect_open_ai_ads_credentials) | **POST** /v1/connect/openai-ads/credentials | Connect an OpenAI Ads account |
14
15
  | [**connect_shopify_with_token**](ConnectApi.md#connect_shopify_with_token) | **POST** /v1/connect/shopify/token | Connect a Shopify store with a custom-app Admin token |
16
+ | [**connect_slack_channel**](ConnectApi.md#connect_slack_channel) | **POST** /v1/connect/slack | Connect a Slack channel |
15
17
  | [**connect_whats_app_credentials**](ConnectApi.md#connect_whats_app_credentials) | **POST** /v1/connect/whatsapp/credentials | Connect WhatsApp via credentials |
18
+ | [**connect_whats_app_embedded_signup**](ConnectApi.md#connect_whats_app_embedded_signup) | **POST** /v1/connect/whatsapp/embedded-signup | Connect WhatsApp from Embedded Signup |
16
19
  | [**create_pinterest_board**](ConnectApi.md#create_pinterest_board) | **POST** /v1/accounts/{accountId}/pinterest-boards | Create Pinterest board |
17
20
  | [**get_connect_url**](ConnectApi.md#get_connect_url) | **GET** /v1/connect/{platform} | Get OAuth connect URL |
18
21
  | [**get_facebook_pages**](ConnectApi.md#get_facebook_pages) | **GET** /v1/accounts/{accountId}/facebook-page | List Facebook pages |
@@ -487,6 +490,74 @@ end
487
490
  - **Accept**: application/json
488
491
 
489
492
 
493
+ ## connect_discord_channel
494
+
495
+ > connect_discord_channel(connect_discord_channel_request)
496
+
497
+ Connect a Discord channel
498
+
499
+ Finalize a Discord connect by binding one channel to a profile. Served by a dedicated route, so it is not reachable through POST /v1/connect/{platform}. One connected account per channel: repeat the call with a different channelId to add another.
500
+
501
+ ### Examples
502
+
503
+ ```ruby
504
+ require 'time'
505
+ require 'zernio-sdk'
506
+ # setup authorization
507
+ Zernio.configure do |config|
508
+ # Configure Bearer authorization (JWT): bearerAuth
509
+ config.access_token = 'YOUR_BEARER_TOKEN'
510
+ end
511
+
512
+ api_instance = Zernio::ConnectApi.new
513
+ connect_discord_channel_request = Zernio::ConnectDiscordChannelRequest.new({guild_id: 'guild_id_example', channel_id: 'channel_id_example', profile_id: 'profile_id_example'}) # ConnectDiscordChannelRequest |
514
+
515
+ begin
516
+ # Connect a Discord channel
517
+ api_instance.connect_discord_channel(connect_discord_channel_request)
518
+ rescue Zernio::ApiError => e
519
+ puts "Error when calling ConnectApi->connect_discord_channel: #{e}"
520
+ end
521
+ ```
522
+
523
+ #### Using the connect_discord_channel_with_http_info variant
524
+
525
+ This returns an Array which contains the response data (`nil` in this case), status code and headers.
526
+
527
+ > <Array(nil, Integer, Hash)> connect_discord_channel_with_http_info(connect_discord_channel_request)
528
+
529
+ ```ruby
530
+ begin
531
+ # Connect a Discord channel
532
+ data, status_code, headers = api_instance.connect_discord_channel_with_http_info(connect_discord_channel_request)
533
+ p status_code # => 2xx
534
+ p headers # => { ... }
535
+ p data # => nil
536
+ rescue Zernio::ApiError => e
537
+ puts "Error when calling ConnectApi->connect_discord_channel_with_http_info: #{e}"
538
+ end
539
+ ```
540
+
541
+ ### Parameters
542
+
543
+ | Name | Type | Description | Notes |
544
+ | ---- | ---- | ----------- | ----- |
545
+ | **connect_discord_channel_request** | [**ConnectDiscordChannelRequest**](ConnectDiscordChannelRequest.md) | | |
546
+
547
+ ### Return type
548
+
549
+ nil (empty response body)
550
+
551
+ ### Authorization
552
+
553
+ [bearerAuth](../README.md#bearerAuth)
554
+
555
+ ### HTTP request headers
556
+
557
+ - **Content-Type**: application/json
558
+ - **Accept**: application/json
559
+
560
+
490
561
  ## connect_open_ai_ads_credentials
491
562
 
492
563
  > <ConnectOpenAIAdsCredentials200Response> connect_open_ai_ads_credentials(connect_open_ai_ads_credentials_request)
@@ -625,6 +696,74 @@ end
625
696
  - **Accept**: application/json
626
697
 
627
698
 
699
+ ## connect_slack_channel
700
+
701
+ > connect_slack_channel(connect_slack_channel_request)
702
+
703
+ Connect a Slack channel
704
+
705
+ Finalize a Slack connect by creating the per-channel account. Served by a dedicated route, so it is not reachable through POST /v1/connect/{platform}. Send pendingDataToken for a first connect (the nonce from the OAuth redirect) or accountId to add another channel to a workspace already connected.
706
+
707
+ ### Examples
708
+
709
+ ```ruby
710
+ require 'time'
711
+ require 'zernio-sdk'
712
+ # setup authorization
713
+ Zernio.configure do |config|
714
+ # Configure Bearer authorization (JWT): bearerAuth
715
+ config.access_token = 'YOUR_BEARER_TOKEN'
716
+ end
717
+
718
+ api_instance = Zernio::ConnectApi.new
719
+ connect_slack_channel_request = Zernio::ConnectSlackChannelRequest.new({profile_id: 'profile_id_example', channel_id: 'channel_id_example'}) # ConnectSlackChannelRequest |
720
+
721
+ begin
722
+ # Connect a Slack channel
723
+ api_instance.connect_slack_channel(connect_slack_channel_request)
724
+ rescue Zernio::ApiError => e
725
+ puts "Error when calling ConnectApi->connect_slack_channel: #{e}"
726
+ end
727
+ ```
728
+
729
+ #### Using the connect_slack_channel_with_http_info variant
730
+
731
+ This returns an Array which contains the response data (`nil` in this case), status code and headers.
732
+
733
+ > <Array(nil, Integer, Hash)> connect_slack_channel_with_http_info(connect_slack_channel_request)
734
+
735
+ ```ruby
736
+ begin
737
+ # Connect a Slack channel
738
+ data, status_code, headers = api_instance.connect_slack_channel_with_http_info(connect_slack_channel_request)
739
+ p status_code # => 2xx
740
+ p headers # => { ... }
741
+ p data # => nil
742
+ rescue Zernio::ApiError => e
743
+ puts "Error when calling ConnectApi->connect_slack_channel_with_http_info: #{e}"
744
+ end
745
+ ```
746
+
747
+ ### Parameters
748
+
749
+ | Name | Type | Description | Notes |
750
+ | ---- | ---- | ----------- | ----- |
751
+ | **connect_slack_channel_request** | [**ConnectSlackChannelRequest**](ConnectSlackChannelRequest.md) | | |
752
+
753
+ ### Return type
754
+
755
+ nil (empty response body)
756
+
757
+ ### Authorization
758
+
759
+ [bearerAuth](../README.md#bearerAuth)
760
+
761
+ ### HTTP request headers
762
+
763
+ - **Content-Type**: application/json
764
+ - **Accept**: application/json
765
+
766
+
628
767
  ## connect_whats_app_credentials
629
768
 
630
769
  > <ConnectWhatsAppCredentials200Response> connect_whats_app_credentials(connect_whats_app_credentials_request)
@@ -694,6 +833,74 @@ end
694
833
  - **Accept**: application/json
695
834
 
696
835
 
836
+ ## connect_whats_app_embedded_signup
837
+
838
+ > connect_whats_app_embedded_signup(connect_whats_app_embedded_signup_request)
839
+
840
+ Connect WhatsApp from Embedded Signup
841
+
842
+ Exchange the authorization code Meta Embedded Signup returns to your browser SDK. This is the headless completion path for WhatsApp: the code never passes through a redirect_uri, so POST /v1/connect/{platform} cannot accept it.
843
+
844
+ ### Examples
845
+
846
+ ```ruby
847
+ require 'time'
848
+ require 'zernio-sdk'
849
+ # setup authorization
850
+ Zernio.configure do |config|
851
+ # Configure Bearer authorization (JWT): bearerAuth
852
+ config.access_token = 'YOUR_BEARER_TOKEN'
853
+ end
854
+
855
+ api_instance = Zernio::ConnectApi.new
856
+ connect_whats_app_embedded_signup_request = Zernio::ConnectWhatsAppEmbeddedSignupRequest.new({code: 'code_example', profile_id: 'profile_id_example'}) # ConnectWhatsAppEmbeddedSignupRequest |
857
+
858
+ begin
859
+ # Connect WhatsApp from Embedded Signup
860
+ api_instance.connect_whats_app_embedded_signup(connect_whats_app_embedded_signup_request)
861
+ rescue Zernio::ApiError => e
862
+ puts "Error when calling ConnectApi->connect_whats_app_embedded_signup: #{e}"
863
+ end
864
+ ```
865
+
866
+ #### Using the connect_whats_app_embedded_signup_with_http_info variant
867
+
868
+ This returns an Array which contains the response data (`nil` in this case), status code and headers.
869
+
870
+ > <Array(nil, Integer, Hash)> connect_whats_app_embedded_signup_with_http_info(connect_whats_app_embedded_signup_request)
871
+
872
+ ```ruby
873
+ begin
874
+ # Connect WhatsApp from Embedded Signup
875
+ data, status_code, headers = api_instance.connect_whats_app_embedded_signup_with_http_info(connect_whats_app_embedded_signup_request)
876
+ p status_code # => 2xx
877
+ p headers # => { ... }
878
+ p data # => nil
879
+ rescue Zernio::ApiError => e
880
+ puts "Error when calling ConnectApi->connect_whats_app_embedded_signup_with_http_info: #{e}"
881
+ end
882
+ ```
883
+
884
+ ### Parameters
885
+
886
+ | Name | Type | Description | Notes |
887
+ | ---- | ---- | ----------- | ----- |
888
+ | **connect_whats_app_embedded_signup_request** | [**ConnectWhatsAppEmbeddedSignupRequest**](ConnectWhatsAppEmbeddedSignupRequest.md) | | |
889
+
890
+ ### Return type
891
+
892
+ nil (empty response body)
893
+
894
+ ### Authorization
895
+
896
+ [bearerAuth](../README.md#bearerAuth)
897
+
898
+ ### HTTP request headers
899
+
900
+ - **Content-Type**: application/json
901
+ - **Accept**: application/json
902
+
903
+
697
904
  ## create_pinterest_board
698
905
 
699
906
  > <CreatePinterestBoard201Response> create_pinterest_board(account_id, create_pinterest_board_request)
@@ -1633,7 +1840,7 @@ end
1633
1840
 
1634
1841
  Complete OAuth callback
1635
1842
 
1636
- Exchange the OAuth authorization code for tokens and connect the account to the specified profile.
1843
+ Exchange the OAuth authorization code for tokens and connect the account to the specified profile. Facebook, Google Business, Snapchat and WhatsApp are not accepted here: their account identity is a destination chosen after OAuth, which this single-shot exchange cannot do. Connect them through the redirect flow from `GET /v1/connect/{platform}`, or, for WhatsApp Embedded Signup, through `POST /v1/connect/whatsapp/embedded-signup`.
1637
1844
 
1638
1845
  ### Examples
1639
1846
 
@@ -1647,7 +1854,7 @@ Zernio.configure do |config|
1647
1854
  end
1648
1855
 
1649
1856
  api_instance = Zernio::ConnectApi.new
1650
- platform = 'platform_example' # String |
1857
+ platform = 'instagram' # String | Social platform to complete the connect for. Discord, Slack and Telegram are absent because they are served by their own dedicated routes, documented separately.
1651
1858
  handle_o_auth_callback_request = Zernio::HandleOAuthCallbackRequest.new({code: 'code_example', state: 'state_example', profile_id: 'profile_id_example'}) # HandleOAuthCallbackRequest |
1652
1859
 
1653
1860
  begin
@@ -1680,7 +1887,7 @@ end
1680
1887
 
1681
1888
  | Name | Type | Description | Notes |
1682
1889
  | ---- | ---- | ----------- | ----- |
1683
- | **platform** | **String** | | |
1890
+ | **platform** | **String** | Social platform to complete the connect for. Discord, Slack and Telegram are absent because they are served by their own dedicated routes, documented separately. | |
1684
1891
  | **handle_o_auth_callback_request** | [**HandleOAuthCallbackRequest**](HandleOAuthCallbackRequest.md) | | |
1685
1892
 
1686
1893
  ### Return type
@@ -0,0 +1,22 @@
1
+ # Zernio::ConnectDiscordChannelRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **guild_id** | **String** | Discord server (guild) the channel belongs to | |
8
+ | **channel_id** | **String** | Text, announcement or forum channel to publish to | |
9
+ | **profile_id** | **String** | Profile to connect the channel to | |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::ConnectDiscordChannelRequest.new(
17
+ guild_id: null,
18
+ channel_id: null,
19
+ profile_id: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,24 @@
1
+ # Zernio::ConnectSlackChannelRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **profile_id** | **String** | | |
8
+ | **channel_id** | **String** | Slack channel id, C... or G... | |
9
+ | **pending_data_token** | **String** | Nonce from the OAuth redirect. Required unless accountId is sent. | [optional] |
10
+ | **account_id** | **String** | Existing Slack account whose workspace token is reused. Required unless pendingDataToken is sent. | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'zernio-sdk'
16
+
17
+ instance = Zernio::ConnectSlackChannelRequest.new(
18
+ profile_id: null,
19
+ channel_id: null,
20
+ pending_data_token: null,
21
+ account_id: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,28 @@
1
+ # Zernio::ConnectWhatsAppEmbeddedSignupRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **code** | **String** | Authorization code from the WA_EMBEDDED_SIGNUP postMessage | |
8
+ | **profile_id** | **String** | | |
9
+ | **waba_id** | **String** | WhatsApp Business Account id, when the SDK reported one | [optional] |
10
+ | **phone_number_id** | **String** | | [optional] |
11
+ | **is_coexistence** | **Boolean** | Number is also live in the WhatsApp Business app | [optional] |
12
+ | **expected_phone_number** | **String** | Rejects the connect when Meta returns a different number | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'zernio-sdk'
18
+
19
+ instance = Zernio::ConnectWhatsAppEmbeddedSignupRequest.new(
20
+ code: null,
21
+ profile_id: null,
22
+ waba_id: null,
23
+ phone_number_id: null,
24
+ is_coexistence: null,
25
+ expected_phone_number: null
26
+ )
27
+ ```
28
+
@@ -74,6 +74,7 @@
74
74
  | **negative_keywords** | **Array&lt;String&gt;** | Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords. | [optional] |
75
75
  | **additional_headlines** | **Array&lt;String&gt;** | Google Search RSA only. Extra headlines. | [optional] |
76
76
  | **additional_descriptions** | **Array&lt;String&gt;** | Google Search RSA only. Extra descriptions. | [optional] |
77
+ | **sitelinks** | [**Array&lt;CreateStandaloneAdRequestSitelinksInner&gt;**](CreateStandaloneAdRequestSitelinksInner.md) | Google Search only. Sitelink assets to create and attach at the campaign level. Each entry becomes an Asset (with sitelink_asset + Asset.final_urls) plus a CampaignAsset link (field_type SITELINK). Approval is async — Google reviews assets after creation; poll asset.policy_summary later to read the verdict. Google requires at least two sitelinks to surface them on an ad; four or more is Google&#39;s own recommendation for maximum visibility. The response&#39;s creative.sitelinks[] echoes each input plus its Google resourceName. | [optional] |
77
78
  | **advantage_audience** | **Integer** | Meta only. Controls the Advantage audience feature (targeting_automation). 0 &#x3D; disabled (default), 1 &#x3D; enabled. Meta Marketing API requires this field on all ad set creation requests. | [optional] |
78
79
  | **attribution_spec** | [**Array&lt;CreateStandaloneAdRequestAttributionSpecInner&gt;**](CreateStandaloneAdRequestAttributionSpecInner.md) | Meta only. Conversion attribution window for the ad set — maps 1:1 to Meta&#39;s ad-set &#x60;attribution_spec&#x60;. Only honored for conversion goals (&#x60;conversions&#x60;, &#x60;lead_generation&#x60;, &#x60;app_promotion&#x60;); ignored for awareness/traffic/engagement. Omit to use Meta&#39;s default (&#x60;7-day click&#x60; + &#x60;1-day view&#x60;). Meta enforces the valid combinations: &#x60;VIEW_THROUGH&#x60; only allows &#x60;windowDays: 1&#x60; (7d/28d view windows were removed Jan 2026); &#x60;ENGAGED_VIDEO_VIEW&#x60; only &#x60;1&#x60; and only alongside &#x60;VIEW_THROUGH: 1&#x60;; &#x60;CLICK_THROUGH: 28&#x60; only on certain objectives. Invalid combos surface as a Meta 400. Example: &#x60;[{ \&quot;eventType\&quot;: \&quot;CLICK_THROUGH\&quot;, \&quot;windowDays\&quot;: 7 }, { \&quot;eventType\&quot;: \&quot;VIEW_THROUGH\&quot;, \&quot;windowDays\&quot;: 1 }]&#x60; | [optional] |
79
80
  | **gender** | **String** | Restrict the audience by gender. &#39;male&#39; targets men only, &#39;female&#39; targets women only, &#39;all&#39; (default) targets everyone. Applied on Meta, TikTok and Pinterest. Ignored on Google, LinkedIn and X. | [optional][default to &#39;all&#39;] |
@@ -166,6 +167,7 @@ instance = Zernio::CreateStandaloneAdRequest.new(
166
167
  negative_keywords: null,
167
168
  additional_headlines: null,
168
169
  additional_descriptions: null,
170
+ sitelinks: null,
169
171
  advantage_audience: null,
170
172
  attribution_spec: null,
171
173
  gender: null,
@@ -0,0 +1,24 @@
1
+ # Zernio::CreateStandaloneAdRequestSitelinksInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **text** | **String** | The clickable link text shown under the ad. 25-char cap comes from Google. | |
8
+ | **link_url** | **String** | Final URL the sitelink navigates to. | |
9
+ | **description1** | **String** | First description line under the link text (optional). 35-char cap. | [optional] |
10
+ | **description2** | **String** | Second description line (optional; usually paired with description1). | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'zernio-sdk'
16
+
17
+ instance = Zernio::CreateStandaloneAdRequestSitelinksInner.new(
18
+ text: null,
19
+ link_url: null,
20
+ description1: null,
21
+ description2: null
22
+ )
23
+ ```
24
+