이 페이지에서는 제품을 삽입할 수 있는 데이터 소스를 프로그래매틱 방식으로 만들고 업데이트하는 방법을 보여줍니다. 자동 데이터 소스를 사용하면 제품 데이터를 Google에 더 쉽게 전송할 수 있습니다. 자동화된 데이터 소스를 사용하면 웹사이트의 관련 제품에 관한 최신 정보가 Google에 전달됩니다.
Content API for Shopping을 사용하면 기본 데이터 소스만 만들 수 있습니다. Merchant Data sources API를 사용하면 다음 유형의 데이터 소스를 만들 수 있습니다.
- 기본 제품 데이터 소스
- 보조 제품 데이터 소스
- 오프라인 판매점 인벤토리 데이터 소스
- 지역 인벤토리 데이터 소스
- 프로모션 데이터 소스
- 제품 리뷰 데이터 소스
- 판매자 리뷰 데이터 소스
Content API for Shopping을 사용하면 파일 입력으로만 데이터 소스를 관리할 수 있습니다. Merchant API를 사용하면 파일 및 API 입력 모두를 사용하여 데이터 소스를 관리할 수 있습니다.
Merchant Data sources API를 사용하면 다음을 수행할 수 있습니다.
- 특정
feedLabel
및contentLanguage
로 새 기본 데이터 소스를 만듭니다. feedLabel
및contentLanguage
필드가 설정되지 않은 데이터 소스를 만듭니다. 이 유형의 데이터 소스를 사용하면 단일 데이터 소스에feedLabel
및contentLanguage
의 다양한 조합으로 제품을 삽입할 수 있으므로 제품의 여러 국가를 타겟팅할 수 있습니다.- 기존 기본 데이터 소스에 연결할 보조 데이터 소스를 만듭니다.
- 파일 데이터 소스의 일정을 설정합니다.
- 데이터 소스를 자동으로 관리할 수 있도록 계정을 등록합니다.
- API 데이터 소스를 관리합니다.
- 기본 제품 데이터 소스를 사용하여 데이터 소스의 기본 규칙을 관리합니다.
- 프로모션과 같은 다른 유형의 데이터 소스를 사용합니다.
Merchant API를 사용하여 오프라인 제품과 온라인 제품이 모두 포함된 데이터 소스에 제품을 삽입할 수는 없습니다. 데이터 소스 채널에 대한 자세한 내용은 채널을 참고하세요.
기본 요건
- 계정이 단일 언어 피드로 이전되었어야 합니다.
계정이 이미 데이터 타겟 분할로 이전되었는지 확인하려면 데이터 소스 목록 또는 가져오기 메서드를 사용하세요. 자격 요건을 충족하지 않는 경우 다음과 같은 예외 메시지가 표시되며 지원팀에 문의해야 합니다.
This account is in the data sources migration process and can't be used with this API yet. Contact support for more info on when this account will be able to use the data sources endpoint.
새 데이터 소스 만들기
기본 데이터 소스는 판매자 센터 인벤토리의 기본 데이터 소스입니다. 기본 데이터 소스를 사용하여 제품만 추가하거나 삭제할 수 있습니다. 기본 데이터 소스에 추가한 모든 제품이 판매자 센터의 데이터 및 자격요건을 충족하는 경우 더 이상 데이터 소스를 만들 필요가 없습니다.
특정 feedLabel
및 contentLanguage
로 새 기본 데이터 소스를 만들려면 유형별 구성에서 feedLabel
및 contentLanguage
필드를 설정합니다. 이러한 필드에 대한 자세한 내용은 PrimaryProductDataSource
를 참고하세요.
다음 샘플 요청은 기본 제품 데이터 소스를 만드는 방법을 보여줍니다.
POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"primaryProductDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"countries": [
"{COUNTRY}"
],
"channel": "ONLINE_PRODUCTS"
}
}
다음을 바꿉니다.
- {ACCOUNT_ID}: 판매자 센터 계정의 고유 식별자입니다.
- {DISPLAY_NAME}: 데이터 소스의 표시 이름입니다.
- {CONTENT_LANGUAGE}: 데이터 소스의 제품에 대한 두 글자 ISO 639-1 언어 코드입니다.
- {FEED_LABEL}: 데이터 소스의 피드 라벨입니다.
- {COUNTRY}: 데이터 소스를 사용하여 업로드할 제품의 대상 국가의 CLDR 지역 코드입니다.
요청이 실행되면 다음과 같은 응답이 표시됩니다.
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"primaryProductDataSource": {
"channel": "ONLINE_PRODUCTS",
"feedLabel": "{FEED_LABEL}",
"contentLanguage": "{CONTENT_LANGUAGE}",
"countries": [
"{COUNTRY}"
],
"defaultRule": {
"takeFromDataSources": [
{
"self": true
}
]
}
},
"input": "API"
}
데이터 소스 만들기에 관한 자세한 내용은 accounts.dataSources.create 메서드를 참고하세요.
새로 만든 데이터 소스를 보려면 accounts.dataSources.get 또는 accounts.dataSources.list 메서드를 사용하세요.
다음 샘플에서는 GB
및 en
feedLabel
및 contentLanguage
조합의 기본 제품 데이터 소스를 만드는 방법을 보여줍니다.
자바
public static String createDataSource(Config config, String displayName) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getAccountId().toString());
// The type of data that this datasource will receive.
PrimaryProductDataSource primaryProductDataSource =
PrimaryProductDataSource.newBuilder()
// Channel can be "ONLINE_PRODUCTS" or "LOCAL_PRODUCTS" or "PRODUCTS" .
// While accepted, datasources with channel "products" representing unified products
// currently cannot be used with the Products bundle.
.setChannel(PrimaryProductDataSource.Channel.ONLINE_PRODUCTS)
.addCountries("GB")
.build();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(parent)
.setDataSource(
DataSource.newBuilder()
.setDisplayName(displayName)
.setPrimaryProductDataSource(primaryProductDataSource)
.build())
.build();
System.out.println("Sending Create PrimaryProduct DataSource request");
DataSource response = dataSourcesServiceClient.createDataSource(request);
System.out.println("Created DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
// Null is necessary to satisfy the compiler as we're not returning a String on failure.
return null;
}
}
여러 국가를 타겟팅하는 데 도움이 되는 새 기본 데이터 소스 만들기
여러 국가를 타겟팅하는 데 도움이 되는 새 기본 피드를 만들려면 PrimaryProductDataSource
를 사용하여 데이터 소스를 구성하고 feedLabel
및 contentLanguage
필드를 설정하지 마세요.
Content API for Shopping을 사용하면 API 데이터 소스가 하나만 생성됩니다. Merchant Data Sources API를 사용하면 여러 API 데이터 소스를 보유할 수 있으며, 그중 일부는 feedLabel
및 contentLanguage
필드가 설정되지 않은 상태일 수 있습니다.
API 입력이 있는 데이터 소스만 feedLabel
및 contentLanguage
필드가 설정되지 않은 상태로 둘 수 있습니다. 이 유형의 데이터 소스는 파일 입력에 지원되지 않습니다.
보조 데이터 소스를 만들고 기본 데이터 소스에 연결
보조 데이터 소스는 이미 하나 이상의 기본 데이터 소스에 있는 제품 데이터를 업데이트하는 용도로만 사용됩니다. 보조 데이터 소스는 여러 개가 있을 수 있으며 각 보조 데이터 소스는 여러 기본 데이터 소스의 데이터를 보완할 수 있습니다.
보조 데이터 소스를 사용하여 accounts.productInputs.insert
및 accounts.productInputs.delete
메서드를 호출할 때 데이터 소스의 고유 식별자를 쿼리 매개변수로 추가하여 제품 데이터를 부분적으로 업데이트할 수 있습니다. 보조 데이터 소스는 기존 제품을 업데이트하는 데만 사용할 수 있습니다.
보조 데이터 소스를 만들려면 SupplementalProductDataSource
를 사용하여 데이터 소스를 구성한 다음 기본 데이터 소스의 defaultRule
필드를 업데이트하여 연결합니다.
보조 파일 데이터 소스에는 feedLabel
및 contentLanguage
필드가 설정되어야 합니다. 보조 API 데이터 소스에는 항상 feedLabel
및 contentLanguage
필드가 설정되지 않아야 합니다.
다음 샘플은 en
및 GB
contentLanguage
및 feedLabel
조합의 파일 보조 제품 데이터 소스를 만드는 방법을 보여줍니다.
자바
private static FileInput setFileInput() {
// If FetchSettings are not set, then this will be an `UPLOAD` file type
// that you must manually upload via the Merchant Center UI.
return FileInput.newBuilder()
// FileName is required for `UPLOAD` fileInput type.
.setFileName("British T-shirts Supplemental Data")
.build();
}
public static String createDataSource(Config config, String displayName, FileInput fileInput)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getAccountId().toString());
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(parent)
.setDataSource(
DataSource.newBuilder()
.setDisplayName(displayName)
.setSupplementalProductDataSource(
SupplementalProductDataSource.newBuilder()
.setContentLanguage("en")
.setFeedLabel("GB")
.build())
.setFileInput(fileInput)
.build())
.build();
System.out.println("Sending create SupplementalProduct DataSource request");
DataSource response = dataSourcesServiceClient.createDataSource(request);
System.out.println("Created DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
// Null is necessary to satisfy the compiler as we're not returning a String on failure.
return null;
}
}
모든 feedLabel
및 contentLanguage
조합에 작동하는 보조 데이터 소스를 만들려면 다음 샘플을 실행합니다.
자바
public static String createDataSource(Config config, String displayName) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getAccountId().toString());
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(parent)
.setDataSource(
DataSource.newBuilder()
.setDisplayName(displayName)
.setSupplementalProductDataSource(
SupplementalProductDataSource.newBuilder().build())
.build())
.build();
System.out.println("Sending create SupplementalProduct DataSource request");
DataSource response = dataSourcesServiceClient.createDataSource(request);
System.out.println("Created DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null; // Necessary to satisfy the compiler as we're not returning a
// String on failure.
}
}
파일 데이터 소스의 일정 설정
파일 피드의 일정을 설정하려면 FileInput
필드를 사용하여 데이터 소스를 파일 데이터 소스로 구성한 다음 FileInput.FetchSettings
필드를 사용하여 fetchsettings
를 설정합니다.
데이터 소스 소거
계정에서 기존 데이터 소스를 삭제하려면 accounts.dataSources.delete
메서드를 사용합니다.
다음 샘플은 DeleteDataSourceRequest
패키지를 사용하여 데이터 소스를 삭제하는 방법을 보여줍니다.
자바
public static void deleteDataSource(Config config, String dataSourceId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String name =
DataSourceName.newBuilder()
.setAccount(config.getAccountId().toString())
.setDatasource(dataSourceId)
.build()
.toString();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
DeleteDataSourceRequest request = DeleteDataSourceRequest.newBuilder().setName(name).build();
System.out.println("Sending deleteDataSource request");
// Delete works for any datasource type.
// If Type "Supplemental", delete will only work if it's not linked to any primary feed.
// If a link exists and the Type is "Supplemental", you will need to remove the supplemental
// feed from the default and/or custom rule(s) of any primary feed(s) that references it. Then
// retry the delete.
dataSourcesServiceClient.deleteDataSource(request); // No response returned on success.
System.out.println(
"Delete successful, note that it may take a few minutes for the delete to update in"
+ " the system.");
} catch (Exception e) {
System.out.println(e);
}
}
데이터 소스 가져오기
데이터 소스에 구성된 파일을 가져오려면 accounts.dataSources.fetch
메서드를 사용합니다. 이 메서드는 계정의 데이터 소스에서 즉시 데이터 가져오기를 실행합니다. 이 메서드는 파일 입력이 설정된 데이터 소스에서만 작동합니다.
데이터 소스 가져오기
계정의 데이터 소스 구성을 검색하려면 accounts.dataSources.get
메서드를 사용합니다.
다음 샘플은 GetDataSourceRequest
패키지를 사용하여 특정 판매자 센터 계정의 특정 데이터 소스를 검색하는 방법을 보여줍니다.
자바
public static DataSource getDataSource(Config config, String dataSourceId) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates datasource name to identify datasource.
String name =
DataSourceName.newBuilder()
.setAccount(config.getAccountId().toString())
.setDatasource(dataSourceId)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
// The name has the format: accounts/{account}/datasources/{datasource}
GetDataSourceRequest request = GetDataSourceRequest.newBuilder().setName(name).build();
System.out.println("Sending GET DataSource request:");
DataSource response = dataSourcesServiceClient.getDataSource(request);
System.out.println("Retrieved DataSource below");
System.out.println(response);
return response;
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null; // Necessary to satisfy the compiler as we're not returning a
// DataSource on failure.
}
}
데이터 소스 목록
계정의 데이터 소스 구성을 나열하려면 accounts.dataSources.list
메서드를 사용하세요.
다음 샘플은 ListDataSourceRequest
패키지를 사용하여 지정된 판매자 센터 계정의 모든 데이터 소스를 나열하는 방법을 보여줍니다.
자바
public static ArrayList<DataSource> listDataSources(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify the account from which to list all the datasources.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
// The parent has the format: accounts/{account}
ListDataSourcesRequest request =
ListDataSourcesRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list datasources request:");
ListDataSourcesPagedResponse response = dataSourcesServiceClient.listDataSources(request);
int count = 0;
ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
ArrayList<DataSource> justPrimaryDataSources = new ArrayList<DataSource>();
// Iterates over all rows in all pages and prints the datasource in each row.
// Automatically uses the `nextPageToken` if returned to fetch all pages of data.
for (DataSource element : response.iterateAll()) {
System.out.println(element);
count++;
dataSources.add(element);
// The below lines show how to filter datasources based on type.
// `element.hasSupplementalProductDataSource()` would give you supplemental
// datasources, etc.
if (element.hasPrimaryProductDataSource()) {
justPrimaryDataSources.add(element);
}
}
System.out.print("The following count of elements were returned: ");
System.out.println(count);
return dataSources;
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null; // Necessary to satisfy the compiler as we're not returning an
// ArrayList<DataSource> on failure.
}
}
데이터 소스 패치
기존 데이터 소스의 구성을 업데이트하려면 accounts.dataSources.patch
메서드를 사용합니다.
다음 샘플은 UpdateDataSourceRequest
패키지를 사용하여 데이터 소스를 업데이트하는 방법을 보여줍니다. 또한 기본 데이터 소스를 업데이트하여 보조 데이터 소스를 기본 규칙에 추가하는 방법도 보여줍니다.
자바
public static String updateDataSource(Config config, String displayName, String dataSourceId)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates datasource name to identify datasource.
String name =
DataSourceName.newBuilder()
.setAccount(config.getAccountId().toString())
.setDatasource(dataSourceId)
.build()
.toString();
DataSource dataSource =
DataSource.newBuilder()
// Update the datasource to have the new display name
.setDisplayName(displayName)
.setName(name)
.build();
FieldMask fieldMask = FieldMask.newBuilder().addPaths("display_name").build();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
UpdateDataSourceRequest request =
UpdateDataSourceRequest.newBuilder()
.setDataSource(dataSource)
.setUpdateMask(fieldMask)
.build();
System.out.println("Sending Update DataSource request");
DataSource response = dataSourcesServiceClient.updateDataSource(request);
System.out.println("Updated DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null;
}
}
public String updateDataSource(
Config config,
String primaryDataSourceName,
String firstSupplementalDataSourceName,
String secondSupplementalDataSourceName)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Setting self to 'true' refers to the primary datasource itself.
DataSourceReference dataSourceReferenceSelf =
DataSourceReference.newBuilder().setSelf(true).build();
DataSourceReference firstSupplementalDataSourceReference =
DataSourceReference.newBuilder()
.setSupplementalDataSourceName(firstSupplementalDataSourceName)
.build();
DataSourceReference secondSupplementalDataSourceReference =
DataSourceReference.newBuilder()
.setSupplementalDataSourceName(secondSupplementalDataSourceName)
.build();
// The attributes will first be taken from the primary DataSource.
// Then the first supplemental DataSource if the attribute is not in the primary DataSource
// And finally the second supplemental DataSource if not in the first two DataSources.
// Note that CustomRules could change the behavior of how updates are applied.
DefaultRule defaultRule =
DefaultRule.newBuilder()
.addTakeFromDataSources(dataSourceReferenceSelf)
.addTakeFromDataSources(firstSupplementalDataSourceReference)
.addTakeFromDataSources(secondSupplementalDataSourceReference)
.build();
// The type of data that this datasource will receive.
PrimaryProductDataSource primaryProductDataSource =
PrimaryProductDataSource.newBuilder().setDefaultRule(defaultRule).build();
DataSource dataSource =
DataSource.newBuilder()
// Update the primary datasource to have the default rule datasources in the correct
// order.
.setPrimaryProductDataSource(primaryProductDataSource)
.setName(primaryDataSourceName)
.build();
// The '.' signifies a nested field.
FieldMask fieldMask =
FieldMask.newBuilder().addPaths("primary_product_data_source.default_rule").build();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
UpdateDataSourceRequest request =
UpdateDataSourceRequest.newBuilder()
.setDataSource(dataSource)
.setUpdateMask(fieldMask)
.build();
System.out.println("Sending Update DataSource request");
DataSource response = dataSourcesServiceClient.updateDataSource(request);
System.out.println("Updated DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null;
}
}
데이터 소스 연결
기본 제품 데이터 소스를 사용하면 데이터 소스의 기본 규칙을 관리할 수 있습니다. 기본 규칙은 데이터 소스의 모든 속성에 적용되는 규칙입니다. 기본 규칙은 데이터 소스를 만들 때 또는 기본 규칙 필드를 통해 기존 데이터 소스를 업데이트하여 설정할 수 있습니다.
규칙 설정에 관한 자세한 내용은 제품 데이터 소스에 대한 규칙 설정을 참고하세요.
다음 샘플 구성을 사용하면 고유 식별자 1001
를 사용하여 모든 속성이 먼저 데이터 소스에서 가져옵니다. 그런 다음 기본 데이터 소스에서 누락된 속성이 추가됩니다. 나머지 속성은 다른 데이터 소스에 아직 제공되지 않은 경우 고유 식별자 1002
를 사용하여 보조 데이터 소스에서 가져옵니다. 동일한 속성이 여러 데이터 소스에 제공된 경우 목록에서 더 높은 값이 선택됩니다.
defaultRule {
takeFromDataSources: [
'1001', // Supplemental product data source
'self', // Self reference to the primary data source
'1002' // Supplemental product data source
]
}
피드 자동 관리
데이터 소스를 자동으로 관리하도록 계정을 등록하려면 다음을 실행해야 합니다.
accounts.autofeedSettings.getAutofeedSettings
메서드를 호출하여 계정을 등록할 수 있는지 확인합니다.- 계정이 마켓플레이스 계정이 아닌지 확인합니다.
계정을 등록할 수 있게 되면 accounts.autofeedSettings.updateAutofeedSettings
메서드를 사용하여 데이터 소스의 자동 관리를 사용 설정할 수 있습니다. 데이터 소스의 자동 관리를 사용 설정하면 Google에서 온라인 상점의 제품을 자동으로 추가하고 Google 플랫폼에서 항상 최신 상태를 유지할 수 있습니다.
파일 업로드 상태 가져오기
파일, 가져오기 또는 스프레드시트로 데이터 소스의 상태를 가져오려면 accounts.dataSources.fileUploads
서비스의 GET
메서드를 호출하면 됩니다. 데이터 소스 처리가 완료될 때 비동기식으로 계산된 데이터 소스의 마지막 검색 결과를 가져오려면 이름 식별자 latest
를 사용하세요.
GET https://merchantapi.googleapis.com/accounts/v1beta/{ACCOUNT_ID}/datasources/{DATASOURCE_ID}/fileUploads/latest
파일 업로드 상태에는 잠재적인 문제 등 제품의 세부정보가 포함될 수 있습니다.
파일이 업로드되지 않은 경우 파일 업로드 상태가 없을 수 있습니다. 파일이 업로드된 직후에 요청된 경우 파일 업로드 상태가 처리 중일 수 있습니다.