I'm using the Google Ads API, and with the docs about the status: https://developers.google.com/google-ads/api/reference/rpc/v17/CampaignStatusEnum.CampaignStatus

It show that is a ENUM with string values. But when I do the query:

 SELECT                     campaign.id,                     campaign.name,                     campaign.status,                     campaign.start_date,                     campaign.end_date                 FROM campaign                 ORDER BY campaign.name 

the status show a number between 1 and 4 (at least that numbers I see, idk if is more options).

Any have a documentation about what means each number? or if i'm missing something in the query to get string enum?

Thanks

I'm working with the Google Ads API to retrieve campaign simulations for a specific date range. So far whenever I try to filter for a date range outside of the "current simulation" I receive no results. The "current simulation" is the default simulation that shows on the platforms websites simulation tool.

Here's my current code snippet (relevant portion):

try:     # Get the GoogleAdsService     googleads_service = client.get_service("GoogleAdsService")     # Construct the query     query = f"""         SELECT             campaign_simulation.campaign_id,             campaign_simulation.type,             campaign_simulation.start_date,             campaign_simulation.end_date,             campaign_simulation.budget_point_list.points,             campaign_simulation.cpc_bid_point_list.points,             campaign_simulation.target_cpa_point_list.points,             campaign_simulation.target_impression_share_point_list.points,             campaign_simulation.target_roas_point_list.points         FROM             campaign_simulation         WHERE             campaign_simulation.campaign_id = {campaign_id}      """     # Execute the search request     response = googleads_service.search_stream(customer_id=customer_id, query=query) 

I've attempted filtering based on campaign_simulation.start_date and campaign_simulation.end_date within the WHERE clause, but it only retrieves the current simulation. On the platforms website you can change the range to be any 7 day period after the current date, and this is what I expect to be able to do from the API as well.

New reel does appear in fan page's Reels feed but it's invisible to users (i used another account to display the same feed and new reel is not there).

My "Page" perms:

publish_video pages_show_list pages_read_engagement pages_manage_posts 

Using this Python code to publish Facebook reel:

import os import requests from os.path import isfile page_id= 'your business page id' api_version= 'v20.0' page_access_token= 'your_page_token' def initialize_upload():     url = f"https://graph.facebook.com/{api_version}/{page_id}/video_reels"     payload = {         'upload_phase': 'start',         'access_token': page_access_token     }     r = requests.post(url, data=payload)     json = r.json()     if r.status_code == 200:         video_id = r.json()['video_id']     else:         raise Exception(json)      return video_id def process_upload(video_id, file_size, file_data):       url = f'https://rupload.facebook.com/video-upload/{api_version}/{video_id}'     payload = {         'Authorization': 'OAuth ' + page_access_token,         'offset': '0',         'file_size': str(file_size),         'Content-Type': 'application/octet-stream'     }     r = requests.post(url, data=file_data, headers=payload)     json = r.json()     if r.status_code != 200:         raise Exception(json) def publish(video_id, description, publish_time=None):     url = f"https://graph.facebook.com/{api_version}/{page_id}/video_reels"     payload = {         'access_token': page_access_token,         'video_id': video_id,         'upload_phase': 'finish',         'description': description,     }     if publish_time:         payload['video_state'] = 'SCHEDULED'         payload['scheduled_publish_time'] = publish_time     else:         payload['video_state'] = 'PUBLISHED'     r = requests.post(url, data=payload)     json = r.json()     if r.status_code != 200:         raise Exception(json) if __name__ == '__main__':     video_id = initialize_upload()     print(video_id)          mp4_path= r"C:\test\Facebook.mp4"              if isfile(mp4_path):         file_size = os.path.getsize(mp4_path)         file_data= open(mp4_path, 'rb')         process_upload(video_id, file_size, file_data)         publish(video_id,  '#description')     else:         print('File not found') 

Metadata (those views are mine):

{'comments': {'data': [],               'summary': {'can_comment': True,                           'order': 'chronological',                           'total_count': 0}},  'created_time': '2024-08-13T16:22:02+0000',  'description': '#test',  'from': {'id': '***', 'name': 'Test'},  'id': '***',  'is_crossposting_eligible': True,  'likes': {'data': [],            'summary': {'can_like': True, 'has_liked': False, 'total_count': 0}},  'permalink_url': '/reel/***/',  'privacy': {'allow': '',              'deny': '',              'description': 'Public',              'friends': '',              'networks': '',              'value': 'EVERYONE'},  'status': {'copyright_check_status': {'matches_found': False,                                        'status': 'complete'},             'processing_phase': {'status': 'complete'},             'publishing_phase': {'publish_status': 'published',                                  'publish_time': '2024-08-13T17:33:12+0000',                                  'status': 'complete'},             'uploading_phase': {'bytes_transferred': 13671054,                                 'status': 'complete'},             'video_status': 'ready'},  'views': 45} 

Any idea why is it private?

I am trying to send items to commerce catalog using V20 Graph API andI continue to get this error.

"error_user_msg": "Products without \"link\" information can't be uploaded. Please check that this field is included for each product in a separate, labelled column.",

All fields appear to be valid, I just can't get past this error here.

I have tried with API and directly with Graph API Post, both return the same error.

var postData = {     "retailer_id": "TEST_SKU_12345",  // Using a static SKU for testing     "name": "Test Product",     "price": 100,  // Using an integer value for the price     "currency": "USD",  // Default to USD     "link": encodeURIComponent("https://store.casablancawirelessllc.com/g-power-5g?sku=PQPWFV"),  // URL-encoded link     "image_url": "https://b3213372.smushcdn.com/3213372/wp-content/uploads/2023/07/stacks-dark-1.png" // Valid image URL   };