@prefix : <https://ontology.inferal.com/profiles/relay-advertising/chatgptads/> .
@prefix adel: <https://ontology.inferal.com/modules/advertising-delivery-state/> .
@prefix aent: <https://ontology.inferal.com/modules/advertising-entity/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix pubacc: <https://ontology.inferal.com/modules/publication-access/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .

:
    a owl:Ontology, prof:Profile, mod:SemanticArtefact, voaf:Vocabulary,
      pubacc:PublicationManagedOntology ;
    dcterms:accessRights pubacc:PublicAccess ;
    owl:imports aent: , adel: ;
    dcterms:title "Relay Advertising Profile: ChatGPT Ads" ;
    dcterms:description "Links ChatGPT Ads campaign objectives and serving-issue and review codes, as Relay publishes them, to the shared objective and hold kind concepts." ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:source aent: , adel: ;
    vann:preferredNamespacePrefix "chatgpt-adv" ;
    vann:preferredNamespaceUri "https://ontology.inferal.com/profiles/relay-advertising/chatgptads/" ;
    mod:status "draft" ;
    rdfs:comment "Relay publishes the three values of the ChatGPT Ads campaign objective (Chatgptads.CreateCampaignBody/objective) as concepts carrying their tokens as skos:notation. Each falls under one shared objective by skos:broadMatch: reach under awareness, clicks under traffic and conversions under conversions. The serving-issue and review codes carry no provider definition, and the import's comments on them are not provider text, so each hold link rests on the code's name stating one cause. A code whose name states no single cause, restates the entity's own status, concerns only some children or limits serving rather than holding it stays unmapped." ;
    owl:versionInfo "0.2.0" .


# --- Objectives ----------------------------------------------------------------

<https://relay.inferal.com/ontology/chatgptads/CampaignObjectiveParam/reach> skos:broadMatch aent:awarenessObjective .
<https://relay.inferal.com/ontology/chatgptads/CampaignObjectiveParam/clicks> skos:broadMatch aent:trafficObjective .
<https://relay.inferal.com/ontology/chatgptads/CampaignObjectiveParam/conversions> skos:broadMatch aent:conversionsObjective .


# --- Hold kinds ------------------------------------------------------------------
#
# Chatgptads.CampaignServingIssueBody/code, read by name: the account, payment,
# budget, schedule and review codes, and the codes for a campaign with no ad
# groups or none ready to serve.
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/ad_account_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/ad_account_payment_method_missing_or_unauthorized> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/ad_account_suspended> skos:broadMatch adel:accountRestrictionHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/ad_account_threshold_payment_failed> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/ad_in_review> skos:broadMatch adel:policyReviewHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/campaign_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/campaign_ended> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/campaign_has_no_ad_groups> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/campaign_has_no_serving_ready_ad_groups> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/campaign_not_started> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/CampaignServingIssueCode/review_not_approved> skos:broadMatch adel:policyReviewHold .

# Chatgptads.AdGroupServingIssueBody/code, read by name. campaign_not_active names
# the ad group's campaign.
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_account_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_account_payment_method_missing_or_unauthorized> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_account_suspended> skos:broadMatch adel:accountRestrictionHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_account_threshold_payment_failed> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_group_has_no_ads> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_group_has_no_serving_ready_ads> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/ad_in_review> skos:broadMatch adel:policyReviewHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/campaign_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/campaign_ended> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/campaign_not_active> skos:broadMatch adel:ancestorHeldHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/campaign_not_started> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/AdGroupServingIssueCode/review_not_approved> skos:broadMatch adel:policyReviewHold .

# Chatgptads.AdServingIssueBody/code, read by name. campaign_not_active and
# ad_group_not_active name the ad's ancestors; the missing, invalid and
# reserved-parameter codes name the ad's own setup.
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_account_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_account_payment_method_missing_or_unauthorized> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_account_suspended> skos:broadMatch adel:accountRestrictionHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_account_threshold_payment_failed> skos:broadMatch adel:billingHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_group_not_active> skos:broadMatch adel:ancestorHeldHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/ad_in_review> skos:broadMatch adel:policyReviewHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/advertiser_name_missing> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/campaign_budget_exhausted> skos:broadMatch adel:allowanceExhaustedHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/campaign_ended> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/campaign_not_active> skos:broadMatch adel:ancestorHeldHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/campaign_not_started> skos:broadMatch adel:outsideScheduleHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/image_or_favicon_missing> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/product_feed_id_missing> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/reserved_query_params_present> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/review_not_approved> skos:broadMatch adel:policyReviewHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/target_url_invalid> skos:broadMatch adel:configurationHold .
<https://relay.inferal.com/ontology/chatgptads/AdServingIssueCode/title_missing> skos:broadMatch adel:configurationHold .

# Chatgptads review status, read by name.
<https://relay.inferal.com/ontology/chatgptads/ReviewStatus/in_review> skos:broadMatch adel:policyReviewHold .
<https://relay.inferal.com/ontology/chatgptads/ReviewStatus/rejected> skos:broadMatch adel:policyReviewHold .

